B-trees (Ubiquitous and
- therwise)
Williams College :: CSCI 333 Spring 2019
B-trees (Ubiquitous and otherwise) Williams College :: CSCI 333 - - PowerPoint PPT Presentation
B-trees (Ubiquitous and otherwise) Williams College :: CSCI 333 Spring 2019 Logistics Deadlines Lab 2b Final Project Project details Can choose partners Status quo is to remain with your FUSE FAT teammates Must submit
Williams College :: CSCI 333 Spring 2019
DAM model:
Goal: Minimize # of I/Os
block size B, memory size M, data size N.
[Aggarwal+Vitter ’88]
describe each operation’s cost in terms of the DAM model
invariants, must rebalance!
specific variants as they come up
B
≧ half full
O(logB N) Summary Point Query Insert Delete Range Query B-tree
23 57 76 02 05 06 12 77 81 86 90 25 29 43 59 64 75
O(logB N)
O ✓ logB N + K B ◆
O(logB N) O(logB N)
What does B Stand for?
your search key, and follow the pointer to its left
pointer
query)
02 05 06 25 29 43 59 64 75
Summary Point Query Insert Delete Range Query B-tree
O(logB N)
O ✓ logB N + K B ◆
O(logB N) O(logB N)
B
23 57 76 12 77 81 86 90
O(logB N)
02 05 06 25 29 43 59 64 75
Summary Point Query Insert Delete Range Query B-tree
O(logB N)
O ✓ logB N + K B ◆
O(logB N) O(logB N)
B
23 57 76 12 77 81 86 90 89
O(logB N)
02 05 06 25 29 43 59 64 75
Summary Point Query Insert Delete Range Query B-tree
O(logB N)
O ✓ logB N + K B ◆
O(logB N) O(logB N)
B
23 57 76 12 77 81 86 90 89
O(logB N)
02 05 06 25 29 43 59 64 75
Summary Point Query Insert Delete Range Query B-tree
O(logB N)
O ✓ logB N + K B ◆
O(logB N) O(logB N)
B
23 57 76 12 77 81 86 90 89 89
O(logB N)
02 05 06 25 29 43 59 64 75
Summary Point Query Insert Delete Range Query B-tree
O(logB N)
O ✓ logB N + K B ◆
O(logB N) O(logB N)
B
23 57 76 12 77 81 86 90 89
O(logB N)
02 05 06 25 29 43 59 64 75
Summary Point Query Insert Delete Range Query B-tree
O(logB N)
O ✓ logB N + K B ◆
O(logB N) O(logB N)
B
23 57 76 12 77 81 86 90 89
O(logB N)
82
02 05 06 25 29 43 59 64 75
Summary Point Query Insert Delete Range Query B-tree
O(logB N)
O ✓ logB N + K B ◆
O(logB N) O(logB N)
B
23 57 76 12 77 81 86 90 89
O(logB N)
82
02 05 06 25 29 43 59 64 75
Summary Point Query Insert Delete Range Query B-tree
O(logB N)
O ✓ logB N + K B ◆
O(logB N) O(logB N)
B
23 57 76 12 77 81 86 90 89
O(logB N)
82 82
02 05 06 25 29 43 59 64 75
Summary Point Query Insert Delete Range Query B-tree
O(logB N)
O ✓ logB N + K B ◆
O(logB N) O(logB N)
B
23 57 76 12 77 81 82 89 86
O(logB N)
90
02 05 06 25 29 43 59 64 75
Summary Point Query Insert Delete Range Query B-tree
O(logB N)
O ✓ logB N + K B ◆
O(logB N) O(logB N)
B
23 57 76 12
O(logB N)
95 77 81 82 89 86 90
02 05 06 25 29 43 59 64 75
Summary Point Query Insert Delete Range Query B-tree
O(logB N)
O ✓ logB N + K B ◆
O(logB N) O(logB N)
B
23 57 76 12
O(logB N)
95 77 81 82 89 86 90
02 05 06 25 29 43 59 64 75
Summary Point Query Insert Delete Range Query B-tree
O(logB N)
O ✓ logB N + K B ◆
O(logB N) O(logB N)
B
23 57 76 12 77 81 82 89 86
O(logB N)
95 90
02 05 06 25 29 43 59 64 75
Summary Point Query Insert Delete Range Query B-tree
O(logB N)
O ✓ logB N + K B ◆
O(logB N) O(logB N)
B
23 57 76 12 77 81 82 89 86
O(logB N)
95 90 95
02 05 06 25 29 43 59 64 75
Summary Point Query Insert Delete Range Query B-tree
O(logB N)
O ✓ logB N + K B ◆
O(logB N) O(logB N)
B
23 57 76 12 77 81 82 89 86
O(logB N)
95 90 95
02 05 06 25 29 43 59 64 75
Summary Point Query Insert Delete Range Query B-tree
O(logB N)
O ✓ logB N + K B ◆
O(logB N) O(logB N)
B
23 57 76 12 77 81 82 89 86
O(logB N)
90 95
02 05 06 25 29 43 59 64 75
Summary Point Query Insert Delete Range Query B-tree
O(logB N)
O ✓ logB N + K B ◆
O(logB N) O(logB N)
B
23 57 76 12 77 81 82 89 86
O(logB N)
90 95
02 05 06 25 29 43 59 64 75
Summary Point Query Insert Delete Range Query B-tree
O(logB N)
O ✓ logB N + K B ◆
O(logB N) O(logB N)
B
23 57 76 12 77 81 82 89 86
O(logB N)
90 95
02 05 06 25 29 43 59 64 75
Summary Point Query Insert Delete Range Query B-tree
O(logB N)
O ✓ logB N + K B ◆
O(logB N) O(logB N)
B
23 57 76 12 77 81 82 89 86
O(logB N)
90 95
(point query)
range
range
B
Summary Point Query Insert Delete Range Query B-tree O(logB N)
23 57 76 02 05 06 12 77 81 86 90 25 29 43 59 64 75
O(logB N)
O ✓ logB N + K B ◆
O(logB N) O(logB N)
(point query)
neighbor
that is being deleted as part of the merge)
02 05 06 25 29 43 59 64 75
Summary Point Query Insert Delete Range Query B-tree
O(logB N)
O ✓ logB N + K B ◆
O(logB N) O(logB N)
B
23 57 76 12 77 81 86 90 43
O(logB N)
02 05 06 25 29 43 59 64 75
Summary Point Query Insert Delete Range Query B-tree
O(logB N)
O ✓ logB N + K B ◆
O(logB N) O(logB N)
B
23 57 76 12 77 81 86 90 43
O(logB N)
02 05 06 25 29 43 59 64 75
Summary Point Query Insert Delete Range Query B-tree
O(logB N)
O ✓ logB N + K B ◆
O(logB N) O(logB N)
B
23 57 76 12 77 81 86 90 43
O(logB N)
02 05 06 25 29 59 64 75
Summary Point Query Insert Delete Range Query B-tree
O(logB N)
O ✓ logB N + K B ◆
O(logB N) O(logB N)
B
23 57 76 12 77 81 86 90
O(logB N)
02 05 06 25 29 59 64 75
Summary Point Query Insert Delete Range Query B-tree
O(logB N)
O ✓ logB N + K B ◆
O(logB N) O(logB N)
B
23 57 76 12 77 81 86 90
O(logB N)
02 05 06 25 29 59 64 75
Summary Point Query Insert Delete Range Query B-tree
O(logB N)
O ✓ logB N + K B ◆
O(logB N) O(logB N)
B
23 57 76 12 77 81 86 90
O(logB N)
memory applications
performance, but the idea is the same