Difference between revisions of "Storage Layout"
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''' | ||
− | | | + | | Key/value pairs, suffixed by empty key ({{Type|Token}}/{{Type|Token}}):<br />• <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''' | ||
− | | | + | | Key/value pairs, suffixed by empty key ({{Type|Token}}/{{Type|Token}}):<br />• <code>TAGS</code> → Tag Index<br />• <code>ATTS</code> → Attribute Index<br />• <code>PATH</code> → Path Index<br />• <code>NS</code> → Namespaces<br />• <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) | + | | 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 18:10, 26 October 2011
Version: 7.0
Data Types
Num
: compressed integer (1-5 bytes)Token
: length (Num
) and bytes of UTF8 byte representationdouble
: number, stored as tokenboolean
: boolean (1 byte,00
or01
)
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 discarded2.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() |