A “Branch” is the fundamental unit used to locate and define data.
Each Branch has three relationship pointers that logically tie all Branches together: Parent, Sibling, and Child.
There is only one Parent for a given Branch. “/A” is the Parent of “/A,B”.
A Branch can have one Sibling. The Sibling can in turn point to another Sibling. “/A,C” is the Sibling of “/A,B”.
A Branch can have one Child. The Child can in turn have related Siblings and Children. “/A,B” is the Child of “/A”.
Siblings and Children are always in an ordered sequence. “/A,C” will come after “/A,B” and “/A,B” will be the Child of “/A”.
Data associated with a Branch is in one or more Sections. A Branch can be stored or communicated as a File. A File is associated with one Branch. A Branch can have one File or none.
Branches are stored in Slabs that are specific for Branches only. Since the Branch is fixed size in memory fragmentation does not occur in the Slab.
A Slab will hold roughly 10K Branches. For many environments a single Slab is sufficient for all Branches.