DS286 | 2016-09-28,30 L15,16: Binary Tree Construction ...

43
Indian Institute of Science Bangalore, India भारतीय विान संथान बंगलौर, भारत Department of Computational and Data Sciences ©Department of Computational and Data Science, IISc, 2016 This work is licensed under a Creative Commons Attribution 4.0 International License Copyright for external content used with attribution is retained by their original authors CDS Department of Computational and Data Sciences DS286 | 2016-10-21 L19: B Trees Yogesh Simmhan [email protected] Slides courtesy: www.cs.nott.ac.uk/~ psznza/G52ADS/btrees2.pdf http:// www.cs.carleton.edu/faculty/jgoldfea/cs201/spring11/inclass/Tree/BTreefinalNew.pdf

Transcript of DS286 | 2016-09-28,30 L15,16: Binary Tree Construction ...

Indian Institute of ScienceBangalore, India

भारतीय विज्ञान संस्थान

बंगलौर, भारत

Department of Computational and Data Sciences

©Department of Computational and Data Science, IISc, 2016This work is licensed under a Creative Commons Attribution 4.0 International LicenseCopyright for external content used with attribution is retained by their original authors

CDSDepartment of Computational and Data Sciences

DS286 | 2016-10-21

L19: B Trees

Yogesh Simmhans immhan@cds . i i sc . ac . in

Slides courtesy:www.cs.nott.ac.uk/~psznza/G52ADS/btrees2.pdfhttp://www.cs.carleton.edu/faculty/jgoldfea/cs201/spring11/inclass/Tree/BTreefinalNew.pdf

CDS.IISc.ac.in | Department of Computational and Data Sciences

Searching External Storage

Main memory (RAM) is fast, but has limited capacity

Different considerations for in-memory vs. on-disk data structures for search

Problem: Database too big to fit memory ‣ Disk reads are slow

Example: 1,000,000 records on disk

Binary search might take 20 disk reads‣ log2(1M) ~= 20

21-Oct-16 2

CDS.IISc.ac.in | Department of Computational and Data Sciences

Searching External Storage But disks are accessed “block

at a time” by OS

Blocks are typically 1KiB–4KiB in size‣ Can span multiple “sectors” on

HDD‣ Access time per block ‣ ~12ms for HDD‣ <1ms for SSD

Say 1KiB block, 100B per record‣ 10,000 blocks for 1M records

21-Oct-16 3

https://en.wikipedia.org/wiki/Disk_sector

CDS.IISc.ac.in | Department of Computational and Data Sciences

Storing & Searching on External Storage

21-Oct-16 4

CDS.IISc.ac.in | Department of Computational and Data Sciences

Storing & Searching on External Storage

21-Oct-16 5

CDS.IISc.ac.in | Department of Computational and Data Sciences

Storing & Searching on External Storage

21-Oct-16 6

CDS.IISc.ac.in | Department of Computational and Data Sciences

Storing & Searching on External Storage

21-Oct-16 7

CDS.IISc.ac.in | Department of Computational and Data Sciences

Storing & Searching on External Storage

21-Oct-16 8

CDS.IISc.ac.in | Department of Computational and Data Sciences

B-Trees Data structures for external memory, not main memory

‣ Goal is to reduce number of block accesses, not number of comparisons

B-Trees‣ Proposed by R. Bayer and E. M. McCreigh in 1972.

‣ “Bayer”, “Balanced”, Bushy”, “Boeing” trees?

‣ Different from binary trees

NOTE: ‣ In-memory data structure will be better than on-disk

‣ milliseconds vs. nano seconds

‣ So in-memory binary tree will be better than on-disk B Tree

‣ But on-disk B Tree better than on-disk binary tree

21-Oct-16 9

CDS.IISc.ac.in | Department of Computational and Data Sciences

B-Trees

Definition: A B-Tree of order m is an m-way tree with‣ All leaf nodes are at the same level.

‣ All non-leaf nodes (except the root) have at most m and at least m/2 children.

‣ The number of keys is one less than the number of children for non-leaf nodes and at most m-1 and at least m/2 for leaf nodes.

‣ The root may have as few as 2 children unless the tree is the root alone.

21-Oct-16 10

CDS.IISc.ac.in | Department of Computational and Data Sciences

B Tree of order 5

A B- Tree of order 5 is an 5-way tree such that ‣ All leaf nodes are at the same level.

‣ All non-‐leaf nodes (except the root) have at most 5 and at least 2 children

‣ The number of keys is one less than the number of children for non-leaf nodes and at most 4 and at least 2 for leaf nodes

‣ The root may have as few as 2 children unless the tree is the root alone.

21-Oct-16 11

CreaTng  a  B-­‐tree  of  order  5  

                   A  G  F  B  K  D  H  M  J  E  S  I  R  X  C  L  N  T  U  P  

CreaTng  a  B-­‐tree  of  order  5  

                   A  G  F  B  K  D  H  M  J  E  S  I  R  X  C  L  N  T  U  P  

A                  B                    F                  G  

CreaTng  a  B-­‐tree  of  order  5  

                   A  G  F  B  K  D  H  M  J  E  S  I  R  X  C  L  N  T  U  P  

A                  B                    F                  G              K  

CreaTng  a  B-­‐tree  of  order  5  

                   A  G  F  B  K  D  H  M  J  E  S  I  R  X  C  L  N  T  U  P  

F                    

A                  B                                                                          G                  K  

CreaTng  a  B-­‐tree  of  order  5  

                   A  G  F  B  K  D  H  M  J  E  S  I  R  X  C  L  N  T  U  P  

F                    

A                  B                  D                                                    G                  H                  K                  M  

CreaTng  a  B-­‐tree  of  order  5  

                   A  G  F  B  K  D  H  M  J  E  S  I  R  X  C  L  N  T  U  P  

F                    

A                  B                  D                                                    G                  H                  J                    K                  M  

CreaTng  a  B-­‐tree  of  order  5  

                   A  G  F  B  K  D  H  M  J  E  S  I  R  X  C  L  N  T  U  P  

F                J                    

A                  B                  D                                                    G                  H                                        K                  M  

CreaTng  a  B-­‐tree  of  order  5  

                   A  G  F  B  K  D  H  M  J  E  S  I  R  X  C  L  N  T  U  P  

F                J                    

A                  B                      D                    E                            G                  H                  I                                            K                    M                R                  S  

CreaTng  a  B-­‐tree  of  order  5  

                   A  G  F  B  K  D  H  M  J  E  S  I  R  X  C  L  N  T  U  P  

F                J                    

A                  B                      D                    E                            G                  H                    I                                          K                  M                  R                  S                    X  

CreaTng  a  B-­‐tree  of  order  5  

                   A  G  F  B  K  D  H  M  J  E  S  I  R  X  C  L  N  T  U  P  

F                  J                  R                    

A                  B                      D                    E                            G                  H                    I                                          K                  M                                S                    X  

CreaTng  a  B-­‐tree  of  order  5  

                   A  G  F  B  K  D  H  M  J  E  S  I  R  X  C  L  N  T  U  P  

F                  J                  R                    

A                  B                    C                D                    E                            G                  H                    I                                          K                  M                                S                    X  

CreaTng  a  B-­‐tree  of  order  5  

                   A  G  F  B  K  D  H  M  J  E  S  I  R  X  C  L  N  T  U  P  

C                F                  J                  R                    

A                  B                                          D                    E                            G                  H                    I                                          K                  M                                S                    X  

CreaTng  a  B-­‐tree  of  order  5  

                   A  G  F  B  K  D  H  M  J  E  S  I  R  X  C  L  N  T  U  P  

C                F                  J                  R                    

   A        B                              D          E                        G          H        I                        K          L        M        N                                S            T          U          X  

CreaTng  a  B-­‐tree  of  order  5  

                   A  G  F  B  K  D  H  M  J  E  S  I  R  X  C  L  N  T  U  P  

C                F                  J                  R                    

   A        B                              D          E                        G          H        I                        K          L        M        N        P                      S            T          U          X  

CreaTng  a  B-­‐tree  of  order  5  

                   A  G  F  B  K  D  H  M  J  E  S  I  R  X  C  L  N  T  U  P  

C                F                  J                  M                R                    

   A        B                              D          E                        G          H        I                        K          L                        N        P                      S            T          U          X  

CreaTng  a  B-­‐tree  of  order  5  

                   A  G  F  B  K  D  H  M  J  E  S  I  R  X  C  L  N  T  U  P  

C                F                                      M                R                    

   A        B                              D          E                        G          H        I                        K          L                        N        P                      S            T          U          X  

J  

DeleTng  Nodes  

•  Delete  E  from  leaf  node  

C                F                                      M                R                    

J  

   A        B                              D          E                        G          H        I                        K          L                        N        P                      S            T          U          X  

DeleTng  Nodes  

•  Delete  E  

C                F                                      M                R                    

J  

   A        B                              D                                    G          H        I                        K          L                        N        P                      S            T          U          X  

DeleTng  Nodes  

•  Borrow  from  a  neighbor  

C                G                                      M                R                    

J  

   A        B                              D            F                                    H        I                        K          L                        N        P                      S            T          U          X  

DeleTng  Nodes  

•  Delete  F    -­‐-­‐-­‐    but  can’t  borrow  from  a  neighbor  

C                G                                      M                R                    

J  

   A        B                              D                                                  H        I                        K          L                        N        P                      S            T          U          X  

DeleTng  Nodes  

Combine  and  push  the  problem  up  one  level  

C                                                        M                R                    

J  

   A        B                              D            G      H        I                                                      K          L                        N        P                      S            T          U          X  

DeleTng  Nodes  

Can’t  borrow  so  combine  

C                    J                  M                R                    

   A        B                              D            G      H        I                                                      K          L                        N        P                      S            T          U          X  

DeleTng  Nodes  

Delete  M  from  non-­‐leaf  node  Note:  immediate  predecessor  in  non-­‐leaf  

Is  always  in  a  leaf.  

C                    J                  M                R                    

   A        B                              D            G      H        I                                                      K          L                        N        P                      S            T          U          X  

DeleTng  Nodes  

Delete  M  from  non-­‐leaf  node  

Overwrite  M  with  immediate  predecessor  

C                    J                  L                R                    

   A        B                              D            G      H        I                                                                  K                        N        P                      S            T          U          X  

DeleTng  Nodes  

Borrow  from  a  neighbor  

C                    I                  L                R                    

   A        B                              D            G      H                                                              J          K                        N        P                      S            T          U          X  

CDS.IISc.ac.in | Department of Computational and Data Sciences

Practical considerations

• Since each node correspond to a block/page, theirsize is usually a power of 2.

• The number of records in a node is therefore usually even.

• The number of children (the order of the tree) is therefore usually odd.

B -trees

CDS.IISc.ac.in | Department of Computational and Data Sciences

Efficiency of B-trees

If a B-tree has order d, then each node (apart from the root) has at least d/2 children. So the depth of the tree is at most log d/2 (size)+1. In the worst case have to make d-1 comparisons in each node (linear search, but d-1 is a constant factor).

Fewer disk accesses than for a binary tree.

Each node could correspond to one block of data (plus addresses of successor nodes).

B -trees

CDS.IISc.ac.in | Department of Computational and Data Sciences

Variant of B-trees

Only leaves contain data

Non-leaves contain only keys and block numbers

Access speed is higher because each block can hold more block numbers.

Programming is more complicated because there are two kinds of nodes: leaves and non-leaves.

B -trees

CDS.IISc.ac.in | Department of Computational and Data Sciences

Indexing

Index: list of key/block pairs.

If small enough, could be kept in the main memory.

If the index is too large to be loaded in the main memory, it is often kept in a B-tree.

Multiple index files: if different kinds of search have to be performed, can keep one index for every set of keys.

B -trees

CDS.IISc.ac.in | Department of Computational and Data Sciences

21-Oct-16 16http://use-the-index-luke.com/sql/anatomy/the-tree

CDS.IISc.ac.in | Department of Computational and Data Sciences

Tasks Self study‣ Read: B Trees (online sources)

Finish Assignment 4 by Wed Oct 26 (75 points)

Make progress on CodeChef (100 points)

21-Oct-16 17

©Department of Computational and Data Science, IISc, 2016This work is licensed under a Creative Commons Attribution 4.0 International LicenseCopyright for external content used with attribution is retained by their original authors

CDS.IISc.ac.in | Department of Computational and Data Sciences

Department of Computational and Data Sciences

Questions?

21-Oct-16 18