Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
When removing keys from a leaf an underflow can occur. If left sibling and current node combined has more keys than what can fit in a single node a rebalance occurs. A rebalance move keys from left sibling to current node to even out the number of keys between them. This makes the keys more evenly distributed among the leaves. Because we change how the keys are split among the two nodes the keys splitting the ranges further up in the tree need to be replaced. This is communicated through StructurePropagation. A new version of left sibling and/or current node is created as necessary and this is also communicated up the tree trough StructurePropagation.
- Loading branch information
Showing
3 changed files
with
161 additions
and
12 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters