[Tux3] More advantages of versioned pointers

Daniel Phillips phillips at phunq.net
Tue Jul 22 13:51:34 PDT 2008


While working on the tux3 announcement I noticed yet another advantage 
of versioned pointers vs the currently fashionable copy-on-write 
methods: metadata backpointers.  Versioning is only done in two places:

  1) Leaves of the inode table
  2) Terminal index nodes of a file/directory btree

In both cases it is possible to store a single backpointer from the leaf 
block to the parent btree index node.  This is impractical with a 
copy-on-write scheme where each version has its own tree root.  Then,
multiple backpointers would be required.  Btrfs instead stores a "hint"
consisting of the btree level and logical offset of the leaf.  Tux3 can
simply use direct backpointers with a corresponding increase in fsck
robustness.

I should also note that versioned pointers require dramatically less 
metadata than copy-on-write with multiple roots.  If a data block is 
altered in a file then the versioned pointer method only requires a 
single new (64 bit) pointer to be added to a terminal index node.  
Copy-on-write requires the entire parent block to be copied, and its 
parent and so on.  Versioned pointer metadata representation is thus at 
least 512 times more space efficient than copy on write.

Regards,

Daniel

_______________________________________________
Tux3 mailing list
Tux3 at tux3.org
http://tux3.org/cgi-bin/mailman/listinfo/tux3



More information about the Tux3 mailing list