From: Sage Weil Date: Wed, 10 Dec 2008 00:47:40 +0000 (-0800) Subject: todos X-Git-Tag: v0.6~114 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=d77ce282ad1c3d14e40a7871ed712c2f1cc9e807;p=ceph.git todos --- diff --git a/src/TODO b/src/TODO index d3cd344a9db..d1041afc653 100644 --- a/src/TODO +++ b/src/TODO @@ -35,7 +35,7 @@ repair on cdir store is sufficient if mdlog survives... - or what the hell, full trace? - mds scrubbing -- rados scrubbing +/- rados scrubbing timer @@ -52,7 +52,6 @@ kernel client - set mapping bits for ENOSPC, EIO? - flush caps on sync, fsync, etc. - do we need to block? how do we track that? -- forced unmount? - procfs/debugfs - adjust granular debug levels too - should we be using debugfs? @@ -80,6 +79,12 @@ vfs issues 3- drops mutex, then calld d_revalidate. if that fails, we return ENOENT (instead of looping?) - vfs_rename_dir() +btrfs +- investigate __mntput warning +- clone compressed inline extents +- ioctl to pull out data csum? + + userspace client - handle session STALE - time out caps, wake up waiters on renewal @@ -130,22 +135,23 @@ journaler - need to truncate at detected (valid) write_pos to clear out any other partial trailing writes +mon +- 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... -crush -- allow forcefeed for more complicated rule structures. (e.g. make force_stack a list< set >) - 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 -mon -- paxos need to clean up old states. -- some sort of tester for PaxosService... -- osdmon needs to lower-bound old osdmap versions it keeps around? +crush +- allow forcefeed for more complicated rule structures. (e.g. make force_stack a list< set >) osd - pg split should be a work queue @@ -155,58 +161,8 @@ osd - optimize remove wrt recovery pushes simplemessenger -- close idle connections +- close idle connections? objectcacher - read locks? - maintain more explicit inode grouping instead of wonky hashes - -ebofs -- btrees - - checksums - - dups - - sets - -- optionally scrub deallocated extents -- clone() - -- map ObjectStore - -- verify proper behavior of conflicting/overlapping reads of clones -- combine inodes and/or cnodes into same blocks -- fix bug in node rotation on insert (and reenable) -- fix NEAR_LAST_FWD (?) - -- awareness of underlying software/hardware raid in allocator so that we - write full stripes _only_. - - hmm, that's basically just a large block size. - -- rewrite the btree code! - - multithreaded - - eliminate nodepools - - allow btree sets - - allow arbitrary embedded data? - - allow arbitrary btrees - - allow root node(s?) to be embedded in onode, or whereever. - - keys and values can be uniform (fixed-size) or non-uniform. - - fixed size (if any) is a value in the btree struct. - - negative indicates bytes of length value? (1 -> 255bytes, 2 -> 65535 bytes, etc.?) - - non-uniform records preceeded by length. - - keys sorted via a comparator defined in btree root. - - lexicographically, by default. - -- goal - - object btree key->value payload, not just a data blob payload. - - better threading behavior. - - with transactional goodness! - -- onode - - object attributes.. as a btree? - - blob stream - - map stream. - - allow blob values. - - -remaining hard problems -- how to cope with file size changes and read/write sharing -