From 2ddd136f0bb576d548c6805bf7a57133363d0b85 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Wed, 11 Jun 2008 10:45:54 -0700 Subject: [PATCH] more notes --- src/TODO | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/src/TODO b/src/TODO index eaae0d671c5dc..ff10352e1b57e 100644 --- a/src/TODO +++ b/src/TODO @@ -231,7 +231,25 @@ in snaprealm, - for each realm, - list revs; -- rev can be an ino? or whatever. _not_ ordered. +- rev can be an ino? or whatever. can we get away with it _not_ being ordered? + - for osds.. yes. + - for mds.. may make the cdentry range info tricky! + + +metadata +- fix up inode_map to key off vinodeno.. or better yet have a second map for non-zero revs. +struct vinodeno_t { + inodeno_t ino; + __u64 rev; +}; +- dentry: replace dname -> ino, rino+rtype with + (dname, crev, drev) -> vino, vino+rtype (where valid range is [crev, drev) + - live dentries have drev = 0. kept in separate map: + - map items; + - map, CDentry> vitems; + - track vitem count in fragstat. + - when vitem count gets large, add pointer in fnode indicating vitem range stored in separate dir object. + client - also keep caps linked into snaprealm list @@ -280,20 +298,9 @@ btrfs rev de-duping - clone file range (not entire file) -ro snaps -- - -rw snaps -- a tree: interior nodes ro, leaves rw - - snapping a rw leaf forms two new leaves, one for orig, one for new snap -- cow? - - caps include direct lineage - - less efficient when looking up old objects, since we have to query some list possible poids explicitly -- gc? -- interface $ ls -al .snapshot # list snaps. show both symbolic names, and timestamp names? (symbolic -> timestamp symlinks, maybe) $ mkdir .snapshot/blah # create snap - +$ rmdir .snapshot/blah # remove it -- 2.39.5