Difference between revisions of "Storage Layout"
Jump to navigation
Jump to search
Line 2: | Line 2: | ||
==Data Types== | ==Data Types== | ||
− | * | + | * {{Type|Num}}: compressed integer (1-5 bytes) |
− | * | + | * {{Type|Token}}: length (<code>Num</code>) and bytes of UTF8 byte representation |
− | * | + | * {{Type|double}}: number, stored as token |
− | * | + | * {{Type|boolean}}: boolean (1 byte, <code>00</code> or <code>01</code>) |
− | + | * {{Type|TokenSet}}: key array (<code>Tokens</code>), next/bucket/size arrays (<code>Nums</code>) | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==inf.basex== | ==inf.basex== | ||
− | |||
{| class="wikitable" width="100%" | {| class="wikitable" width="100%" | ||
|- | |- | ||
Line 38: | Line 28: | ||
|- | |- | ||
| valign='top' | '''2.1. Name Index'''<br/>Element/attribute names | | valign='top' | '''2.1. Name Index'''<br/>Element/attribute names | ||
− | | Token set, | + | | 1. Token set, storing all names ({{Type|TokenSet}}:<br />2. One StatsKey instance per entry:<br/>2.1. Content kind (<code>Num</code>)<br />2.1. Number: min/max (<code>Doubles</code>)<br />2.2. Category: number of entries (<code>Num</code>), entries (<code>Tokens</code>)<br />2.3. Number of entries (<code>Num</code>)<br />2.4. Leaf flag (<code>Boolean</code>)<br />2.5. Maximum text length (<code>Double</code>; legacy, could be <code>Num</code>) |
| valign='top' | [https://github.com/BaseXdb/basex/blob/master/src/main/java/org/basex/index/Names.java Names()]<br/>[https://github.com/BaseXdb/basex/blob/master/src/main/java/org/basex/util/hash/TokenSet.java TokenSet.read()]<br/>[https://github.com/BaseXdb/basex/blob/master/src/main/java/org/basex/index/StatsKey.java StatsKey()] | | valign='top' | [https://github.com/BaseXdb/basex/blob/master/src/main/java/org/basex/index/Names.java Names()]<br/>[https://github.com/BaseXdb/basex/blob/master/src/main/java/org/basex/util/hash/TokenSet.java TokenSet.read()]<br/>[https://github.com/BaseXdb/basex/blob/master/src/main/java/org/basex/index/StatsKey.java StatsKey()] | ||
|- | |- |
Revision as of 18:17, 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
)TokenSet
: key array (Tokens
), next/bucket/size arrays (Nums
)
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 |
1. Token set, storing all names (TokenSet :2. One StatsKey instance per entry: 2.1. 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() |