ceph/src/TODO

175 lines
5.8 KiB
Plaintext
Raw Normal View History

2008-10-08 23:45:31 +00:00
v0.6
2008-11-06 18:56:51 +00:00
- ENOSPC
- async metadata ops
v0.7
2008-10-08 23:45:31 +00:00
- cas?
2008-06-19 03:59:50 +00:00
2008-05-10 23:31:14 +00:00
big items
2008-10-08 23:45:31 +00:00
- finish client failure recovery (reconnect after long eviction; and slow delayed reconnect)
2008-06-16 22:52:07 +00:00
- ENOSPC
- space reservation in ObjectStore, redeemed by Transactions?
- reserved as PG goes active; reservation canceled when pg goes inactive
- something similar during recovery
- ?
- repair
2008-07-25 23:23:00 +00:00
- enforceable quotas?
2008-05-10 23:31:14 +00:00
- mds security enforcement
- client, user authentication
- cas
2008-07-25 23:23:00 +00:00
- osd failure declarations
- libuuid?
2008-09-18 22:39:54 +00:00
repair
- 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?
- cdir objects
- parent dir pointer
- update on rename? or on cdir store?
on cdir store is sufficient if mdlog survives...
- or what the hell, full trace?
- mds scrubbing
2008-12-10 00:47:40 +00:00
/- rados scrubbing
2008-07-25 23:23:00 +00:00
timer
- each SafeTimer should just be its own thread.
kernel client
- make osd retry writes if failure after ack..
- ACLs
- reconnect path should include pathbase, not just a string?
2008-06-23 13:45:49 +00:00
- make writepages maybe skip pages with errors?
- EIO, or ENOSPC?
- ... writeback vs ENOSPC vs flush vs close()... hrm...
2008-06-16 22:52:07 +00:00
- set mapping bits for ENOSPC, EIO?
2008-04-17 01:53:13 +00:00
- flush caps on sync, fsync, etc.
2008-10-02 16:57:48 +00:00
- do we need to block? how do we track that?
2008-03-07 18:37:33 +00:00
- procfs/debugfs
2008-03-03 06:41:06 +00:00
- adjust granular debug levels too
- should we be using debugfs?
2008-03-07 18:37:33 +00:00
- a dir for each client instance (client###)?
- hooks to get mds, osd, monmap epoch #s
2008-10-02 16:57:48 +00:00
- populate sysfs?
- things that would be useful to see
- fsid
- map versions on client
- outstanding mds, osd, mon requests?
- fix readdir vs fragment race by keeping a separate frag pos, and ignoring dentries below it
- reconnect after being disconnected from the mds
2008-10-02 16:57:48 +00:00
kclient items to review
- fill_trace locking
- async trunc
- async writeback
- cache invalidation race, locking problems
- cap changes are serialized by i_lock, but (thorough) cache invalidation may block..
2008-06-23 13:45:49 +00:00
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()
2008-12-12 05:13:02 +00:00
filestore
- sort object lists by ino
- get file csum?
2008-12-10 00:47:40 +00:00
btrfs
2008-12-12 05:13:02 +00:00
- inode_lock vs tree->lock lockdep warning
2008-12-10 00:47:40 +00:00
- clone compressed inline extents
- ioctl to pull out data csum?
2008-09-18 22:39:54 +00:00
userspace client
- handle session STALE
- time out caps, wake up waiters on renewal
- link caps with mds session
- validate dn leases
- fix lease validation to check session ttl
- clean up ll_ interface, now that we have leases!
2008-03-20 16:41:09 +00:00
- clean up client mds session vs mdsmap behavior?
2008-09-18 22:39:54 +00:00
- stop using mds's inode_t?
- fix readdir vs fragment race by keeping a separate frag pos, and ignoring dentries below it
2008-06-04 18:08:06 +00:00
mds
2008-12-10 23:31:25 +00:00
- file size recovery doesn't update recursive stats?
- file size recovery gives (wrong) 4MB-increment results?
2008-09-18 22:39:54 +00:00
- hard link backpointers
- anchor source dir
- build snaprealm for any hardlinked file
- include snaps for all (primary+remote) parents
2008-10-20 22:37:49 +00:00
- how do we properly clean up inodes when doing a snap purge?
- when they are mid-recover? see 136470cf7ca876febf68a2b0610fa3bb77ad3532
- whats with the 'clear if dirtyscattered' bit in decode_import_inode()?
2008-10-01 18:53:38 +00:00
- 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
- try_remove_unlinked_dn thing
- rename: importing inode... also journal imported client map?
- rerun destro trace against latest, with various journal lengths
2008-03-31 17:27:12 +00:00
- lease length heuristics
- mds lock last_change stamp?
- handle slow client reconnect (i.e. after mds has gone active)
2008-02-29 00:58:28 +00:00
- fix reconnect/rejoin open file weirdness
- can we get rid of the dirlock remote auth_pin weirdness on subtree roots?
2008-06-04 18:08:06 +00:00
- anchor_destroy needs to xlock linklock.. which means it needs a Mutation wrapper?
- ... when it gets a caller.. someday..
- make truncate faster with a trunc_seq, attached to objects as attributes?
- osd needs a set_floor_and_read op for safe failover/STOGITH-like semantics.
- could mark dir complete in EMetaBlob by counting how many dentries are dirtied in the current log epoch in CDir...
- FIXME how to journal/store root and stray inode content?
- in particular, i care about dirfragtree.. get it on rejoin?
- and dir sizes, if i add that... also on rejoin?
- add FILE_CAP_EXTEND capability bit
journaler
- fix up for large events (e.g. imports)
- use set_floor_and_read for safe takeover from possibly-not-quite-dead otherguy.
- should we pad with zeros to avoid splitting individual entries?
- make it a g_conf flag?
- have to fix reader to skip over zeros (either <4 bytes for size, or zeroed sizes)
- need to truncate at detected (valid) write_pos to clear out any other partial trailing writes
2008-12-10 00:47:40 +00:00
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
2008-12-10 23:31:25 +00:00
- blacklist failed mds's
2008-12-10 00:47:40 +00:00
2008-09-18 22:39:54 +00:00
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
2008-12-10 00:47:40 +00:00
crush
- allow forcefeed for more complicated rule structures. (e.g. make force_stack a list< set<int> >)
2008-09-18 22:39:54 +00:00
osd
- pg split should be a work queue
- pg split needs to fix up pg stats. this is tricky with the clone overlap business...
2008-11-17 17:15:44 +00:00
- generalize ack semantics? or just change ack from memory to journal? memory/journal/disk...
- rdlocks
- optimize remove wrt recovery pushes
simplemessenger
2008-12-10 00:47:40 +00:00
- close idle connections?
objectcacher
2008-11-07 00:14:18 +00:00
- read locks?
- maintain more explicit inode grouping instead of wonky hashes