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

Reply via email to