jbates 2002/12/17 09:21:08
Modified: src/documentation/content/xdocs/dev guide-internals.xml
Log:
Last B-Tree paragraph
Revision Changes Path
1.8 +18 -1
xml-xindice/src/documentation/content/xdocs/dev/guide-internals.xml
Index: guide-internals.xml
===================================================================
RCS file:
/home/cvs/xml-xindice/src/documentation/content/xdocs/dev/guide-internals.xml,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- guide-internals.xml 17 Dec 2002 17:12:24 -0000 1.7
+++ guide-internals.xml 17 Dec 2002 17:21:08 -0000 1.8
@@ -470,6 +470,23 @@
to other nodes in the B-Tree. In the case of leaf
nodes, there are exactly as many pointers as
key values, and each pointer points to the data
record associated with one of the key values.</p>
<p>In either case, the node is encoded as follows:</p>
+ <ul><li>For each key value, two fields are written. Keys
in the Xindice implementation
+ are not numbers, as in the image of a B-Tree
above, but rather strings of character
+ data. For each of these strings, Xindice encodes
the string in utf-8, resulting
+ in a byte array, and writes:
+ <ul>
+ <li>The length of the resulting utf-8 byte
array. This length is written over
+ two bytes.</li>
+ <li>The bytes representing the key value (a
string), in utf-8.</li>
+ </ul>
+ The number of values present is known from the
page header.
+ </li>
+ <li>Immediately following the key data come the
pointers. These are written simply one
+ after the other, each occupying 8 bytes. (Each
pointer is the page number of the
+ first page holding the record being pointed to).
The number of pointers is known
+ from the number of key values, and whether the
node is a leaf- or branch node.</li>
+ </ul>
+
</section>
</section>
</section>