IP Library Granted Patent US 7,941,451
Granted Patent B1
US 7,941,451 · App. 11/506,224 · Granted May 10, 2011

Dynamic preconditioning of a B+ tree

Assignee: Unisys 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 7,941,451
App. No.
11/506,224
Granted
May 10, 2011
Kind
B1
Abstract

Various approaches for processing a B+ tree data structure are described. In one approach, in a first transaction a first insert operation to a first data page of a first index page in the B+ tree data structure is detected, and then it is determined whether performing the first insert operation would block a second insert operation in a second transaction concurrent with the first transaction. At least one empty second data page is created in response to determining that the second insert operation would be blocked by the first insert operation. The B+ tree data structure is updated to include the at least one second data page in the B+ tree data structure, and the updated index pages and second data page are committed to retentive storage. Thereafter, the first insert can be completed.

Claims (37)

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

detecting in a first transaction a first insert operation to a first data page storing one data record, of a first index page in the B+ tree data structure, wherein the first insert operation references a right-most data page of the first index page, and the determining step includes determining whether a first set of conditions is present, the first set of conditions being that data records are added in key-sequential order to the database under the first index page and the first data page is the only data page referenced by the first index page, and in response to the first set of conditions being present:

determining whether performing the first insert operation would block a second insert operation in a second transaction concurrent with the first transaction;

creating at least one empty second data page storing one data record in response to determining that the second insert operation would be blocked by the first insert operation;

updating one or more index pages in the B+ tree data structure to include the at least one second data page in the B+ tree data structure;

committing the updated one or more index pages and at least one second data page to retentive storage;

writing data specified in the first transaction to the first data page after committing the one or more index pages;

committing the first data page to retentive storage after writing the data to the first data page;

creating as the at least one empty second data page a plurality of empty data pages;

updating the first index page with references to the plurality of empty data pages; and

committing the plurality of empty data pages and the updated first index page to retentive storage.

2. The method of claim 1 , wherein the determining step includes determining whether a second set of conditions is present, the second set of conditions being that data records are added in key-sequential order to the database, and the first data page is a last data page referenced by the first index page, and in response to the second set of conditions being present

creating as the at least one empty second data page a plurality of empty data pages;

creating a new second index page and a new third index page;

updating the second index page with references to the plurality of empty data pages;

updating the third index page with references to the first index page and the second index page; and

committing the plurality of empty data pages and the second and third index pages to retentive storage.

3. 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 whether performing a first insert operation in a first transaction to a first data page storing one data record, of a first index page would block a second insert operation in a second transaction concurrent with the first transaction, wherein the first insert operation references a right-most data page of the first index page, and the processor arrangement, in executing the instructions, determines whether a first set of conditions is present, the first set of conditions being that data records are added in key-sequential order to the database under the first index page and the first data page is the only data page referenced by the first index page, and in response to the first set of conditions being present the instructions cause the processor arrangement to:

generates at least one empty second data page storing one data record in response to determining that the second insert operation would be blocked by the first insert operation,

links one or more index pages in the B+ tree data structure to the at least one second data page in the B+ tree data structure,

commits the one or more index pages and at least one second data page to the mass storage arrangement,

writes data specified in the first transaction to a first data page after committing the one or more index pages,

commits the first data page to the mass storage arrangement after writing the data to the first data page;

allocates a plurality of empty data pages for the at least one empty second data page;

updates the first index page with references to the plurality of empty data pages;

commits the plurality of empty data pages and the updated first index page to retentive storage; and

writes the data specified in the first transaction to the first data page referenced by the first index page.

4. The system of claim 3 , wherein the processor arrangement, in executing the instructions, determines whether a second set of conditions is present, the second set of conditions being that data records are added in key sequential order to the database, and the first data page is a last data page referenced by the first index page, and in response to the second set of conditions being present, the instructions cause the processor arrangement to

allocate a plurality of empty data pages;

allocated a new second index page and a new third index page;

update the second index page with references to the plurality of empty data pages;

update the third index page with references to the first index page and the second index page; and

commit the plurality of empty data pages and the second and third index pages to the mass storage arrangement.

Assignments (13)
AMENDED AND RESTATED PATENT SECURITY AGREEMENT Recorded Jun 27, 2025
From: UNISYS CORPORATION; UNISYS HOLDING CORPORATION; UNISYS NPL, INC.; UNISYS AP INVESTMENT COMPANY I
To: COMPUTERSHARE TRUST COMPANY, N.A., AS COLLATERAL TRUSTEE
Reel/Frame 071759/0527 →
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 Aug 2, 2011
From: UNISYS CORPORATION
To: DEUTSCHE BANK NATIONAL TRUST COMPANY
Reel/Frame 026688/0081 →
SECURITY AGREEMENT Recorded Jun 27, 2011
From: UNISYS CORPORATION
To: GENERAL ELECTRIC CAPITAL CORPORATION, AS AGENT
Reel/Frame 026509/0001 →
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 →
SECURITY AGREEMENT SUPPLEMENT Recorded Apr 13, 2007
From: UNISYS CORPORATION
To: CITIBANK, N.A.
Reel/Frame 019188/0840 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 18, 2006
From: RITCHIE, ROGER V.; BRUSO, KELSEY L.; PLASEK, JAMES M.
To: UNISYS CORPORATION
Reel/Frame 018216/0146 →