Revisiting b+-trees
- 6. History of B+-Trees
2018/3/30 BDI@Fujitsu 6
Douglas Comer. 1979. Ubiquitous B-Tree. ACM Comput. Surv. 11, 2 (June 1979),
bit.ly/bit-btree Bit’79
- 12. Btree4j (1/2)
• B+-trees
•
• Paging using LRU cache replacement policy / Freespace mgmt.
• Key Value
• Prefix B-trees
Rudolf Bayer and Karl Unterauer. "Prefix B-trees", Proc. ACM Trans. Database Syst. 2, 1,
pp.11-26), March 1977.
• 8 bytes Variable-bytes coding
keys/values
• value key
• DB unique non-unique
• Delete/Update
• Prefix search, Range , wildcard LIKE
• DB
2018/3/30 BDI@Fujitsu 12
- 14. Btree4j (2/2)
• Bulk-loading
•
• Indexed File)
• Fanout leaf value RDB ) . value
2018/3/30 BDI@Fujitsu 14
Cons (Disclaimer)
• 2006 (Java5 ) Xindice B-tree
Modern Java
→ Lambda, Stream API Preconditions
• read-most XML-DB
read-write
→ OLTP
PR ;-) 2-3weeks (?)
- 15. Why prefix B-trees?
2018/3/30 BDI@Fujitsu 15
1. Goetz Graefe (2011), "Modern B-Tree Techniques", Foundations and Trends in Databases: Vol. 3: No. 4, pp 203-402.
2. Douglas Comer. Ubiquitous B-Tree. ACM Comput. Surv. 11, 2 (June 1979)
- 17. 2018/3/30 BDI@Fujitsu 17
Btree4j Internal - Paged file
(Paged) File Header 4k bytes
Page 4k bytes
Page header 127 bytes
https://xml.apache.org/xindice/dev/guide-internals.html
- 19. 2018/3/30 BDI@Fujitsu 19
Btree4j Internal – Page header
next_page right link
page in-memory LRU .
Dirty Page
leftmost key rightmost key prefix
aaaa, aaabb, aaaccc, aaaddd ”aaa” prefix
a, bb, ccc, ddd fanout