IP Library Granted Patent US 7,921,130
Granted Patent B2
US 7,921,130 · App. 12/288,160 · Granted Apr 5, 2011

Optimized database appliance

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,921,130
App. No.
12/288,160
Granted
Apr 5, 2011
Kind
B2
Abstract

A system and method from processing database queries allows for cost and locale based distribution for execution of database queries. The database queries are executed on execution engines that provide flexible configuration and overlapping functionality. The system reduces various costs, including elapsed time, required to perform database queries. The method provides processing of a database query using a database catalog comprising database table locality information, record locality information and execution engine information. A query optimizer receives the query and accesses the catalog to create a query execution plan comprising locality-based database operations. A central database operation processor providing a first execution engine executes the query execution plan by performing at least a portion of the locality-based database operations and distributing at least a portion of the locality-based database operations as a subplan. A second database operation processor providing a second execution engine executes the subplan received from the central processor.

Claims (29)

1. A method for processing a query on a database, comprising:

receiving a query;

accessing a database catalog to develop a query execution plan by a first database, the database catalog including database table information, database operation processor component locale information, and database operation processor characteristic information, the query execution plan defining a list of database operations to carry out the query, the query execution plan also defining a respective database operation processor component locale for each such database operation;

executing portions of the query execution plan designated to be handled by the first database and forwarding at least a selected portion of the query execution plan to a second database operation processor component having different operation processing capabilities than the first database operation processor component; and

executing portions of the query execution plan designated for the second database and forwarding other selected portions of the query execution plan to a third database operation component for execution.

2. The method of claim 1 further comprising storing at least a portion of database tables and records in a storage unit.

3. The method of claim 1 wherein executing portions of the query execution plan designated to be handled by the first database is utilizing a symmetric multi-processing system.

4. The method of claim 1 wherein executing portions of the query execution plan designated for the second database is utilizing a massively parallel processing system.

5. The method of claim 1 wherein executing portions of the query execution plan designated to be handled by the first or second database includes processing data records received from a storage unit by performing one or more operations on the data records without materializing the data record into a memory.

6. The method of claim 1 wherein executing portions of the query execution plan designated to be handled by the first or second database includes processing data records received from a data communications network by performing one or more operations on the data records without materializing the data record into a memory.

7. The method of claim 1 wherein executing portions of the query execution plan designated to be handled by the first or second database includes dynamically reconfiguring an assigned execution subplan for redirecting one or more operations to the third execution engine, so that the query execution plan is re-optimized while still being executed.

8. The method of claim 1 wherein the first database operation processor component, the second database operation processor component, and the third database operation processor component have different processing capabilities selected from a group of processing capabilities consisting of execution engine memory, execution engine processor speed, cache configuration, disk speed, disk controller speed, disk controller bandwidth, network interface bandwidth or network interface speed.

9. The method of claim 1 wherein the first database operation processor component or the second database operation processor component reconfiguring an executing subplan.

10. The method of claim 1 wherein the first database operation processor component comprises a general purpose central processing unit.

11. The method of claim 1 wherein the second database operation processor component comprises an application specific integrated circuit.

12. The method of claim 1 wherein the third database operation processor component comprises a field programmable gate array.

13. The method of claim 1 further including tracking performance results from the query and reallocating the database tables and records to improve query execution.

14. The method of claim 13 wherein reallocating the database tables and records includes striping the database tables and records.

15. The method of claim 13 wherein reallocating the database tables and records includes replicating the database tables and records.

16. The method of claim 1 further including tracking performance results from the executing queries and modifying the query execution plan for improving performance.

17. The method of claim 1 further including tracking system configuration and resource utilization from the executing queries and modifying the query execution plan for improving system resource utilization.

18. A system to process a query on a database, comprising:

means for receiving a query;

means for accessing a database catalog to develop a query execution plan by a first database, the database catalog including database table information, database operation processor component locale information, and database operation processor characteristic information, the query execution plan defining a list of database operations to carry out the query, the query execution plan also defining a respective database operation processor component locale for each such database operation;

means for executing portions of the query execution plan designated to be handled by the first database and forwarding at least a selected portion of the query execution plan to a second database operation processor component having different operation processing capabilities than the first database operation processor component; and

means for executing portions of the query execution plan designated for the second database and forwarding other selected portions of the query execution plan to a third database operation component for execution.

19. The system of claim 18 further comprising means for storing at least a portion of database tables and records in a storage unit.

20. The system of claim 18 wherein means for executing portions of the query execution plan designated to be handled by the first database is utilizing a symmetric multi-processing system.

21. The system of claim 18 wherein means for executing portions of the query execution plan designated for the second database is utilizing a massively parallel processing system.

Assignments (8)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 26, 2021
From: SOFTWARE LABS CAMPUS UNLIMITED COMPANY
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 056396/0942 →
CORRECTIVE ASSIGNMENT TO CORRECT THE 4 ERRONEOUSLY LISTED PATENTS ON SCHEDULE A. PREVIOUSLY RECORDED AT REEL: 053452 FRAME: 0580. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT . Recorded Jan 29, 2021
From: IBM TECHNOLOGY CORPORATION
To: SOFTWARE LABS CAMPUS UNLIMITED COMPANY
Reel/Frame 055171/0693 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 11, 2020
From: IBM TECHNOLOGY CORPORATION
To: SOFTWARE LABS CAMPUS UNLIMITED COMPANY
Reel/Frame 053452/0580 →
NUNC PRO TUNC ASSIGNMENT Recorded Dec 17, 2018
From: IBM INTERNATIONAL C.V.
To: IBM ATLANTIC C.V.
Reel/Frame 047794/0927 →
NUNC PRO TUNC ASSIGNMENT Recorded Dec 17, 2018
From: IBM INTERNATIONAL GROUP B.V.
To: IBM INTERNATIONAL C.V.
Reel/Frame 047794/0779 →
NUNC PRO TUNC ASSIGNMENT Recorded Dec 17, 2018
From: IBM ATLANTIC C.V.
To: IBM TECHNOLOGY CORPORATION
Reel/Frame 047795/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 2, 2012
From: NETEZZA CORPORATION
To: IBM INTERNATIONAL GROUP B.V.
Reel/Frame 027642/0172 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2009
From: HINSHAW, FOSTER D.; METZGER, JOHN K.; ZANE, BARRY M.
To: NETEZZA CORPORATION
Reel/Frame 022119/0117 →