Looking for breakthrough ideas for innovation challenges? Try Patsnap Eureka!

Concurrency control for b-trees with node deletion

a node deletion and concurrency control technology, applied in the field of data storage methods and systems, can solve the problems of recursive split up the b-tree, violate this constraint, and return an unsuccessful search, and achieve high-concurrent data access

Inactive Publication Date: 2008-03-20
MICROSOFT TECH LICENSING LLC
View PDF10 Cites 26 Cited by
  • Summary
  • Abstract
  • Description
  • Claims
  • Application Information

AI Technical Summary

Benefits of technology

[0016] A Blink-tree data structure, method and system is presented which includes the advantages of B-tree data structures and conventional Blink-tree data structures, yet allows highly concurrent access of the data and deals robustly with node deletion.
[0017] In order to do this, the “delete state” is tracked for a Blink-tree data structure. This delete state is guaranteed to capture when a node among some set of nodes has been deleted. Thus, the absence of state indicating that any node among the set of nodes has been deleted ensures that some specific node in that set has not been deleted. Two delete states are tracked to deal separately with the two complications resulting from node deletes: (i) a parent to which an index term is scheduled to be posted may have been deleted; (ii) a new node for which an index term is scheduled to be posted may have been deleted. By tracking delete states, Blink-tree node split operations avoid tree re-traversals to find the parent node to be updated; and they avoid having to verify that a newly created node whose index term is scheduled to be posted still exists. Additionally, split operations are divided into two atomic operations, and the second atomic operation does not need to be completed for the tree to be used. The two atomic operations allow for high concurrency, and the tolerance for “lazy” scheduling of the second atomic operation (index term posting) is a simple solution which allows for easy implementation and coherence.

Problems solved by technology

When an additional node is being added below a parent node which already has the maximum number of nodes, the result would violate this constraint.
If a record was searched for with a key value of 112, the search would end in the same location, but because no record is found with that key value in the leaf node, the search would return an unsuccessful result.
It can be seen that node insertions may cause splits recursively up the B-tree.
This greatly impairs concurrent access to the tree.
The necessity for a number of locks or latches to prevent concurrent accesses to nodes being changed slows access to the information stored in the B-tree by limiting concurrent access.
If the latch is not maintained for the parent, the tree can become inconsistent.
However, there is a risk that several changes (node deletes, described below, and splits) will occur, and that when the parent node is changed to reflect the new child node, that that child node will no longer exist.
There is a risk that when the key value and pointer for the split is to be added to the remembered parent node, that parent node no longer exists because it may have been deleted.
Guarding against this requires a tree re-traversal which is resource intensive.
Thus, the prior art methods of B-link node splitting incur extra execution costs, which in turn limit concurrency and throughput, and increase the complexity of the implementation.

Method used

the structure of the environmentally friendly knitted fabric provided by the present invention; figure 2 Flow chart of the yarn wrapping machine for environmentally friendly knitted fabrics and storage devices; image 3 Is the parameter map of the yarn covering machine
View more

Image

Smart Image Click on the blue labels to locate them in the text.
Viewing Examples
Smart Image
  • Concurrency control for b-trees with node deletion
  • Concurrency control for b-trees with node deletion
  • Concurrency control for b-trees with node deletion

Examples

Experimental program
Comparison scheme
Effect test

Embodiment Construction

[0028] Overview

[0029] The first tracked delete state, the index delete state (DX) indicates whether it is safe to directly access a parent node (hence an index node, not a data node) without re-traversing the B-tree. DX contains this information for all nodes above the leaf level; and in one embodiment it is maintained outside of the tree since any index node may be deleted. DX(nodeA) can be consulted to determine that index nodeA may have been deleted, or that index nodeA cannot have been deleted. In one embodiment, DX (n) is a binary function over all index nodes n in the B-tree, with one possible value indicating that the node cannot have been deleted, and the other possible value indicating that the node may have been deleted. In another embodiment, DX is a counter which is incremented when an index node has been deleted, so that a change in DX indicates that a node delete has occurred, while no change means that no nodes have been deleted since the earlier inspection of DX

[00...

the structure of the environmentally friendly knitted fabric provided by the present invention; figure 2 Flow chart of the yarn wrapping machine for environmentally friendly knitted fabrics and storage devices; image 3 Is the parameter map of the yarn covering machine
Login to View More

PUM

No PUM Login to View More

Abstract

A data structure, added to a modified form of the Blink-tree data structure, tracks delete states for nodes. The index delete state (DX) indicates whether it is safe to directly access an index node without re-traversing the B-tree. The DX state is maintained globally, outside of the tree structure. The data delete state (DD) indicates whether it is safe to post an index term for a new leaf node. A DD state is maintained in each level 1 node for its leaf nodes. Delete states indicate whether a specific node has not been deleted, or whether it may have been deleted. Delete states are used to remove the necessity for atomic node splits and chains of latches for deletes, while not requiring retraversal. This property of not requiring a retraversal is exploited to simplify the tree modification operations.

Description

CROSS-REFERENCE TO RELATED APPLICATIONS [0001] This application is a Continuation of U.S. patent application Ser. No. 10 / 768,527, filed Jan. 30, 2004, entitled “Concurrency Control For B-Trees With Node Deletion,” which is incorporated herein by reference in its entirety.FIELD OF THE INVENTION [0002] This invention relates to methods and systems for data storage. More particularly, this invention relates to methods and systems for utilizing B-trees for storing data, maintaining a robust and simple data structure and allowing high concurrency of access. BACKGROUND OF THE INVENTION [0003] A B-tree is a tree structure which stores data, and allows operations to find, delete, insert, and browse the data. Each data record stored in a B-tree has an associated key. In order to be used for a B-tree, these keys must be orderable according to a predetermined function. For example, the keys may be numeric, in which case the ordering may be from least to greatest. As another example, the keys m...

Claims

the structure of the environmentally friendly knitted fabric provided by the present invention; figure 2 Flow chart of the yarn wrapping machine for environmentally friendly knitted fabrics and storage devices; image 3 Is the parameter map of the yarn covering machine
Login to View More

Application Information

Patent Timeline
no application Login to View More
Patent Type & Authority Applications(United States)
IPC IPC(8): G06F17/00
CPCG06F17/30327G06F17/30336Y10S707/99942Y10S707/99943G06F17/30348G06F16/2272G06F16/2308G06F16/2246
Inventor LOMET, DAVID B.
Owner MICROSOFT TECH LICENSING LLC
Who we serve
  • R&D Engineer
  • R&D Manager
  • IP Professional
Why Patsnap Eureka
  • Industry Leading Data Capabilities
  • Powerful AI technology
  • Patent DNA Extraction
Social media
Patsnap Eureka Blog
Learn More
PatSnap group products