1 / 32

Lecture 39: ( a,b )- and B-Trees

CSC 213 – Large Scale Programming. Lecture 39: ( a,b )- and B-Trees. Announcements. CSC213 final exam has been scheduled: Tuesday, May 10 from 10:15 – 12:15 in OM200 Lab mastery exam also on the schedule Thursday, May 12 from 2:45 – 3:45 in OM119. Problems with Search Trees.

arella
Download Presentation

Lecture 39: ( a,b )- and B-Trees

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CSC 213 – Large Scale Programming Lecture 39:(a,b)- and B-Trees

  2. Announcements • CSC213 final exam has been scheduled:Tuesday, May 10 from 10:15 – 12:15 in OM200 • Lab mastery exam also on the scheduleThursday, May 12 from 2:45 – 3:45 in OM119

  3. Problems with Search Trees • Great at organizing information for searching • Processing is maintained at consistent O(log n) time • But sucks at locality (both spatial and temporal) • Each node contains only 1 piece of data • Jumps to child after using that piece of data • All of these references means nodes spaced randomly

  4. Big Search Trees • Excellent way to test roommatessystem

  5. Big Search Trees • Excellent way to test roommatessystem

  6. Big Search Trees • Excellent way to test roommatessystem

  7. (a,b) Trees to the Rescue! • Real solution to frequent hikes to Germany • Linux & MacOS to track files & directories • MySQL & other databases use this to hold all the data • Found in many other places where paging occurs • Simple rules define working of any (a,b) tree • Grows upward so that all leaves found at same level • At leasta children for each internal node • Every internal node has at mostb children

  8. What is “the BTree?” • Common multi-way tree implementation • Describe B-Tree using order (“BTree of order m”) • m/2 to m children per internal node • Root node can have m or fewer elements • Many variants existto improve some failing • Each variant is specialized for some niche use • Minor differences only between each variant • Describes the most basic B-Tree during lecture

  9. BTree Order • Select order minimizing paging when created • Elements & references to kids in full node fills page • Nodes have at least m/2 elements, even at their smallest • In memory guarantees each page is at least 50% full • How many pages touched by each operation?

  10. Removal from BTree • Swap element with successor in parent of a leaf • Process is similar to removal in (2,4) node • If under m/2 elementsin node after the removal • See if can move element from sibling to parent & steal element from parent • Else, merge with sibling & steal element from parent • But this might propagate underflow to parent node!

  11. Removal from BTree • Swap element with successor in parent of a leaf • Process is similar to removal in (2,4) node • If under m/2 elementsin node after the removal • See if can move element from sibling to parent & steal element from parent • Else, merge with sibling & steal element from parent • But this might propagate underflow to parent node! • Remind anyone else of another structure?

  12. (2,4) Tree Is An (a,b) Tree • Grows upward so all leaves found at same level • At leastachildrenfor each internal node • Every internal node has at mostbchildren

  13. Underflow and Fusion • Entrydeletion may cause underflow • Node less than ½ full after removing the Entry • Choice of solution depends on situation • Example: remove(15) 9 14 2 5 7 10 11 15

  14. Underflow and Fusion • Entrydeletion may cause underflow • Node less than ½ full after removing the Entry • Choice of solution depends on situation • Example: remove(15) 9 14 2 5 7 10 11 15

  15. Underflow and Fusion • Entrydeletion may cause underflow • Node less than ½ full after removing the Entry • Choice of solution depends on situation • Example: remove(15) 9 14 2 5 7 10 11 15

  16. Underflow and Fusion • Entrydeletion may cause underflow • Node less than ½ full after removing the Entry • Choice of solution depends on situation • Example: remove(15) 9 14 2 5 7 10 11

  17. Case 1: Transfer • Adjacent sibling Node has Entry to lend • Steal parent’s Entryclosest to underfilled node • Prevent loneliness & promote sibling’s Entry • No further processing needed in this case • Example: remove(15) 9 14 2 5 7 10 11

  18. Case 1: Transfer • Adjacent sibling Node has Entry to lend • Steal parent’s Entryclosest to underfilled node • Prevent loneliness & promote sibling’s Entry • No further processing needed in this case • Example: remove(15) 9 2 5 7 10 11 14

  19. Case 1: Transfer • Adjacent sibling Node has Entry to lend • Steal parent’s Entryclosest to underfilled node • Prevent loneliness & promote sibling’s Entry • No further processing needed in this case • Example: remove(15) 9 2 5 7 10 11 14

  20. Case 1: Transfer • Adjacent sibling Node has Entry to lend • Steal parent’s Entryclosest to underfilled node • Prevent loneliness & promote sibling’s Entry • No further processing needed in this case • Example: remove(15) 9 11 2 5 7 10 14

  21. Case 1: Transfer • Adjacent sibling Node has Entry to lend • Steal parent’s Entryclosest to underfilled node • Prevent loneliness & promote sibling’s Entry • No further processing needed in this case • Example: remove(15) 9 11 2 5 7 10 14

  22. Mom Case 2: Fusion • Emptied node has only ½ filled siblings • Merge node & sibling into single nearly filled node • Look to parent & steal Entrybetween siblings • May propagate underflow to parent! • Example: remove(14) 9 11 2 5 7 10 14

  23. Mom Case 2: Fusion • Emptied node has only ½ filled siblings • Merge node & sibling into single nearly filled node • Look to parent & steal Entrybetween siblings • May propagate underflow to parent! • Example: remove(14) 9 11 2 5 7 10

  24. Mom Case 2: Fusion • Emptied node has only ½ filled siblings • Merge node & sibling into single nearly filled node • Look to parent & steal Entry between siblings • May propagate underflow to parent! • Example: remove(14) 9 11 2 5 7 10

  25. Mom Case 2: Fusion • Emptied node has only ½ filled siblings • Merge node & sibling into single nearly filled node • Look to parent & steal Entry between siblings • May propagate underflow to parent! • Example: remove(14) 9 2 5 7 10 11

  26. Mom Case 2: Fusion • Emptied node has only ½ filled siblings • Merge node & sibling into single nearly filled node • Look to parent & steal Entry between siblings • May propagate underflow to parent! • Example: remove(14) 9 2 5 7 10 11

  27. Mom Case 2: Fusion • Emptied node has only ½ filled siblings • Merge node & sibling into single nearly filled node • Look to parent & steal Entry between siblings • May propagate underflow to parent! • Example: remove(14) 9 2 5 7 10 11

  28. In Case Of Overflow… • If addition overfills node, split into 2 new nodes • ½ of the Entrys (& children) for the new nodes • Splitting now makes sure nodes at least ½ full! 15 24 12 18 27 30 32 35

  29. In Case Of Overflow… • If addition overfills node, split into 2 new nodes • ½ of the Entrys (& children) for the new nodes • Splitting now makes sure nodes at least ½ full! 15 24 12 18 27 30 32 35 12 18 27 30 35

  30. In Case Of Overflow… • If addition overfills node, split into 2 new nodes • ½ of the Entrys (& children) for the new nodes • Splitting now makes sure nodes at least ½ full! 15 24 32 15 24 12 18 27 30 32 35 12 18 27 30 35

  31. In Case Of Overflow… • If addition overfills node, split into 2 new nodes • ½ of the Entrys (& children) for the new nodes • Splitting now makes sure nodes at least ½ full! • Check parent for overflow, since added 1 Entry 15 24 32 15 24 12 18 27 30 32 35 12 18 27 30 35

  32. For Next Lecture • Remember, must submit program #3 on Friday • Should start today and work through the week • 2nd best debugging technique? Taking a (short) break! • Weekly activity due tomorrow • Come and ask me any questions you may have! • Final problem day in class on Wednesday • At end of lab time Friday, lab phase #4 due

More Related