IP Library Granted Patent US 8,055,651
Granted Patent B2
US 8,055,651 · App. 12/368,505 · Granted Nov 8, 2011

Distribution of join operations on a multi-node computer system

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,055,651
App. No.
12/368,505
Granted
Nov 8, 2011
Kind
B2
Abstract

A method and apparatus distributes database query joins on a multi-node computing system. In the illustrated examples, a join execution unit utilizes various factors to determine where to best perform the query join. The factors include user controls in a hints record set up by a system user and properties of the system such as database configuration and system resources. The user controls in the hints record include a location flag and a determinicity flag. The properties of the system include the free space on the node and the size join, the data traffic on the networks and the data traffic generated by the join, the time to execute the join and nodes that already have code optimization. The join execution unit also determines whether to use collector nodes to optimize the query join.

Claims (57)

1. A multi-node computer system comprising:

a plurality of compute nodes that each comprise a processor and memory and are connected by at least one computer network; and

a join execution unit that determines a location for a join operation to execute on the plurality of compute nodes based on user controls in a hints record associated with the database and properties of the database.

2. The multi-node computer system of claim 1 wherein the multi-node computer system is a massively parallel computer system.

3. The multi-node computer system of claim 1 wherein the properties of the database are selected from the following: memory available on the plurality of nodes and the size of the join operation, data traffic on the compute networks, traffic generated by the join operation; and an estimated time to execute the join operation.

4. The multi-node computer system of claim 1 wherein the join execution unit determines the location for the join operation based on one of the following user controls in the hints record:

a location flag set up by a user for the join operation;

a determinicity flag set up by the user for the join operation that signals to execute the join operation on a collector node; and

a collector node field to indicate user preferences for a collector node for executing the join operation.

5. The multi-node computer system of claim 4 further comprising user controls in the hints record stored in the form of a rule to determine the location for the join operation based on a property of the database, where the property of the database includes one of the following: memory available on the plurality of nodes, data traffic on the networks and an estimated time to execute the join operation.

6. The multi-node computer system of claim 4 wherein the collector node is not where the join operation originated.

7. The multi-node computer system of claim 1 wherein the plurality of compute nodes are arranged in a virtual tree network and further comprising an I/O node that connects to the top of the tree network to allow the compute nodes to communicate with a service node of a massively parallel computer system.

8. A computer implemented method for distributing a join operation in a multi-node computer system, the method comprising the steps of:

receiving a query join operation;

getting an estimated time to execute the query;

getting user controls and database properties;

choosing node(s) for the join operation;

where a collector node is to be used, setting up the collector node for processing;

starting query execution; and

while waiting for the query to execute, making node adjustments where needed.

9. The computer implemented method of claim 8 where the step of choosing nodes for the join operation further comprises the steps of:

reading a location flag that indicates where to execute the query;

reading a determinicity flag that indicates the associated data would be more efficiently processed on a collector node rather than a data node; and

reading a collector node field in the user controls that identifies user preferences for selection of the collector node.

10. The computer implemented method of claim 8 where the step of choosing nodes for the join operation further comprises the steps of:

determining memory available on a plurality of nodes and a size of the join operation;

determining data traffic on compute networks and data traffic generated by the join operation; and

determining an estimated time to execute the join operation.

11. The computer implemented method of claim 8 wherein the user controls further comprise rules to determines the location for the join operation based on a property of the database, where a property of the database includes one of the following: memory available on the plurality of nodes, data traffic on the compute networks and an estimated time to execute the join operation.

12. The computer implemented method of claim 8 wherein the plurality of compute nodes are arranged in a virtual tree network and further comprising an I/O node that connects to the top of the tree network to allow the compute nodes to communicate with a service node of a massively parallel computer system.

13. The computer implemented method of claim 12 wherein the virtual tree network is determined by a class routing table.

14. A computer implemented method for distributing a join operation in a multi-node computer system, the method comprising the steps of:

receiving a query join operation;

estimating time to execute the query;

getting user controls and database properties;

where a collector node is to be used, setting up collector nodes for processing;

choosing nodes for the join operation based on data from the following steps:

a) reading a location flag that indicates where to execute the query;

b) reading a determinicity flag that indicates the associated data would be more efficiently processed on a collector node rather than a data node;

c) reading a collector node field in the user controls indicating user preferences for the collector node for executing the join operation;

d) determining memory available on a plurality of nodes and a size of the join operation;

e) determining data traffic on compute networks and data traffic generated by the join operation;

f) determining an estimated time to execute the join operation;

starting query execution in the nodes chosen;

while waiting for the query to execute, making node adjustments where needed; and

wherein the user controls further comprise rules to determines the location for the join operation based on a property of the database, where a property of the database includes one of the following: memory available on the plurality of nodes, data traffic on the compute networks and an estimated time to execute the join operation.

15. A computer-readable article of manufacture comprising:

a join execution unit that determines a location for a join operation of a database to execute on a plurality of compute nodes based on user controls in a hints record associated with the database and properties of the database; and

tangible computer recordable media bearing the join execution unit.

16. The article of manufacture of claim 15 wherein the properties of the database are selected from the following: memory available on the plurality of nodes and the size of the join operation, data traffic on the compute networks, traffic generated by the join operation; an estimated time to execute the join operation and nodes with code optimizations.

17. The article of manufacture of claim 15 wherein the join execution unit on one of the following user controls in the hints record:

a location flag set up by a user for the join operation;

a determinicity flag set up by the user for the join operation that signals to execute the join operation on a collector node; and

a collector node field to indicate user preferences for a collector node for executing the join operation.

18. The article of manufacture of claim 17 wherein further comprising user controls in a hints record stored in the form of a rule to determines the location for the join operation based on a property of the database, where a property of the database includes one of the following: memory available on the plurality of nodes, data traffic on the compute networks and an estimated time to execute the join operation.

19. The article of manufacture of claim 18 wherein the plurality of compute nodes are arranged in a virtual tree network and further comprising an I/O node that connects to the top of the tree network to allow the compute nodes to communicate with a service node of a massively parallel computer system and wherein the virtual tree network is determined by a class routing table.

20. The article of manufacture of claim 15 wherein the collector node is not where the join operation originated.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 12, 2024
From: GINEGAR LLC
To: K.MIZRA LLC
Reel/Frame 067706/0540 →
CORRECTIVE ASSIGNMENT TO CORRECT THE THE NAME OF THE ASSIGNOR AND THE ADDRESS OF THE ASSIGNEE PREVIOUSLY RECORDED ON REEL 052874 FRAME 0293. ASSIGNOR(S) HEREBY CONFIRMS THE "WHEREAS, DAEDALUS GROUP LLC ("ASSIGNOR")...". Recorded Jun 24, 2020
From: DAEDALUS BLUE LLC
To: GINEGAR LLC
Reel/Frame 053644/0682 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 8, 2020
From: DAEDALUS GROUP LLC
To: GINEGAR LLC
Reel/Frame 052874/0293 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2020
From: DAEDALUS GROUP, LLC
To: DAEDALUS BLUE LLC
Reel/Frame 051737/0191 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: DAEDALUS GROUP, LLC
Reel/Frame 051710/0445 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: DAEDALUS GROUP LLC
Reel/Frame 051032/0784 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 10, 2009
From: BARSNESS, ERIC LAWRENCE; PETERS, AMANDA; SANTOSUOSSO, JOHN MATTHEW
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 022233/0813 →