You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by da...@apache.org on 2011/08/24 21:30:36 UTC
svn commit: r1161240 - /subversion/branches/fs-successor-ids/BRANCH-README
Author: danielsh
Date: Wed Aug 24 19:30:36 2011
New Revision: 1161240
URL: http://svn.apache.org/viewvc?rev=1161240&view=rev
Log:
On the fs-successor-ids branch:
* BRANCH-README
(FSFS WHITEBOARD): Start this section by recording the first idea that crossed my
mind during an IRC conversation. Suggested by the 'abuse everyone's inbox as
my backup scheme' department.
Modified:
subversion/branches/fs-successor-ids/BRANCH-README
Modified: subversion/branches/fs-successor-ids/BRANCH-README
URL: http://svn.apache.org/viewvc/subversion/branches/fs-successor-ids/BRANCH-README?rev=1161240&r1=1161239&r2=1161240&view=diff
==============================================================================
--- subversion/branches/fs-successor-ids/BRANCH-README (original)
+++ subversion/branches/fs-successor-ids/BRANCH-README Wed Aug 24 19:30:36 2011
@@ -62,3 +62,36 @@ present. That would need to be added fo
Lacking also are C unit tests for this functionality.
And, of course, the FSFS support for this enhancement is non-existent.
+
+
+FSFS WHITEBOARD
+===============
+
+Need an append-only key-value store. (Values may be modified by appending
+to them. Keys may be appended.)
+
+1. In revisions, all successors are copies, except at most one.
+ => that 'at most one' modification successor can be stored separately
+ from the copies.
+
+2. Storing copies:
+ - a directory per noderev that had been copied
+ - in the directory, a file per copy event
+ - each file contains the txn-id of the (txn creating the) revision
+ the copy/successor lives in
+ - directories are sharded, scheme TBD
+ - possibly: one directory serves several copied-from noderevs?
+ - non-copies (ie, 'modification' successors) are stored separately
+
+ Rationale:
+
+ - store the txn-id (and check it when reading the directory)
+ to handle issues with aborted commits (eg, mkdir db/revs/${youngest+1})
+
+ - shard/reuse directories to avoid burning through inodes
+ - may need to 'pack' directories occasionally? The one-file-per-successor
+ isn't needed in the long term...
+
+ - store 'modification' successors separately as there is O(1) of them
+
+3. (append your FSFS design scheme to here):