IP Library Granted Patent US 8,700,670
Granted Patent B2
US 8,700,670 · App. 12/758,483 · Granted Apr 15, 2014

Insert optimization for B+ tree data structure scalability

Inventors: Shilesh Marathe (Maharashtra, IN); Rajesh Chepuri (Maharashtra, IN); Niranjan Pendharkar (Maharashtra, IN)
Assignee: Symantec Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,700,670
App. No.
12/758,483
Granted
Apr 15, 2014
Kind
B2
Abstract

A method, in one embodiment, can include receiving a key and associated data via a computing device. Furthermore, the method can include searching a B+ tree data structure using the key to find a leaf node. The B+ tree data structure is stored by a persistent storage coupled to the computing device. The B+ tree data structure can include a first plurality of nodes that each contains a key-value entry that is not maintained in a sorted order based on its key. In addition, the key and associated data are appended to the leaf node. A sector that includes the leaf node and the key and associated data can be flushed to the persistent storage.

Claims (29)

1. A method comprising:

receiving a key and associated data via a computing device;

searching a B+ tree data structure using the key to find a target leaf node, wherein the B+ tree data structure is stored by a persistent storage coupled to the computing device, wherein the B+ tree data structure comprises a plurality of leaf nodes, wherein each leaf node of the plurality of leaf nodes is not maintained in a sorted order based on its key, and wherein each leaf node corresponds to a size of a sector of the persistent storage;

appending the key and associated data to the target leaf node in an atomic operation;

flushing the target leaf node to a target sector of the persistent storage in an atomic operation; and

flushing a first free space management structure associated with the B+ tree data structure to the persistent storage intermittently, wherein the first free space management structure indicates a first number of free blocks.

2. The method of claim 1 , further comprising:

detecting the sector size of the persistent storage; and

ensuring that each leaf node of the plurality of leaf nodes of the B+ tree data structure is not larger than the sector size of the persistent storage.

3. The method of claim 1 , wherein the flushing comprises reducing a second number of free blocks of a second free space management structure on the persistent storage, wherein the reduced second number of free blocks is not greater than the first number of free blocks.

4. A non-transitory computer readable storage medium having stored thereon, computer-executable instructions that when executed by a computing device cause the computing device to perform a method comprising:

receiving a key and associated data via the computing device;

searching a B+ tree data structure using the key to find a target leaf node, wherein the B+ tree data structure is stored by a persistent storage coupled to the computing device, wherein the B+ tree data structure comprises a plurality of leaf nodes, wherein each leaf node of the plurality leaf nodes is not maintained in a sorted order based on its key, and wherein each leaf node corresponds to a size of a sector of the persistent storage;

appending the key and associated data to the target leaf node in an atomic operation;

flushing the target leaf node to a target sector of the persistent storage in an atomic operation; and

flushing a first free space management structure associated with the B+ tree data structure to the persistent storage intermittently, wherein the first free space management structure indicates a first number of free blocks.

5. The non-transitory computer readable storage medium of claim 4 , wherein the B+ tree data structure further comprises a plurality of non-leaf nodes, wherein each non-leaf node of the plurality of non-leaf nodes is maintained in a sorted order based on its key.

6. The non-transitory computer readable storage medium of claim 4 , wherein the method performed by the computing device further comprises:

detecting the sector size of the persistent storage; and

ensuring that each leaf node of the plurality of leaf nodes of the B+ tree data structure is not larger than the sector size of the persistent storage.

7. The non-transitory computer readable storage medium of claim 4 , wherein the flushing comprises reducing a second number of free blocks of a second free space management structure on the persistent storage, wherein the reduced second number of free blocks is not greater than the first number of free blocks.

8. A computer system comprising:

a processor; and

computer readable storage media coupled to the processor and having stored therein instructions that, if executed by the computer system cause the computer system to execute a method comprising:

receiving a key and associated data via a computing device;

searching a B+ tree data structure using the key to find a target leaf node, wherein the B+ tree data structure is stored by a persistent storage coupled to the computing device, wherein the B+ tree data structure comprises a plurality of leaf nodes, wherein each leaf node of the plurality leaf nodes is not maintained in a sorted order based on its key, and wherein each leaf node corresponds to a size of a sector of the persistent storage;

appending the key and associated data to the target leaf node in an atomic operation;

flushing the target leaf node to a target sector of the persistent storage in an atomic operation; and

flushing a first free space management structure associated with the B+ tree data structure to the persistent storage intermittently, wherein the first free space management structure indicates a first number of free blocks.

Assignments (17)
CORRECTIVE ASSIGNMENT TO CORRECT THE CONVEYING PARTY DATA AND CORRECT THE PATENT NUMBERS PREVIOUSLY RECORDED AT REEL: 69548 FRAME: 468. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Feb 4, 2026
From: VERITAS TECHNOLOGIES LLC
To: ARCTERA US LLC
Reel/Frame 074876/0584 →
SECURITY INTEREST Recorded Dec 12, 2025
From: ARCTERA US LLC
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 073951/0470 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 069585/0150 Recorded Dec 1, 2025
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0848 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 070530/0497 Recorded Dec 1, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0730 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
PATENT SECURITY AGREEMENT Recorded Dec 10, 2024
From: ARCTERA US LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069585/0150 →
SECURITY INTEREST Recorded Dec 10, 2024
From: ARCTERA US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 069563/0243 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC
To: ARCTERA US LLC
Reel/Frame 069548/0468 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER AND CHANGE OF NAME Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC; VERITAS TECHNOLOGIES LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038455/0752 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037697/0412 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 12, 2010
From: MARATHE, SHAILESH; CHEPURI, RAJESH; PENDHARKAR, NIRANJAN
To: SYMANTEC CORPORATION
Reel/Frame 024219/0388 →
Continuity (1)
Related Publication 20110252067A1 · Oct 13, 2011