SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Downloaden Sie, um offline zu lesen
Multi-Way B Tree
                   1
Multi-way Search Trees
 Properties
    Generalization of binary search tree
    Node contains 1…k keys (in sorted order)
    Node contains 2…k+1 children
    Keys in jth child < jth key < keys in (j+1)th child
 Examples




         5       12                       5 8 15 33


   2         8        17         1 3       7      9       19 21   44
                                                                   2
Types of Multi-way Search Trees
                                         5       12
 2-3 tree
    Internal nodes have 2 or 3
    children                         2       8        17
 Index search trie
                                             c
   Internal nodes have up to
   26 children (for strings)
 B-tree                              a       o        s
   T = minimum degree
   Non-root internal nodes       T-1 … 2T-1
   have T-1 to 2T-1 children
   All leaves have same depth
                                 1       2        …        2T
                                                           3
Multi-way Search Trees
  Search algorithm
 1.   Compare key x to 1…k keys in node
 2.   If x = some key then return node
 3.   Else if (x < key j) search child j
 4.   Else if (x > all keys) search child k+1
  Example                                25
      Search(17)
                       5       12                  30 40


                1 2        8        17        27    36     44
                                                                4
Multi-way Search Trees
  Insert algorithm
 1.   Search key x to find node n
 2.   If ( n not full ) insert x in n
 3.   Else if ( n is full )
      a)   Split n into two nodes
      b)   Move middle key from n to n’s parent
      c)   Insert x in n
      d)   Recursively split n’s parent(s) if necessary




                                                          5
Multi-way Search Trees
  Insert Example (for 2-3 tree)
      Insert( 4 )

       5       12              5       12


  2        8        17   2 4       8        17




                                                 6
Multi-way Search Trees
                                                   5
  Insert Example (for 2-3 tree)
      Insert( 1 )
       5       12                          2           12


124        8        17                 1       4       8    17


  Split node             2 5 12        Split parent


                    1    4   8    17                         7
B-Trees

          8
Motivation for B-Trees
 So far we have assumed that we can store
 an entire data structure in main memory
 What if we have so much data that it
 won’t fit?
 We will have to use disk storage but when
 this happens our time complexity fails
 The problem is that Big-Oh analysis
 assumes that all operations take roughly
 equal time
 This is not the case when disk access is
                                         9
 involved
Motivation (cont.)
 Assume that a disk spins at 3600 RPM
 In 1 minute it makes 3600 revolutions, hence
 one revolution occurs in 1/60 of a second, or
 16.7ms
 On average what we want is half way round this
 disk – it will take 8ms
 This sounds good until you realize that we get
 120 disk accesses a second – the same time as
 25 million instructions
 In other words, one disk access takes about the
 same time as 200,000 instructions
 It is worth executing lots of instructions to avoid 10
 a disk access
Motivation (cont.)
 Assume that we use an AVL tree to store all the
 car driver details in UK (about 20 million records)
 We still end up with a very deep tree with lots of
 different disk accesses; log2 20,000,000 is about
 24, so this takes about 0.2 seconds (if there is
 only one user of the program)
 We know we can’t improve on the log n for a
 binary tree
 But, the solution is to use more branches and
 thus less height!
 As branching increases, depth decreases
                                                   11
Definition of a B-tree
 A B-tree of order m is an m-way tree (i.e., a tree where
 each node may have up to m children) in which:
  1. the number of keys in each non-leaf node is one less
     than the number of its children and these keys partition
     the keys in the children in the fashion of a search tree
  2. all leaves are on the same level
  3. all non-leaf nodes except the root have at least m / 2
     children
  4. the root is either a leaf node, or it has from two to m
     children
  5. a leaf node contains no more than m – 1 keys
 The number m should always be odd


                                                            12
An example B-Tree
                                     26                                   A B-tree of order 5
                                                                          containing 26 items
          6    12




                                                                                 42     51    62
1   2     4            7    8              13    15   18        25




          27    29              45    46   48              53        55   60       64    70    90


Note that all the leaves are at the same level
                                                                                                   13
Constructing a B-tree
 Suppose we start with an empty B-tree and keys
 arrive in the following order:1 12 8 2 25 5 14
 28 17 7 52 16 48 68 3 26 29 53 55 45
 We want to construct a B-tree of order 5
 The first four items go into the root:

                 1   2   8   12

 To put the fifth item in the root would violate
 condition 5
 Therefore, when 25 arrives, pick the middle key
 to make a new root
                                                   14
Constructing a B-tree (contd.)

                                    8



                    1       2           12   25

 6, 14, 28 get added to the leaf nodes:

                                    8



                1       2       6       12   14   25   28



                                                            15
Constructing a B-tree (contd.)
Adding 17 to the right leaf node would over-fill it, so we take the
middle key, promote it (to the root) and split the leaf
                                8    17



               1       2   6        12     14   25   28

7, 52, 16, 48 get added to the leaf nodes
                                8    17



       1   2   6   7           12   14    16    25   28   48   52


                                                                    16
Constructing a B-tree (contd.)
Adding 68 causes us to split the right most leaf, promoting 48 to the
root, and adding 3 causes us to split the left most leaf, promoting 3
to the root; 26, 29, 53, 55 then go into the leaves
                      3    8    17   48




   1   2    6    7    12   14   16   25   26   28   29   52   53   55   68


Adding 45 causes a split of     25   26   28   29


and promoting 28 to the root then causes the root to split
                                                                             17
Constructing a B-tree (contd.)

                                17



             3   8                              28    48




1    2   6   7       12   14   16    25   26   29    45    52   53   55   68




                                                                           18
Inserting into a B-Tree
 Attempt to insert the new key into a leaf
 If this would result in that leaf becoming too big,
 split the leaf into two, promoting the middle key
 to the leaf’s parent
 If this would result in the parent becoming too
 big, split the parent into two, promoting the
 middle key
 This strategy might have to be repeated all the
 way to the top
 If necessary, the root is split in two and the
 middle key is promoted to a new root, making
 the tree one level higher
                                                       19
Exercise in Inserting a B-Tree
 Insert the following keys to a 5-way B-
 tree:
 3, 7, 9, 23, 45, 1, 5, 14, 25, 24, 13, 11, 8,
 19, 4, 31, 35, 56

 Check your approach with a neighbour
 and discuss any differences.



                                             20
Removal from a B-tree
 During insertion, the key always goes into a leaf.
 For deletion we wish to remove from a leaf.
 There are three possible ways we can do this:
 1 - If the key is already in a leaf node, and
 removing it doesn’t cause that leaf node to have
 too few keys, then simply remove the key to be
 deleted.
 2 - If the key is not in a leaf then it is guaranteed
 (by the nature of a B-tree) that its predecessor or
 successor will be in a leaf -- in this case can we
 delete the key and promote the predecessor or
 successor key to the non-leaf deleted key’s
 position.                                           21
Removal from a B-tree (2)
 If (1) or (2) lead to a leaf node containing less than the
 minimum number of keys then we have to look at the
 siblings immediately adjacent to the leaf in question:
     3: if one of them has more than the min’ number of
     keys then we can promote one of its keys to the parent
     and take the parent key into our lacking leaf
     4: if neither of them has more than the min’ number of
     keys then the lacking leaf and one of its neighbours can
     be combined with their shared parent (the opposite of
     promoting a key) and the new leaf will have the correct
     number of keys; if this step leave the parent with too
     few keys then we repeat the process up to the root
     itself, if required

                                                            22
Type #1: Simple leaf deletion

Assuming a 5-way
B-Tree, as before...         12 29 52



      2      7     9     15 22           31 43       56 69 72


     Delete 2: Since there are enough
      keys in the node, just delete it
                                            Note when printed: this slide is animated
                                                                                   23
Type #2: Simple non-leaf deletion

              12 29 52
                    56            Delete 52




     7   9   15 22   31 43        56 69 72

                          Borrow the predecessor
                         or (in this case) successor

                         Note when printed: this slide is animated
                                                                24
Type #4: Too few keys in node and
its siblings

              12 29 56

                     Join back together

     7   9   15 22    31 43          69 72
                                       Too few keys!
                                        Delete 72



                            Note when printed: this slide is animated
                                                                   25
Type #4: Too few keys in node and
its siblings

              12 29



     7   9   15 22    31 43 56 69




                         Note when printed: this slide is animated
                                                                26
Type #3: Enough siblings

              12 29
                           Demote root key and
                            promote leaf key

     7   9   15 22     31 43 56 69


               Delete 22


                           Note when printed: this slide is animated
                                                                  27
Type #3: Enough siblings

              12 31



     7   9   15 29    43 56 69




                      Note when printed: this slide is animated
                                                             28
Exercise in Removal from a B-Tree
 Given 5-way B-tree created by these data (last
 exercise):
 3, 7, 9, 23, 45, 1, 5, 14, 25, 24, 13, 11, 8, 19, 4,
 31, 35, 56

 Add these further keys: 2, 6,12

 Delete these keys: 4, 5, 7, 3, 14

 Again, check your approach with a neighbour and
 discuss any differences.
                                                    29
Analysis of B-Trees
 The maximum number of items in a B-tree of order m and
 height h:
  root           m–1
  level 1  m(m – 1)
  level 2  m2(m – 1)
  . . .
  level h  mh(m – 1)
 So, the total number of items is
             (1 + m + m2 + m3 + … + mh)(m – 1) =
             [(mh+1 – 1)/ (m – 1)] (m – 1) = mh+1 – 1
 When m = 5 and h = 2 this gives 53 – 1 = 124



                                                          30
Reasons for using B-Trees
 When searching tables held on disc, the cost of each disc
 transfer is high but doesn't depend much on the amount of
 data transferred, especially if consecutive items are
 transferred
     If we use a B-tree of order 101, say, we can transfer
     each node in one disc read operation
     A B-tree of order 101 and height 3 can hold 1014 – 1
     items (approximately 100 million) and any item can be
     accessed with 3 disc reads (assuming we hold the root
     in memory)
 If we take m = 3, we get a 2-3 tree, in which non-leaf
 nodes have two or three children (i.e., one or two keys)
     B-Trees are always balanced (since the leaves are all at
     the same level), so 2-3 trees make a good type of
     balanced tree                                            31
Comparing Trees
 Binary trees
    Can become unbalanced and lose their good time
    complexity (big O)
    Heaps remain balanced but only prioritise (not order)
    the keys

 Multi-way trees
   B-Trees can be m-way, they can have any (odd) number
   of children
   One B-Tree, the 2-3 (or 3-way) B-Tree, approximates a
   permanently balanced binary tree, exchanging the AVL
   tree’s balancing operations for insertion and (more
   complex) deletion operations
                                                            32

Weitere ähnliche Inhalte

Was ist angesagt?

Algebra factoring
Algebra factoringAlgebra factoring
Algebra factoringTrabahoLang
 
Tree Leetcode - Interview Questions - Easy Collections
Tree Leetcode - Interview Questions - Easy CollectionsTree Leetcode - Interview Questions - Easy Collections
Tree Leetcode - Interview Questions - Easy CollectionsSunil Yadav
 
7 3 Zero Product Property A
7 3 Zero Product Property A7 3 Zero Product Property A
7 3 Zero Product Property Ambetzel
 
Chapter 1 functions
Chapter 1  functionsChapter 1  functions
Chapter 1 functionsUmair Pearl
 
Operations on Polynomials
Operations on PolynomialsOperations on Polynomials
Operations on PolynomialsJeramy Donovan
 
Ch 5 book - systems of linear equations
Ch 5 book - systems of linear equationsCh 5 book - systems of linear equations
Ch 5 book - systems of linear equationsSeptiya Wulandari
 
Multiplying Polynomials I
Multiplying Polynomials IMultiplying Polynomials I
Multiplying Polynomials IIris
 
Topic 1 adding & subtracting polynomials
Topic 1   adding & subtracting polynomialsTopic 1   adding & subtracting polynomials
Topic 1 adding & subtracting polynomialsAnnie cox
 
7 4 Notes A
7 4 Notes A7 4 Notes A
7 4 Notes Ambetzel
 
Double digit multiplication turning point
Double digit multiplication turning pointDouble digit multiplication turning point
Double digit multiplication turning pointaggay
 
Synthetic Division
Synthetic DivisionSynthetic Division
Synthetic DivisionJimbo Lamb
 
Notes 12.1 multiplying polynomials
Notes 12.1   multiplying polynomialsNotes 12.1   multiplying polynomials
Notes 12.1 multiplying polynomialsLori Rapp
 
11 applications of factoring
11 applications of factoring11 applications of factoring
11 applications of factoringelem-alg-sample
 
Lesson 1.2 multiplication
Lesson 1.2 multiplicationLesson 1.2 multiplication
Lesson 1.2 multiplicationA V Prakasam
 
4-1 Multiplication Properties
4-1 Multiplication Properties4-1 Multiplication Properties
4-1 Multiplication PropertiesRudy Alfonso
 
How a CDCL SAT solver works
How a CDCL SAT solver worksHow a CDCL SAT solver works
How a CDCL SAT solver worksMasahiro Sakai
 
Determinants, Properties and IMT
Determinants, Properties and IMTDeterminants, Properties and IMT
Determinants, Properties and IMTPrasanth George
 

Was ist angesagt? (20)

binary_trees4
binary_trees4binary_trees4
binary_trees4
 
Algebra factoring
Algebra factoringAlgebra factoring
Algebra factoring
 
Tree Leetcode - Interview Questions - Easy Collections
Tree Leetcode - Interview Questions - Easy CollectionsTree Leetcode - Interview Questions - Easy Collections
Tree Leetcode - Interview Questions - Easy Collections
 
7 3 Zero Product Property A
7 3 Zero Product Property A7 3 Zero Product Property A
7 3 Zero Product Property A
 
Chapter 1 functions
Chapter 1  functionsChapter 1  functions
Chapter 1 functions
 
Operations on Polynomials
Operations on PolynomialsOperations on Polynomials
Operations on Polynomials
 
Ch 5 book - systems of linear equations
Ch 5 book - systems of linear equationsCh 5 book - systems of linear equations
Ch 5 book - systems of linear equations
 
factoring
factoringfactoring
factoring
 
Multiplying Polynomials I
Multiplying Polynomials IMultiplying Polynomials I
Multiplying Polynomials I
 
Topic 1 adding & subtracting polynomials
Topic 1   adding & subtracting polynomialsTopic 1   adding & subtracting polynomials
Topic 1 adding & subtracting polynomials
 
7 4 Notes A
7 4 Notes A7 4 Notes A
7 4 Notes A
 
Double digit multiplication turning point
Double digit multiplication turning pointDouble digit multiplication turning point
Double digit multiplication turning point
 
Synthetic Division
Synthetic DivisionSynthetic Division
Synthetic Division
 
Notes 12.1 multiplying polynomials
Notes 12.1   multiplying polynomialsNotes 12.1   multiplying polynomials
Notes 12.1 multiplying polynomials
 
11 applications of factoring
11 applications of factoring11 applications of factoring
11 applications of factoring
 
Lesson 1.2 multiplication
Lesson 1.2 multiplicationLesson 1.2 multiplication
Lesson 1.2 multiplication
 
4-1 Multiplication Properties
4-1 Multiplication Properties4-1 Multiplication Properties
4-1 Multiplication Properties
 
How a CDCL SAT solver works
How a CDCL SAT solver worksHow a CDCL SAT solver works
How a CDCL SAT solver works
 
Determinants, Properties and IMT
Determinants, Properties and IMTDeterminants, Properties and IMT
Determinants, Properties and IMT
 
1. functions
1. functions1. functions
1. functions
 

Andere mochten auch

Data structure tries
Data structure triesData structure tries
Data structure triesMd. Naim khan
 
R-Trees and Geospatial Data Structures
R-Trees and Geospatial Data StructuresR-Trees and Geospatial Data Structures
R-Trees and Geospatial Data StructuresAmrinder Arora
 
TRIES_data_structure
TRIES_data_structureTRIES_data_structure
TRIES_data_structureddewithaman10
 
Markov analysis
Markov analysisMarkov analysis
Markov analysisganith2k13
 
File Organization
File OrganizationFile Organization
File OrganizationManyi Man
 
File management
File managementFile management
File managementMohd Arif
 
Quad-Tree et Kd-Tree (par MARQUES Patricia et OLIVIER Aymeric)
Quad-Tree et Kd-Tree (par MARQUES Patricia et OLIVIER Aymeric)Quad-Tree et Kd-Tree (par MARQUES Patricia et OLIVIER Aymeric)
Quad-Tree et Kd-Tree (par MARQUES Patricia et OLIVIER Aymeric)rchbeir
 

Andere mochten auch (12)

Interactive High-Dimensional Visualization of Social Graphs
Interactive High-Dimensional Visualization of Social GraphsInteractive High-Dimensional Visualization of Social Graphs
Interactive High-Dimensional Visualization of Social Graphs
 
Geo webinarjune2015
Geo webinarjune2015Geo webinarjune2015
Geo webinarjune2015
 
Data structure tries
Data structure triesData structure tries
Data structure tries
 
R-Trees and Geospatial Data Structures
R-Trees and Geospatial Data StructuresR-Trees and Geospatial Data Structures
R-Trees and Geospatial Data Structures
 
B tree long
B tree longB tree long
B tree long
 
TRIES_data_structure
TRIES_data_structureTRIES_data_structure
TRIES_data_structure
 
B-tree & R-tree
B-tree & R-treeB-tree & R-tree
B-tree & R-tree
 
Multi ways trees
Multi ways treesMulti ways trees
Multi ways trees
 
Markov analysis
Markov analysisMarkov analysis
Markov analysis
 
File Organization
File OrganizationFile Organization
File Organization
 
File management
File managementFile management
File management
 
Quad-Tree et Kd-Tree (par MARQUES Patricia et OLIVIER Aymeric)
Quad-Tree et Kd-Tree (par MARQUES Patricia et OLIVIER Aymeric)Quad-Tree et Kd-Tree (par MARQUES Patricia et OLIVIER Aymeric)
Quad-Tree et Kd-Tree (par MARQUES Patricia et OLIVIER Aymeric)
 

Ähnlich wie Multi way&btree

B tree by-jash acharya
B tree by-jash acharyaB tree by-jash acharya
B tree by-jash acharyaJash Acharya
 
BTrees-fall2010.ppt
BTrees-fall2010.pptBTrees-fall2010.ppt
BTrees-fall2010.pptzalanmvb
 
16807097.ppt b tree are a good data structure
16807097.ppt b tree are a good data structure16807097.ppt b tree are a good data structure
16807097.ppt b tree are a good data structureSadiaSharmin40
 
Lecture 9 b tree
Lecture 9 b treeLecture 9 b tree
Lecture 9 b treeAbirami A
 
btrees.ppt ttttttttttttttttttttttttttttt
btrees.ppt  tttttttttttttttttttttttttttttbtrees.ppt  ttttttttttttttttttttttttttttt
btrees.ppt tttttttttttttttttttttttttttttRAtna29
 
btree.ppt ggggggggggggggggggggggggggggggg
btree.ppt gggggggggggggggggggggggggggggggbtree.ppt ggggggggggggggggggggggggggggggg
btree.ppt gggggggggggggggggggggggggggggggRAtna29
 
Data structures trees - B Tree & B+Tree.pptx
Data structures trees - B Tree & B+Tree.pptxData structures trees - B Tree & B+Tree.pptx
Data structures trees - B Tree & B+Tree.pptxMalligaarjunanN
 
Modern Database Systems - Lecture 02
Modern Database Systems - Lecture 02Modern Database Systems - Lecture 02
Modern Database Systems - Lecture 02Michael Mathioudakis
 
part4-trees.ppt
part4-trees.pptpart4-trees.ppt
part4-trees.pptSuneel61
 

Ähnlich wie Multi way&btree (20)

08 B Trees
08 B Trees08 B Trees
08 B Trees
 
Btrees
BtreesBtrees
Btrees
 
B tree by-jash acharya
B tree by-jash acharyaB tree by-jash acharya
B tree by-jash acharya
 
B trees2
B trees2B trees2
B trees2
 
BTrees-fall2010.ppt
BTrees-fall2010.pptBTrees-fall2010.ppt
BTrees-fall2010.ppt
 
16807097.ppt b tree are a good data structure
16807097.ppt b tree are a good data structure16807097.ppt b tree are a good data structure
16807097.ppt b tree are a good data structure
 
Lec13
Lec13Lec13
Lec13
 
B trees
B treesB trees
B trees
 
B tree short
B tree shortB tree short
B tree short
 
Lecture 9 b tree
Lecture 9 b treeLecture 9 b tree
Lecture 9 b tree
 
trees
trees trees
trees
 
302 B+Tree Ind Hash
302 B+Tree Ind Hash302 B+Tree Ind Hash
302 B+Tree Ind Hash
 
btrees.ppt ttttttttttttttttttttttttttttt
btrees.ppt  tttttttttttttttttttttttttttttbtrees.ppt  ttttttttttttttttttttttttttttt
btrees.ppt ttttttttttttttttttttttttttttt
 
B tree
B  treeB  tree
B tree
 
btree.ppt ggggggggggggggggggggggggggggggg
btree.ppt gggggggggggggggggggggggggggggggbtree.ppt ggggggggggggggggggggggggggggggg
btree.ppt ggggggggggggggggggggggggggggggg
 
Data structures trees - B Tree & B+Tree.pptx
Data structures trees - B Tree & B+Tree.pptxData structures trees - B Tree & B+Tree.pptx
Data structures trees - B Tree & B+Tree.pptx
 
Modern Database Systems - Lecture 02
Modern Database Systems - Lecture 02Modern Database Systems - Lecture 02
Modern Database Systems - Lecture 02
 
Tree traversal techniques
Tree traversal techniquesTree traversal techniques
Tree traversal techniques
 
part4-trees.ppt
part4-trees.pptpart4-trees.ppt
part4-trees.ppt
 
Binary Trees
Binary TreesBinary Trees
Binary Trees
 

Mehr von Ssankett Negi (10)

Binary tree
Binary treeBinary tree
Binary tree
 
Heapsort
HeapsortHeapsort
Heapsort
 
Binary trees
Binary treesBinary trees
Binary trees
 
Threaded binarytree&heapsort
Threaded binarytree&heapsortThreaded binarytree&heapsort
Threaded binarytree&heapsort
 
U3.stack queue
U3.stack queueU3.stack queue
U3.stack queue
 
Stack prgs
Stack prgsStack prgs
Stack prgs
 
Recursion
RecursionRecursion
Recursion
 
Qprgs
QprgsQprgs
Qprgs
 
Circular queues
Circular queuesCircular queues
Circular queues
 
U2.linked list
U2.linked listU2.linked list
U2.linked list
 

Kürzlich hochgeladen

Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)Samir Dash
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAnitaRaj43
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 

Kürzlich hochgeladen (20)

Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 

Multi way&btree

  • 2. Multi-way Search Trees Properties Generalization of binary search tree Node contains 1…k keys (in sorted order) Node contains 2…k+1 children Keys in jth child < jth key < keys in (j+1)th child Examples 5 12 5 8 15 33 2 8 17 1 3 7 9 19 21 44 2
  • 3. Types of Multi-way Search Trees 5 12 2-3 tree Internal nodes have 2 or 3 children 2 8 17 Index search trie c Internal nodes have up to 26 children (for strings) B-tree a o s T = minimum degree Non-root internal nodes T-1 … 2T-1 have T-1 to 2T-1 children All leaves have same depth 1 2 … 2T 3
  • 4. Multi-way Search Trees Search algorithm 1. Compare key x to 1…k keys in node 2. If x = some key then return node 3. Else if (x < key j) search child j 4. Else if (x > all keys) search child k+1 Example 25 Search(17) 5 12 30 40 1 2 8 17 27 36 44 4
  • 5. Multi-way Search Trees Insert algorithm 1. Search key x to find node n 2. If ( n not full ) insert x in n 3. Else if ( n is full ) a) Split n into two nodes b) Move middle key from n to n’s parent c) Insert x in n d) Recursively split n’s parent(s) if necessary 5
  • 6. Multi-way Search Trees Insert Example (for 2-3 tree) Insert( 4 ) 5 12 5 12 2 8 17 2 4 8 17 6
  • 7. Multi-way Search Trees 5 Insert Example (for 2-3 tree) Insert( 1 ) 5 12 2 12 124 8 17 1 4 8 17 Split node 2 5 12 Split parent 1 4 8 17 7
  • 9. Motivation for B-Trees So far we have assumed that we can store an entire data structure in main memory What if we have so much data that it won’t fit? We will have to use disk storage but when this happens our time complexity fails The problem is that Big-Oh analysis assumes that all operations take roughly equal time This is not the case when disk access is 9 involved
  • 10. Motivation (cont.) Assume that a disk spins at 3600 RPM In 1 minute it makes 3600 revolutions, hence one revolution occurs in 1/60 of a second, or 16.7ms On average what we want is half way round this disk – it will take 8ms This sounds good until you realize that we get 120 disk accesses a second – the same time as 25 million instructions In other words, one disk access takes about the same time as 200,000 instructions It is worth executing lots of instructions to avoid 10 a disk access
  • 11. Motivation (cont.) Assume that we use an AVL tree to store all the car driver details in UK (about 20 million records) We still end up with a very deep tree with lots of different disk accesses; log2 20,000,000 is about 24, so this takes about 0.2 seconds (if there is only one user of the program) We know we can’t improve on the log n for a binary tree But, the solution is to use more branches and thus less height! As branching increases, depth decreases 11
  • 12. Definition of a B-tree A B-tree of order m is an m-way tree (i.e., a tree where each node may have up to m children) in which: 1. the number of keys in each non-leaf node is one less than the number of its children and these keys partition the keys in the children in the fashion of a search tree 2. all leaves are on the same level 3. all non-leaf nodes except the root have at least m / 2 children 4. the root is either a leaf node, or it has from two to m children 5. a leaf node contains no more than m – 1 keys The number m should always be odd 12
  • 13. An example B-Tree 26 A B-tree of order 5 containing 26 items 6 12 42 51 62 1 2 4 7 8 13 15 18 25 27 29 45 46 48 53 55 60 64 70 90 Note that all the leaves are at the same level 13
  • 14. Constructing a B-tree Suppose we start with an empty B-tree and keys arrive in the following order:1 12 8 2 25 5 14 28 17 7 52 16 48 68 3 26 29 53 55 45 We want to construct a B-tree of order 5 The first four items go into the root: 1 2 8 12 To put the fifth item in the root would violate condition 5 Therefore, when 25 arrives, pick the middle key to make a new root 14
  • 15. Constructing a B-tree (contd.) 8 1 2 12 25 6, 14, 28 get added to the leaf nodes: 8 1 2 6 12 14 25 28 15
  • 16. Constructing a B-tree (contd.) Adding 17 to the right leaf node would over-fill it, so we take the middle key, promote it (to the root) and split the leaf 8 17 1 2 6 12 14 25 28 7, 52, 16, 48 get added to the leaf nodes 8 17 1 2 6 7 12 14 16 25 28 48 52 16
  • 17. Constructing a B-tree (contd.) Adding 68 causes us to split the right most leaf, promoting 48 to the root, and adding 3 causes us to split the left most leaf, promoting 3 to the root; 26, 29, 53, 55 then go into the leaves 3 8 17 48 1 2 6 7 12 14 16 25 26 28 29 52 53 55 68 Adding 45 causes a split of 25 26 28 29 and promoting 28 to the root then causes the root to split 17
  • 18. Constructing a B-tree (contd.) 17 3 8 28 48 1 2 6 7 12 14 16 25 26 29 45 52 53 55 68 18
  • 19. Inserting into a B-Tree Attempt to insert the new key into a leaf If this would result in that leaf becoming too big, split the leaf into two, promoting the middle key to the leaf’s parent If this would result in the parent becoming too big, split the parent into two, promoting the middle key This strategy might have to be repeated all the way to the top If necessary, the root is split in two and the middle key is promoted to a new root, making the tree one level higher 19
  • 20. Exercise in Inserting a B-Tree Insert the following keys to a 5-way B- tree: 3, 7, 9, 23, 45, 1, 5, 14, 25, 24, 13, 11, 8, 19, 4, 31, 35, 56 Check your approach with a neighbour and discuss any differences. 20
  • 21. Removal from a B-tree During insertion, the key always goes into a leaf. For deletion we wish to remove from a leaf. There are three possible ways we can do this: 1 - If the key is already in a leaf node, and removing it doesn’t cause that leaf node to have too few keys, then simply remove the key to be deleted. 2 - If the key is not in a leaf then it is guaranteed (by the nature of a B-tree) that its predecessor or successor will be in a leaf -- in this case can we delete the key and promote the predecessor or successor key to the non-leaf deleted key’s position. 21
  • 22. Removal from a B-tree (2) If (1) or (2) lead to a leaf node containing less than the minimum number of keys then we have to look at the siblings immediately adjacent to the leaf in question: 3: if one of them has more than the min’ number of keys then we can promote one of its keys to the parent and take the parent key into our lacking leaf 4: if neither of them has more than the min’ number of keys then the lacking leaf and one of its neighbours can be combined with their shared parent (the opposite of promoting a key) and the new leaf will have the correct number of keys; if this step leave the parent with too few keys then we repeat the process up to the root itself, if required 22
  • 23. Type #1: Simple leaf deletion Assuming a 5-way B-Tree, as before... 12 29 52 2 7 9 15 22 31 43 56 69 72 Delete 2: Since there are enough keys in the node, just delete it Note when printed: this slide is animated 23
  • 24. Type #2: Simple non-leaf deletion 12 29 52 56 Delete 52 7 9 15 22 31 43 56 69 72 Borrow the predecessor or (in this case) successor Note when printed: this slide is animated 24
  • 25. Type #4: Too few keys in node and its siblings 12 29 56 Join back together 7 9 15 22 31 43 69 72 Too few keys! Delete 72 Note when printed: this slide is animated 25
  • 26. Type #4: Too few keys in node and its siblings 12 29 7 9 15 22 31 43 56 69 Note when printed: this slide is animated 26
  • 27. Type #3: Enough siblings 12 29 Demote root key and promote leaf key 7 9 15 22 31 43 56 69 Delete 22 Note when printed: this slide is animated 27
  • 28. Type #3: Enough siblings 12 31 7 9 15 29 43 56 69 Note when printed: this slide is animated 28
  • 29. Exercise in Removal from a B-Tree Given 5-way B-tree created by these data (last exercise): 3, 7, 9, 23, 45, 1, 5, 14, 25, 24, 13, 11, 8, 19, 4, 31, 35, 56 Add these further keys: 2, 6,12 Delete these keys: 4, 5, 7, 3, 14 Again, check your approach with a neighbour and discuss any differences. 29
  • 30. Analysis of B-Trees The maximum number of items in a B-tree of order m and height h: root m–1 level 1 m(m – 1) level 2 m2(m – 1) . . . level h mh(m – 1) So, the total number of items is (1 + m + m2 + m3 + … + mh)(m – 1) = [(mh+1 – 1)/ (m – 1)] (m – 1) = mh+1 – 1 When m = 5 and h = 2 this gives 53 – 1 = 124 30
  • 31. Reasons for using B-Trees When searching tables held on disc, the cost of each disc transfer is high but doesn't depend much on the amount of data transferred, especially if consecutive items are transferred If we use a B-tree of order 101, say, we can transfer each node in one disc read operation A B-tree of order 101 and height 3 can hold 1014 – 1 items (approximately 100 million) and any item can be accessed with 3 disc reads (assuming we hold the root in memory) If we take m = 3, we get a 2-3 tree, in which non-leaf nodes have two or three children (i.e., one or two keys) B-Trees are always balanced (since the leaves are all at the same level), so 2-3 trees make a good type of balanced tree 31
  • 32. Comparing Trees Binary trees Can become unbalanced and lose their good time complexity (big O) Heaps remain balanced but only prioritise (not order) the keys Multi-way trees B-Trees can be m-way, they can have any (odd) number of children One B-Tree, the 2-3 (or 3-way) B-Tree, approximates a permanently balanced binary tree, exchanging the AVL tree’s balancing operations for insertion and (more complex) deletion operations 32