Hello all, Can someone help explain to me the relationship between keys and objects/items/units? Specifically, I'm confused by the reality that a single file (object?) is identified by one key, but the individual parts (stat_data, extends) each have their own keys as well. How does one key lead to the others?
Are there any detailed examples of keys available? If the diagram from the whitepaper here: http://www.namesys.com/treepics/treepicswin/Blobs_Reiser4.gif could be annotated to contain samples for: * a single directory, * two small files, * a large file (2-3 extents) * the stat_data (and item keys) * twig nodes showing delimiting keys and extent pointers * formatted nodes showing directory entries, stat_data * also, plugin id at the unit, item, and object levels would help! I think that would be very helpful for people to understand how the tree and plugins work. I'm slogging through the code in my spare time, but I really hope someone already knows the answers and will post an explanation! The following statements in the V4 whitepaper led me to realizing the storage layer was doing something with keys I didn't understand: "Everything in the tree has exactly one key." "These directory entries contain a name, and a key." (The Unix Directory Plugin) "...more precisely, since a key selects not just the file but a particular byte within a file, it returns that part of the key which is sufficient to select the file, and which is sufficient to allow the code to determine what the full keys for those various parts when the byte offset and some other fields (like item type) are added to the partial key to form a whole key..." "The key can then be used by the tree storage layer to find all the pieces of that which was named." "we can store just one key for the extent, and then we can calculate the key of any byte within that extent." Thanks, John -- John D. Heintz Principal Consultant New Aspects of Software Austin, TX (512) 633-1198
