v0.15 /- clean up msgr protocol checks /- kclient: checkpatch fixes, cleanups. allow msg revoke (nice interface cleanup) /- monclient fixes; ceph detects monitor session drop /- msgr: protocol check cleanups; ack seq # fix; /- debian: radosgw package, fix header perms /- kclient: GET_DATALOC ioctl /- kclient: osdc bug fix /- kclient: clean up debugfs layout v0.16 - kclient: fix msgr bug (out_qlen thing) - kclient cleanup: uninline strings, use pr_fmt, prefix frag_ macros - kclient: xattr cleanups - kclient: fix invalidate recursion bug - libceph: identify self - hadoop: set primary replica on self - kclient: akpm review fixups - uninline frags - uninline string hash - document data structures - audit all inline in kclient - ceph_buffer and vmalloc? - ceph_i_test - bit ops in messenger - name args in ceph_osd_op union - disk format, wire protocol changes - mds: put migration vectors in mdsmap - revert 4fe2e6acb9d3613ca041774c1243940d1c8c9c9c - kclient: retry alloc on ENOMEM when reading from connection? - client authentication - document on-wire protocol bugs - mislinked directory? - premature filejournal trimming? - weird osd_lock contention during osd restart? later - mon cluster expansion, contraction - authentication - client reconnect after long eviction; and slow delayed reconnect - ENOSPC - space reservation in ObjectStore, redeemed by Transactions? - reserved as PG goes active; reservation canceled when pg goes inactive - something similar during recovery - ? - repair - mds security enforcement - client, user authentication - cas - osd failure declarations - rename over old files should flush data, or revert back to old contents mount.ceph - should look at multiple A records, pass all IPs to kernel rados - make rest interface superset of s3? - create/delete snapshots - list, access snapped version - perl swig wrapper - 'rados call foo.bar'? - merge pgs - destroy pg_pools - autosize pg_pools? - security repair - namespace reconstruction tool - repair pg (rebuild log) (online or offline? ./cosd --repair_pg 1.ef?) - repair file ioctl? - are we concerned about - scrubbing - reconstruction after loss of subset of cdirs - reconstruction after loss of md log - data object - path backpointers? - parent dir pointer? - mds scrubbing kclient - make caps reservations per-client - fix up ESTALE handling - don't retry on ENOMEM on non-nofail requests in kick_requests - make cap import/export more efficient? - flock, fnctl locks - ACLs - init security xattrs - should we try to ref CAP_PIN on special inodes that are open? - fix readdir vs fragment race by keeping a separate frag pos, and ignoring dentries below it - inotify for updates from other clients? vfs issues - real_lookup() race: 1- hash lookup find no dentry 2- real_lookup() takes dir i_mutex, but then finds a dentry 3- drops mutex, then calld d_revalidate. if that fails, we return ENOENT (instead of looping?) - vfs_rename_dir() - a getattr mask would be really nice filestore - make min sync interval self-tuning (ala xfs, ext3?) - get file csum? btrfs - clone compressed inline extents - ioctl to pull out data csum? osd - clean up monitor session handling - what to do with lost objects.. continue peering? - segregate backlog from log ondisk? - preserve pg logs on disk for longer period - make scrub interruptible - optionally separate osd interfaces (ips) for clients and osds (replication, peering, etc.) - pg repair - pg split should be a work queue - optimize remove wrt recovery pushes? uclient - clean up check_caps to more closely mirror kclient logic - readdir from cache - fix readdir vs fragment race by keeping a separate frag pos, and ignoring dentries below it - hadoop: clean up assert usage mds - pass issued, wanted into eval(lock) when eval() already has it? (and otherwise optimize eval paths..) - add an up:shadow mode? - tail the mds log as it is written - periodically check head so that we trim, too - handle slow client reconnect (i.e. after mds has gone active) - anchor_destroy needs to xlock linklock.. which means it needs a Mutation wrapper? - ... when it gets a caller.. someday.. - add FILE_CAP_EXTEND capability bit - dir fragment - maybe just take dftlock for now, to keep it simple. - dir merge - snap - hard link backpointers - anchor source dir - build snaprealm for any hardlinked file - include snaps for all (primary+remote) parents - how do we properly clean up inodes when doing a snap purge? - when they are mid-recover? see 136470cf7ca876febf68a2b0610fa3bb77ad3532 - what if a recovery is queued, or in progress, and the inode is then cowed? can that happen? - proper handling of cache expire messages during rejoin phase? -> i think cache expires are fine; the rejoin_ack handler just has to behave if rejoining items go missing - clustered - on replay, but dirty scatter replicas on lists so that they get flushed? or does rejoin handle that? - linkage vs cdentry replicas and remote rename.... - rename: importing inode... also journal imported client map? mon - mds injectargs N should take mds# or id. * should bcast to standy mds's. - paxos need to clean up old states. - default: simple max of (state count, min age), so that we have at least N hours of history, say? - osd map: trim only old maps < oldest "in" osd up_from osdmon - monitor needs to monitor some osds... pgmon /- include osd vector with pg state - check for orphan pgs - monitor pg states, notify on out? - watch osd utilization; adjust overload in cluster map crush - allow forcefeed for more complicated rule structures. (e.g. make force_stack a list< set >) simplemessenger - close idle connections? objectcacher - read locks? - maintain more explicit inode grouping instead of wonky hashes cas - chunking. see TTTD in ESHGHI, K. A framework for analyzing and improving content-based chunking algorithms. Tech. Rep. HPL-2005-30(R.1), Hewlett Packard Laboratories, Palo Alto, 2005. s3 - handle gracefully location related requests - logging control (?) - parse date/time better - upload using post - torrent - handle gracefully PUT/GET requestPayment