The Adaptive Radix Tree: ARTful Indexing for Main- Memory Databases Presentation by Aaron Kabcenell The adaptive radix tree: ARTful indexing for main-memory databases. Viktor Leis, Alfons Kemper, Thomas Neumann. International Conference on Data Engineering (ICDE), 2013
32
Embed
The Adaptive Radix Tree: ARTful Indexing for Main- Memory ...daslab.seas.harvard.edu/classes/cs265/files/presentations/feb28.pdf · The Adaptive Radix Tree: ARTful Indexing for Main-Memory
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
The Adaptive Radix Tree: ARTful Indexing for Main-Memory Databases
Presentation by Aaron Kabcenell
The adaptive radix tree: ARTful indexing for main-memory databases. Viktor Leis, AlfonsKemper, Thomas Neumann. International Conference on Data Engineering (ICDE), 2013
Data Blocks: Hybrid OLTP and OLAP on Compressed Storage using both Vectorization and
Compilation. Harald Lang, Tobias Mühlbauer, Florian Funke, Peter A. Boncz, Thomas Neumann,
Alfons Kemper. ACM SIGMOD International Conference on Management of Data. 2016
?
Why is it important?
OLTP Workloads limited by Index Performance
Data Blocks: Hybrid OLTP and OLAP on Compressed Storage using both Vectorization and
Compilation. Harald Lang, Tobias Mühlbauer, Florian Funke, Peter A. Boncz, Thomas Neumann,
Alfons Kemper. ACM SIGMOD International Conference on Management of Data. 2016
Why is it hard?
Hash Tables
Fast, O(1) access time
x Point queries only
x Overflow causes periodic latency
A study of index structures for main memory database management systems. T. J. Lehman and M. J. Carey. International Conference on Very Large Databases (VLDB),1986
Trees
Keeps elements ordered
x Not ideal for modern hardware (cache misses, pipeline stalls)
Modern B-Tree Techniques, by Goetz Graefe, Foundations and Trends in Databases, 2011
Can we get fast, fully featured indexing?
Why do existing solutions not work?
T-Trees
A study of index structures for main memory database management systems. T. J. Lehman and M. J. Carey. International Conference on Very Large Databases (VLDB),1986
Balance of space overhead and search speed
x Significant amounts of data stored per node, but only two pointers used
x Poor cache behavior
Cache Sensitive B+-Trees
J. Rao and K. A. Ross, “Making B+ trees cache conscious in main memory”, SIGMOD, 2000.
Stores only one child pointer per node
Can fan out more and keep more nodes in cache line
x Many comparisons cause pipeline stalls
Fast Architecture Sensitive Trees
C. Kim et al., “FAST: fast architecture sensitive tree search on modern cpus and gpus”, SIGMOD 2010.
Binary Tree
SIMD Blocking
Three Level Hierarchy
Reduce comparisons by matching structure to SIMD vector size
Reduce cache misses by matching structure to cache line size
Pointer-free, stored in arrays and use offset calculations
x Expensive updates
Radix Tree
• Two factors determine performance:• k: key length in bits
• s: span – number of bits in key stored in each node
• Tree has k/s levels
• Node has 2s pointers
A
N R
D T Y E T
Radix Tree
Complexity of operations based on key length, not key number
Keys are ordered and stored implicitly
Insertion order independent creation with no rebalancing
x Mostly studied for character strings
x Poor space usage due to large number of null paths