Difference between revisions of "Storage Layout"

From BaseX Documentation
Jump to navigation Jump to search
Line 6: Line 6:
 
* <code>double</code>: number, stored as token
 
* <code>double</code>: number, stored as token
 
* <code>boolean</code>: boolean (1 byte, <code>00</code> or <code>01</code>)
 
* <code>boolean</code>: boolean (1 byte, <code>00</code> or <code>01</code>)
 +
 +
<noinclude>
 +
'''A little thank you...'''<br>
 +
<small>for {{{1}}}.<br>
 +
hugs, {{{2}}}</small></noinclude>
 +
 +
<div class="noprint" style="float:center; border:1px solid blue;width:200px;background-color:#F5F5F5;padding:3px;">
 +
[[Image:Example.jpg|left|80px|Example sunflower image]] '''A little thank you...''' <br /><small>for {{{reason|{{{1}}}}}}. <br />hugs, {{{signature|{{{2}}}}}}</small>
 +
</div>
 +
  
 
==inf.basex==
 
==inf.basex==
Line 20: Line 30:
 
|-
 
|-
 
| valign='top' | '''1. Meta Data'''
 
| valign='top' | '''1. Meta Data'''
| Pairs of key/value tokens, suffixed by empty key:<br />&bull; <code>PERM</code> → User Permissions
+
| Key/value pairs, suffixed by empty key ({{Type|Token}}/{{Type|Token}}):<br />&bull; <code>PERM</code> → User Permissions
 
| valign='top' | [https://github.com/BaseXdb/basex/blob/master/src/main/java/org/basex/data/MetaData.java MetaData.read()]<br/>[https://github.com/BaseXdb/basex/blob/master/src/main/java/org/basex/core/Users.java Users.read()]
 
| valign='top' | [https://github.com/BaseXdb/basex/blob/master/src/main/java/org/basex/data/MetaData.java MetaData.read()]<br/>[https://github.com/BaseXdb/basex/blob/master/src/main/java/org/basex/core/Users.java Users.read()]
 
|-
 
|-
 
| valign='top' | '''2. Main memory indexes'''
 
| valign='top' | '''2. Main memory indexes'''
| Pairs of key/value tokens, suffixed by empty key:<br />&bull; <code>TAGS</code> → Tag Index<br />&bull; <code>ATTS</code> → Attribute Index<br />&bull; <code>PATH</code> → Path Index<br />&bull; <code>NS</code> → Namespaces<br />&bull; <code>DOCS</code> → Document Index
+
| Key/value pairs, suffixed by empty key ({{Type|Token}}/{{Type|Token}}):<br />&bull; <code>TAGS</code> → Tag Index<br />&bull; <code>ATTS</code> → Attribute Index<br />&bull; <code>PATH</code> → Path Index<br />&bull; <code>NS</code> → Namespaces<br />&bull; <code>DOCS</code> → Document Index
 
| valign='top' | [https://github.com/BaseXdb/basex/blob/master/src/main/java/org/basex/data/DiskData.java DiskData()]
 
| valign='top' | [https://github.com/BaseXdb/basex/blob/master/src/main/java/org/basex/data/DiskData.java DiskData()]
 
|-
 
|-
Line 32: Line 42:
 
|-
 
|-
 
| valign='top' | '''2.2. Path Index'''
 
| valign='top' | '''2.2. Path Index'''
| 1. Flag for path definition (<code>Boolean</code>, always <code>true</code>; legacy)<br/>2. PathNode:<br/>2.1. Name reference (<code>Num</code>)<br/>2.2. Node kind (<code>Num</code>)<br/>2.3. Number of occurrences (<code>Num</code>)<br/>2.4. Number of children (<code>Num</code>)<br/>2.5. <code>Double</code>; legacy, can be reused or discarded<br/>2.6. Recursive generation of child nodes (→ 2)<code>
+
| 1. Flag for path definition (<code>Boolean</code>, always <code>true</code>; legacy)<br/>2. PathNode:<br/>2.1. Name reference (<code>Num</code>)<br/>2.2. Node kind (<code>Num</code>)<br/>2.3. Number of occurrences (<code>Num</code>)<br/>2.4. Number of children (<code>Num</code>)<br/>2.5. <code>Double</code>; legacy, can be reused or discarded<br/>2.6. Recursive generation of child nodes (→ 2)
 
| valign='top' | [https://github.com/BaseXdb/basex/blob/master/src/main/java/org/basex/index/path/PathSummary.java PathSummary()]<br/>[https://github.com/BaseXdb/basex/blob/master/src/main/java/org/basex/index/path/PathNode.java PathNode()]
 
| valign='top' | [https://github.com/BaseXdb/basex/blob/master/src/main/java/org/basex/index/path/PathSummary.java PathSummary()]<br/>[https://github.com/BaseXdb/basex/blob/master/src/main/java/org/basex/index/path/PathNode.java PathNode()]
 
|-
 
|-

Revision as of 17:10, 26 October 2011

Version: 7.0

Data Types

  • Num: compressed integer (1-5 bytes)
  • Token: length (Num) and bytes of UTF8 byte representation
  • double: number, stored as token
  • boolean: boolean (1 byte, 00 or 01)


A little thank you...
for {{{1}}}.
hugs, {{{2}}}

Example sunflower image
A little thank you...
for {{{1}}}.
hugs, {{{2}}}


inf.basex

Description Format Method
Disk Data Database meta information DiskData()
1. Meta Data Key/value pairs, suffixed by empty key (Token/Token):
PERM → User Permissions
MetaData.read()
Users.read()
2. Main memory indexes Key/value pairs, suffixed by empty key (Token/Token):
TAGS → Tag Index
ATTS → Attribute Index
PATH → Path Index
NS → Namespaces
DOCS → Document Index
DiskData()
2.1. Name Index
Element/attribute names
Token set, enriched with statistical information:
1. Token set: key array (Tokens), next/bucket/size arrays (Nums)
2. Content kind (Num)
2.1. Number: min/max (Doubles)
2.2. Category: number of entries (Num), entries (Tokens)
2.3. Number of entries (Num)
2.4. Leaf flag (Boolean)
2.5. Maximum text length (Double; legacy, could be Num)
Names()
TokenSet.read()
StatsKey()
2.2. Path Index 1. Flag for path definition (Boolean, always true; legacy)
2. PathNode:
2.1. Name reference (Num)
2.2. Node kind (Num)
2.3. Number of occurrences (Num)
2.4. Number of children (Num)
2.5. Double; legacy, can be reused or discarded
2.6. Recursive generation of child nodes (→ 2)
PathSummary()
PathNode()
2.3. Namespaces 1. Token set, storing prefixes (TokenSet)
2. Token set, storing URIs (TokenSet)
3. NSNode:
3.1. pre value (Num)
3.2. References to prefix/URI pairs (Nums)
3.3. Number of children (Num)
3.4. Recursive generation of child nodes (→ 3)
Namespaces()
NSNode()