IP Library Patent Application 12154292
Patent Application
App. No. 12/154,292

Method and system for building a B-tree

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 None
App. No.
12/154,292
Abstract

Various approaches for adding data items to a database are described. In one approach, a method includes receiving a plurality of data items; each data item is to be stored under a unique primary key in the database. In response to each received data item, one of a plurality of fragment builders is selected and the data item is provided as input to the selected fragment builder. The fragment builders operate in parallel to create respective pluralities of B-tree fragments from the input data items. The B-tree fragments are merged into a single B-tree of the database, which is then stored.

Claims (41)

1 . A method for adding data items to a database, comprising:

receiving a plurality of data items, wherein each data item is to be stored under a unique primary key in the database;

in response to each received data item, selecting one of a plurality of fragment builders and providing the received data item as input to the selected fragment builder;

building respective pluralities of B-tree fragments by the fragment builders from the input data items, wherein the fragment builders operate in parallel;

merging the pluralities of B-tree fragments into a single B-tree of the database, and storing the single B-tree.

2 . The method of claim 1 , wherein building a respective plurality of B-tree fragments includes each fragment builder performing the steps comprising:

building an individual B-tree fragment including two or more input data items;

outputting the individual B-tree fragment for merging; and

repeating the building and outputting for input data items provided to the fragment builder subsequent to the two or more input data items.

3 . The method of claim 1 , further comprising transmitting the pluralities of B-tree fragments from the fragment builders to a component for merging that performs the merging, wherein the fragment builders execute on one or more processors that are physically separate from one or more processors on which the component for merging executes.

4 . The method of claim 1 , further comprising:

transmitting a first subset of the pluralities of B-tree fragments from a first subset of the fragment builders to a first component for merging that merges the first subset of the pluralities of B-tree fragments into a first single B-tree; and

transmitting a second subset of the pluralities of B-tree fragments from a second subset of the fragment builders to a second component for merging that merges the second subset of the pluralities of B-tree fragments into a second single B-tree.

5 . The method of claim 4 , wherein the first subset of the fragment builders execute on one or more processors that are physically separate from one or more processors on which the first component for merging executes, and the second subset of the fragment builders execute on one or more processors that are physically separate from one or more processors on which the second component for merging executes.

6 . The method of claim 1 , wherein the selecting one of a plurality of fragment builders includes providing a selected number of successively received data items to one fragment builder before selecting a different fragment builder for data items received subsequent to the selected number of successively received data items.

7 . The method of claim 1 , wherein the selecting one of a plurality of fragment builders includes selecting a fragment builder based on a data value in each received data item.

8 . The method of claim 1 , wherein the selecting one of a plurality of fragment builders includes providing successively received data items to one fragment builder for a selected period of time before selecting a different fragment builder for data items received subsequent to the selected period of time.

9 . The method of claim 1 , wherein the pluralities of B-tree fragments include primary-key B-tree fragments and one or more secondary-key B-tree fragments.

10 . The method of claim 1 , wherein the pluralities of B-tree fragments include B-tree partitions.

11 . The method of claim 1 , wherein the pluralities of B-tree fragments include fragments of database partitions.

12 . A system for adding data items to a database, comprising:

a data processing system for receiving a plurality of data items, wherein each data item is to be stored under a unique primary key in the database;

means, responsive to each received data item, for selecting one of a plurality of fragment builders and providing the received data item as input to the selected fragment builder;

means for generating and storing respective pluralities of B-tree fragments by the fragment builders from the input data items, wherein the fragment builders operate in parallel;

means for merging the pluralities of B-tree fragments into a single B-tree of the database; and means for storing the single B-tree.

13 . A system for adding a plurality of data items to a single B-tree of a relational database, wherein each data item is to be stored under a unique primary key in the database comprising:

a first data processing system executing a first operating system and a router, wherein the router receives the plurality of data items, and for each received data item selects one of a plurality of fragment builders and transmits the data item to the selected fragment builder;

at least one second data processing system, each second data processing system coupled to the first data processing system and executing a respective second operating system and one or more of the fragment builders, wherein each of the one or more fragment builders creates B-tree fragments from data items transmitted from the router to that fragment builder and provides the B-tree fragments to a first component for merging; and

a third data processing system coupled to the at least one second data processing system and executing a third operating system and the first component for merging, wherein the first component for merging combines each B-tree fragment provided from a fragment builder into a first single B-tree of a first database.

14 . The system of claim 13 , wherein each B-tree fragment builder further performs the steps comprising:

building an individual B-tree fragment including two or more input data items;

providing the individual B-tree to the first component for merging; and

repeating the building and providing for input data items provided to the B-tree fragment builder subsequent to the two or more input data items.

15 . The system of claim 13 , further comprising:

a fourth data processing system coupled to the at least one second data processing system and executing a fourth operating system and a second component for merging, wherein the second component for merging combines each B-tree fragment provided from a fragment builder into a second single B-tree of a second database; and

wherein a first subset of the fragment builders provides a first subset of the pluralities of B-tree fragments to the first component for merging, and a second subset of the fragment builders provides a second subset of the pluralities of B-tree fragments to the second component for merging.

16 . The system of claim 13 , wherein the router, in selecting a fragment builder, provides a selected number of successively received data items to one fragment builder before selecting a different fragment builder for data items received subsequent to the selected number of successively received data items.

17 . The system of claim 13 , wherein the router, in selecting a fragment builder, selects a fragment builder based on a data value in each received data item.

18 . The system of claim 13 , wherein the router, in selecting a fragment builder, provides successively received data items to one fragment builder for a selected period of time before selecting a different fragment builder for data items received subsequent to the selected period of time.

19 . The system of claim 13 , wherein the B-tree fragments include primary-key B-tree fragments and one or more secondary-key B-tree fragments.

20 . The system of claim 13 , wherein the B-tree fragments include B-tree partitions.

Assignments (8)
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 →
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 →
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 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT SUPPLEMENT Recorded Feb 10, 2009
From: UNISYS CORPORATION
To: CITIBANK, N.A.
Reel/Frame 022237/0172 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 21, 2008
From: BRUSO, KELSEY L.; PLASEK, JAMES M.
To: UNISYS CORPORATION, CHARLES A. JOHNSON
Reel/Frame 021056/0142 →