IP Library Granted Patent US 7,809,759
Granted Patent B1
US 7,809,759 · App. 11/901,354 · Granted Oct 5, 2010

Dynamic preconditioning of A B+tree

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 7,809,759
App. No.
11/901,354
Granted
Oct 5, 2010
Kind
B1
Abstract

Various approaches for processing a B+tree data structure of a database are disclosed. In one approach a method determines a pattern of multi-column key values. In response to an insert transaction into the database that requires a new index page and before performing the insert transaction, the method generates a plurality of new multi-column key values based on the pattern and stores one or more of the plurality of multi-column key values in one or more new index pages. Before performing the insert, the method further commits to retentive storage of the one or more new index pages and new data pages as linked to the B+tree. After committing the one or more new index pages and new data pages, the method then proceeds to processes and commits the insert transaction.

Claims (59)

1. A processor-implemented method for processing a B+tree data structure of a database, comprising:

determining a pattern of multi-column key values;

in response to an insert transaction into the database that requires a new index page and before performing the insert transaction, performing the steps including:

generating a plurality of new multi-column key values based on the pattern;

storing one or more of the plurality of multi-column key values in one or more new index pages;

linking each of the plurality of multi-column key values to a respective one of a plurality of new data pages, and linking the one or more new index pages and the new data pages to the B+tree data structure; and

committing to retentive storage the one or more new index pages and new data pages;

after committing the one or more new index pages and new data pages, performing the steps including:

storing data specified in the insert transaction to one of the new data pages; and

committing the one of the new data pages to retentive storage after storing the data in the one of the new data pages.

2. The method of claim 1 , wherein the determining the pattern of multi-column key values includes determining whether a left side of each multi-column key value is constant for a plurality of successive data records in the database, and responsive to the left side of each multi-column key value being constant for a plurality of successive data records in the database, the generating of the plurality of new multi-column key values includes using equal values for the left sides of the plurality of new multi-column key values.

3. The method of claim 2 , wherein the equal values for the left sides of the plurality of new multi-column key values are equal to the left sides of the multi-column key values of the successive data records in the database.

4. The method of claim 2 , wherein the equal values for the left sides of the plurality of new multi-column key values are equal to a value that succeeds the left side the multi-column key value of the last record in the database.

5. The method of claim 2 , wherein the pattern of multi-column key values is determined to have right sides of multi-column key values that change sequentially for a plurality of successive data records in the database, and the generating of the plurality of new multi-column key values includes generating right sides of the plurality of new multi-column key values, wherein the right sides of each successive pair of new multi-column key values covers a sequential range of right sides of the new multi-column key values.

6. The method of claim 2 , wherein the pattern of multi-column key values is determined to have right sides of multi-column key values that do not change sequentially for a plurality of successive data records in the database, and the generating of the plurality of new multi-column key values includes copying a plurality of right sides of multi-column key values from a plurality of successive index records that includes the last index record in the database to the right sides of the plurality of new multi-column key values.

7. The method of claim 1 , wherein the plurality of new multi-column key values is equal to a maximum number of index records that the new index page can store.

8. The method of claim 1 , wherein the B+tree has a plurality of levels of index pages and index pages at the first level reference data pages and index pages at a second level reference index pages at the first level, the method further comprising:

storing one of the plurality of new multi-column key values per each new index page at the first level; and

storing the plurality of new multi-column key values in one or more index pages at the second level.

9. The method of claim 1 , wherein the B+tree has a plurality of levels of index pages and index pages at the first level reference data pages and index pages at a second level reference index pages at the first level, the method further comprising:

storing a random number of the plurality of new multi-column key values per each new index page at the first level; and

storing the plurality of new multi-column key values in one or more index pages at the second level.

10. The method of claim 1 , wherein the B+tree has a plurality of levels of index pages and index pages at the first level reference data pages and index pages at a second level reference index pages at the first level, the method further comprising:

storing one of the plurality of new multi-column key values per each new index page at the first level;

storing the plurality of new multi-column key values in one or more index pages at the second level; and

wherein each new index page above index pages at the first level has empty space available for new index records.

11. A database management system, comprising:

a processor arrangement;

a memory coupled to the processor arrangement, the memory configured with instructions executable by the processor arrangement for processing a B+tree data structure for data records of a database;

a mass storage arrangement coupled to the memory for retentive storage of the B+tree data structure;

wherein the processor arrangement in executing the instructions, determines a pattern of multi-column key values from column data types and multi-column key values in the database, wherein the plurality of new multi-column key values is equal to a maximum number of index records that the new index page can store;

in response to an insert transaction into the database that requires a new index page and before performing the insert transaction, the processor:

obtains one or more new index pages;

generates a plurality of new multi-column key values based on the pattern;

stores the new multi-column key values in the new index pages;

obtains one or more new data pages;

stores in the one or more new index pages in association with each of the plurality of multi-column key values, references to respective ones of the one or more new data pages, and links the one or more new index pages in the B+tree data structure; and

commits to retentive storage the one or more new index pages and new data pages;

after committing the one or more new index pages and new data pages, the processor:

stores data specified in the insert transaction to one of the new data pages; and

commits the one of the new data pages to retentive storage after storing the data in the one of the new data pages.

12. A database management system, comprising:

a processor arrangement;

a memory coupled to the processor arrangement, the memory configured with instructions executable by the processor arrangement for processing a B+tree data structure for data records of a database;

a mass storage arrangement coupled to the memory for retentive storage of the B+tree data structure, wherein the B+tree has a plurality of levels of index pages and index pages at the first level reference data pages and index pages at a second level reference index pages at the first level;

a mass storage arrangement coupled to the memory for retentive storage of the B+tree data structure;

wherein the processor arrangement in executing the instructions, determines a pattern of multi-column key values from column data types and multi-column key values in the database;

in response to an insert transaction into the database that requires a new index page and before performing the insert transaction, the processor:

obtains one or more new index pages;

generates a plurality of new multi-column key values based on the pattern;

stores the new multi-column key values in the new index pages;

obtains one or more new data pages;

stores in the one or more new index pages in association with each of the plurality of multi-column key values, references to respective ones of the one or more new data pages, and links the one or more new index pages in the B+tree data structure;

stores a random number of the plurality of new multi-column key values per each new index page at the first level;

stores the plurality of new multi-column key values in one or more index pages at the second level; and

commits to retentive storage the one or more new index pages and new data pages;

after committing the one or more new index pages and new data pages, the processor:

stores data specified in the insert transaction to one of the new data pages; and

commits the one of the new data pages to retentive storage after storing the data in the one of the new data pages.

Assignments (12)
RELEASE OF SECURITY INTEREST Recorded Oct 28, 2020
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: UNISYS CORPORATION
Reel/Frame 054231/0496 →
RELEASE OF SECURITY INTEREST Recorded Nov 9, 2017
From: WELLS FARGO BANK, NATIONAL ASSOCIATION (SUCCESSOR TO GENERAL ELECTRIC CAPITAL CORPORATION)
To: UNISYS CORPORATION
Reel/Frame 044416/0358 →
SECURITY INTEREST Recorded Oct 6, 2017
From: UNISYS CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 044144/0081 →
PATENT SECURITY AGREEMENT Recorded Apr 27, 2017
From: UNISYS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL TRUSTEE
Reel/Frame 042354/0001 →
RELEASE OF SECURITY INTEREST Recorded Mar 26, 2013
From: DEUTSCHE BANK TRUST COMPANY AMERICAS, AS COLLATERAL TRUSTEE
To: UNISYS CORPORATION
Reel/Frame 030082/0545 →
RELEASE OF SECURITY INTEREST Recorded Mar 15, 2013
From: DEUTSCHE BANK TRUST COMPANY
To: UNISYS CORPORATION
Reel/Frame 030004/0619 →
SECURITY AGREEMENT Recorded Jun 27, 2011
From: UNISYS CORPORATION
To: GENERAL ELECTRIC CAPITAL CORPORATION, AS AGENT
Reel/Frame 026509/0001 →
SECURITY AGREEMENT Recorded Mar 1, 2011
From: UNISYS CORPORATION
To: DEUTSCH BANK NATIONAL TRUST COMPANY; GLOBAL TRANSACTION BANKING
Reel/Frame 025864/0519 →
RELEASE BY SECURED PARTY Recorded Sep 14, 2009
From: CITIBANK, N.A.
To: UNISYS CORPORATION; UNISYS HOLDING CORPORATION
Reel/Frame 023263/0631 →
RELEASE BY SECURED PARTY Recorded Jul 31, 2009
From: CITIBANK, N.A.
To: UNISYS CORPORATION; UNISYS HOLDING CORPORATION
Reel/Frame 023312/0044 →
SUPPLEMENT TO SECURITY AGREEMENT Recorded Mar 6, 2008
From: UNISYS CORPORATION
To: CITIBANK, N.A.
Reel/Frame 020612/0305 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 17, 2007
From: BRUSO, KELSEY L.; PLASEK, JAMES M.
To: UNISYS CORPORATION
Reel/Frame 019912/0532 →