Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Write-optimization in external memory data structures (Highload++ 2014)

1,251 views

Published on

After a long reign as the dominant on-disk data structure for databases and filesystems, B-trees are slowly being replaced by write-optimized data structures, to handle ever-growing volumes of data. Some write optimization techniques, like LSM-trees, give up some of the query performance of B-trees in order to achieve this.

A Fractal Tree is a write-optimized data structure that matches the insertion performance of an LSM-tree while maintaining the optimal query performance of a B-tree. It's inspired by many data structures (Buffered Repository Trees, B^ε trees, ...) but the real definition is just what we've implemented at Tokutek.

I'll provide background on B-trees and LSM-trees, an overview of how Fractal Trees work, where they differ from B-trees and LSM-trees, and how we use their performance advantages in some obvious and some surprising ways to power new MySQL and MongoDB features in TokuDB and TokuMX.

Published in: Data & Analytics
  • Be the first to comment

Write-optimization in external memory data structures (Highload++ 2014)

  1. 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Write-optimization in external memory data structures Leif Walsh Tokutek, Inc. leif@tokutek.com @leifwalsh November 1, 2014 Leif Walsh (Tokutek) Fractal Trees November 1, 2014 1 / 31
  2. 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Write-optimization in external memory data structures Background Leif Walsh (Tokutek) Fractal Trees November 1, 2014 2 / 31
  3. 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Write-optimization in external memory data structures Data structures: Leif Walsh (Tokutek) Fractal Trees November 1, 2014 3 / 31
  4. 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Write-optimization in external memory data structures Data structures: Leif Walsh (Tokutek) Fractal Trees November 1, 2014 3 / 31
  5. 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Write-optimization in external memory data structures Data structures: Provide retrieval of data. Lookup(Key) Pred(Key) Succ(Key) Leif Walsh (Tokutek) Fractal Trees November 1, 2014 3 / 31
  6. 6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Write-optimization in external memory data structures Data structures: Provide retrieval of data. Lookup(Key) Pred(Key) Succ(Key) Dynamic data structures let you change the data. Insert(Key; Value) Delete(Key) Leif Walsh (Tokutek) Fractal Trees November 1, 2014 3 / 31
  7. 7. . . . . . . . . . [Aggarwal & Vitter ’88] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Write-optimization in external memory data structures DAM model Problem size N. Memory size M. Leif Walsh (Tokutek) Fractal Trees November 1, 2014 4 / 31
  8. 8. . . . . . . . . . [Aggarwal & Vitter ’88] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Write-optimization in external memory data structures DAM model Problem size N. Memory size M. Transfer data to/from memory in blocks of size B. Leif Walsh (Tokutek) Fractal Trees November 1, 2014 4 / 31
  9. 9. . . . . . . . . . [Aggarwal & Vitter ’88] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Write-optimization in external memory data structures DAM model Problem size N. Memory size M. Transfer data to/from memory in blocks of size B. Efficiency of operations is measured as the number of block transfers, a.k.a. IOPS. Leif Walsh (Tokutek) Fractal Trees November 1, 2014 4 / 31
  10. 10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Write-optimization in external memory data structures A B-tree (Б-tree?) is an external memory data structure: Leif Walsh (Tokutek) Fractal Trees November 1, 2014 5 / 31
  11. 11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Write-optimization in external memory data structures A B-tree (Б-tree?) is an external memory data structure: Leif Walsh (Tokutek) Fractal Trees November 1, 2014 5 / 31
  12. 12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Write-optimization in external memory data structures A B-tree (Б-tree?) is an external memory data structure: Balanced search tree. Fanout of B (block size / key size). Leif Walsh (Tokutek) Fractal Trees November 1, 2014 5 / 31
  13. 13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Write-optimization in external memory data structures A B-tree (Б-tree?) is an external memory data structure: Balanced search tree. Fanout of B (block size / key size). Internal nodes < M. Leaf nodes > M. Leif Walsh (Tokutek) Fractal Trees November 1, 2014 5 / 31
  14. 14. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Write-optimization in external memory data structures A B-tree (Б-tree?) is an external memory data structure: Balanced search tree. Fanout of B (block size / key size). Internal nodes < M. Leaf nodes > M. Search: O(logB N) I/Os Insert: O(logB N) I/Os Leif Walsh (Tokutek) Fractal Trees November 1, 2014 5 / 31
  15. 15. . . . . . . . [Brodal & Fagerberg ’03] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Write-optimization in external memory data structures Leif Walsh (Tokutek) Fractal Trees November 1, 2014 6 / 31
  16. 16. . . . . . . . [Brodal & Fagerberg ’03] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Write-optimization in external memory data structures Leif Walsh (Tokutek) Fractal Trees November 1, 2014 7 / 31
  17. 17. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Write-optimization in external memory data structures OLAP Leif Walsh (Tokutek) Fractal Trees November 1, 2014 8 / 31
  18. 18. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Write-optimization technique #1: OLAP OLAP: Online Analytical Processing Leif Walsh (Tokutek) Fractal Trees November 1, 2014 9 / 31
  19. 19. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Write-optimization technique #1: OLAP OLAP: Online Analytical Processing Key idea: Analyze data collected in the past. Leif Walsh (Tokutek) Fractal Trees November 1, 2014 9 / 31
  20. 20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Write-optimization technique #1: OLAP OLAP: Online Analytical Processing Key idea: Analyze data collected in the past. B-tree inserts are slow, but…logging and sorting are fast. Leif Walsh (Tokutek) Fractal Trees November 1, 2014 9 / 31
  21. 21. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Write-optimization technique #1: OLAP Merge sort: Leif Walsh (Tokutek) Fractal Trees November 1, 2014 10 / 31
  22. 22. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Write-optimization technique #1: OLAP Merge sort in external memory: Leif Walsh (Tokutek) Fractal Trees November 1, 2014 11 / 31
  23. 23. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Write-optimization technique #1: OLAP Merge sort in external memory: Merge sort cost in DAM model is: Cost to scan through all the data once. Multiplied by the # of levels in the merge tree. Leif Walsh (Tokutek) Fractal Trees November 1, 2014 11 / 31
  24. 24. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Write-optimization technique #1: OLAP Merge sort in external memory: Merge sort cost in DAM model is: Cost to scan through all the data once. N/B Multiplied by the # of levels in the merge tree. Leif Walsh (Tokutek) Fractal Trees November 1, 2014 11 / 31
  25. 25. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Write-optimization technique #1: OLAP Merge sort in external memory: Merge sort cost in DAM model is: Cost to scan through all the data once. N/B Multiplied by the # of levels in the merge tree. logM/B N/B Leif Walsh (Tokutek) Fractal Trees November 1, 2014 11 / 31
  26. 26. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Write-optimization technique #1: OLAP Merge sort in external memory: Merge sort cost in DAM model is: Cost to scan through all the data once. N/B Multiplied by the # of levels in the merge tree. logM/B N/B O ( N B logM/B N B ) Leif Walsh (Tokutek) Fractal Trees November 1, 2014 11 / 31
  27. 27. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Write-optimization technique #1: OLAP Insert N elements into a B-tree: O ( N logB N M ) Merge sort: O ( N B logM/B N B ) Leif Walsh (Tokutek) Fractal Trees November 1, 2014 12 / 31
  28. 28. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Write-optimization technique #1: OLAP Insert N elements into a B-tree: O ( N logB N M ) Merge sort: O ( N B logM/B N B ) 2N B Typically, M/B is large, so only two passes are needed to sort. Leif Walsh (Tokutek) Fractal Trees November 1, 2014 12 / 31
  29. 29. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Write-optimization technique #1: OLAP Insert N elements into a B-tree: O ( N logB N M ) N Merge sort: O ( N B logM/B N B ) 2N B Typically, M/B is large, so only two passes are needed to sort. Intuition: Each insert into a B-tree costs 1 seek, while sorting is close to disk bandwidth. Leif Walsh (Tokutek) Fractal Trees November 1, 2014 12 / 31
  30. 30. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Write-optimization technique #1: OLAP Insert N elements into a B-tree: (assuming 100-1000 byte elements) O ( N logB N M ) N 10

×