ceph/src/TODO

199 lines
6.2 KiB
Plaintext
Raw Normal View History

v0.12
- mapping_set_error on failed writepage
- document correct debugfs mount point
- simplify layout/striping ioctls
- removed bad kmalloc in writepages
- use mempools for writeback allocations where appropriate (*)
- fixed a problem with capability, snap metadata writeback
- cleaned up f(data)sync wrt metadata writeback
2009-08-05 22:57:11 +00:00
v0.13
2009-08-10 23:50:26 +00:00
/- osd active during backlog generation
/- osdmap: allow explicit pg 'override' mappings
/- kclient: fixed vmalloc() usage (use for incoming msgs, GFP_NOFS)
2009-08-13 22:33:51 +00:00
/- http gw
/- kclient: fix sync read vs EOF
/- uclient: fix sync read vs EOF
2009-08-13 23:51:06 +00:00
/- [uk]client lseek SEEK_END
2009-08-20 22:52:24 +00:00
/- kclient msg pools
/ - don't reuse incoming cap message for revoke ack
/ - retry/requeue cap send on ENOMEM
2009-08-21 23:35:01 +00:00
/- mds: misc bugfixes for multiclient file access
2009-08-20 22:52:24 +00:00
v0.14
2009-09-02 19:53:47 +00:00
/- dir backpointer update on rename (fsck assist)
/- uclient bugs
/- msgr: unidirectional option (client->mon, client->mds, client->osd)
/- mon subscriptions to get osd, mds map updates. single mon connection.
2009-09-08 21:48:27 +00:00
/- many libceph/uclient fixes (version api, readahead, hadoop client improvements)
/- deb packages fixed up
2009-09-02 19:53:47 +00:00
2009-09-08 21:48:27 +00:00
v0.15
2009-09-10 18:23:33 +00:00
/- clean up msgr protocol checks
/- kclient checkpatch fixes
2009-09-10 22:10:29 +00:00
- radosgw package
2009-09-10 18:23:33 +00:00
2009-09-08 20:46:00 +00:00
- kclient: retry alloc on ENOMEM when reading from connection?
2009-08-20 22:52:24 +00:00
- client authentication
2009-08-21 23:35:01 +00:00
- radosgw
2009-08-24 18:41:00 +00:00
- uclient: fix write vs max_size?
- mds: put migration vectors in mdsmap
2009-09-02 19:53:47 +00:00
2009-06-19 04:19:25 +00:00
bugs
- premature filejournal trimming?
2009-08-10 23:50:26 +00:00
- weird osd_lock contention during osd restart?
2009-09-03 17:39:07 +00:00
- ceph needs to detect monitor session drop
2009-06-19 04:19:25 +00:00
2009-04-28 05:34:52 +00:00
later
- authentication
2009-04-27 20:35:21 +00:00
- client 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-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
2009-04-08 23:29:19 +00:00
- rename over old files should flush data, or revert back to old contents
2008-07-25 23:23:00 +00:00
mount.ceph
- should look at multiple A records, pass all IPs to kernel
2009-05-06 20:51:33 +00:00
rados
2009-07-22 18:26:41 +00:00
- usage accounting
- make rest interface superset of s3?
2009-06-18 22:22:15 +00:00
- perl swig wrapper
2009-06-22 17:05:19 +00:00
- 'rados call foo.bar'?
- merge pgs
- destroy pg_pools
- autosize pg_pools?
- security
2009-05-06 20:51:33 +00:00
2008-09-18 22:39:54 +00:00
repair
2009-06-18 22:22:15 +00:00
- namespace reconstruction tool
- repair pg (rebuild log) (online or offline? ./cosd --repair_pg 1.ef?)
- repair file ioctl?
2008-09-18 22:39:54 +00:00
- 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
2008-07-25 23:23:00 +00:00
kclient
- fix up ESTALE handling
2009-09-01 23:07:55 +00:00
- don't retry on ENOMEM on non-nofail requests in kick_requests
2009-08-24 18:41:00 +00:00
- make cap import/export more efficient?
- flock, fnctl locks
- ACLs
2009-04-29 19:06:42 +00:00
- 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
2009-08-24 18:41:00 +00:00
- try to reconnect after being disconnected from the mds?
2009-04-29 19:06:42 +00:00
- inotify for updates from other clients?
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()
2009-01-30 23:00:53 +00:00
- a getattr mask would be really nice
2008-12-12 05:13:02 +00:00
filestore
- make min sync interval self-tuning (ala xfs, ext3?)
2008-12-12 05:13:02 +00:00
- get file csum?
2008-12-10 00:47:40 +00:00
btrfs
- clone compressed inline extents
- ioctl to pull out data csum?
2009-06-22 17:05:19 +00:00
osd
2009-06-25 03:49:41 +00:00
- what to do with lost objects.. continue peering?
2009-06-22 22:50:37 +00:00
- segregate backlog from log ondisk?
2009-06-22 17:05:19 +00:00
- preserve pg logs on disk for longer period
2009-06-22 22:50:37 +00:00
- make scrub interruptible
2009-06-22 17:05:19 +00:00
- 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?
2008-12-10 00:47:40 +00:00
uclient
- clean up check_caps to more closely mirror kclient logic
- readdir from cache
2008-09-18 22:39:54 +00:00
- fix readdir vs fragment race by keeping a separate frag pos, and ignoring dentries below it
- hadoop: clean up assert usage
2008-06-04 18:08:06 +00:00
mds
- pass issued, wanted into eval(lock) when eval() already has it? (and otherwise optimize eval paths..)
2008-12-17 22:06:15 +00:00
- 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)
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..
- add FILE_CAP_EXTEND capability bit
2009-06-15 03:29:23 +00:00
- dir fragment
- maybe just take dftlock for now, to keep it simple.
- dir merge
2009-06-03 00:14:40 +00:00
- 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?
2008-12-10 00:47:40 +00:00
mon
- mds injectargs N should take mds# or id. * should bcast to standy mds's.
2008-12-10 00:47:40 +00:00
- 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-09-18 22:39:54 +00:00
osdmon
- monitor needs to monitor some osds...
pgmon
2009-01-30 23:00:53 +00:00
/- include osd vector with pg state
2008-09-18 22:39:54 +00:00
- 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
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
2009-03-03 23:21:34 +00:00
cas
- chunking. see TTTD in
ESHGHI, K.
A framework for analyzing and improving content-based chunking algorithms.
2009-06-12 19:49:30 +00:00
Tech. Rep. HPL-2005-30(R.1), Hewlett Packard Laboratories, Palo Alto, 2005.
2009-07-01 18:58:40 +00:00
s3
- handle gracefully location related requests
2009-07-01 18:58:40 +00:00
- logging control (?)
2009-07-02 20:17:26 +00:00
- parse date/time better
- upload using post
- torrent
- handle gracefully PUT/GET requestPayment