IP Library › Granted Patent US 11,354,311
Granted Patent B2
US 11,354,311 · App. 16/553,314 · Granted Jun 7, 2022

Database-agnostic parallel reads

Inventor: Paul Stanley (Delray Beach, FL)
Assignee: International Business Machines Corporation
G06F16/24542G06F16/24568
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 11,354,311
App. No.
16/553,314
Granted
Jun 7, 2022
Kind
B2
Abstract

A query into a database is processed by receiving an instruction to partition data in the database into respective data partitions for the query. In response to the instruction, a query execution plan is generated that specifies the data from the database for the respective data partitions according to at least one data characteristic. The query execution plan is executed to compel reading the data of the data partitions from the database in respective data streams independently one from another.

Claims (28)

1. A method of processing a query into a database, the method comprising:

receiving an instruction in each of a plurality of structured query language statements of the query to partition data in the database into a plurality of data partitions for the query, wherein each of the plurality of structured query language statements includes search criteria and the instruction in each of the plurality of structured query language statements specifies a total number of data partitions for the plurality of data partitions for the query and a particular data partition of the total number of data partitions to apply the search criteria of that structured query language statement, and wherein the query includes a structured query language statement for each of the plurality of data partitions;

generating, in response to the instruction in the plurality of structured query language statements, a partitioning plan for the query to partition the data in the database into the total number of data partitions according to a plurality of data characteristics and a query execution plan that specifies the data from the database for each of the plurality of data partitions, wherein the plurality of data characteristics includes in-place physical partitioning of a database table, row-IDs, distribution of values within one or more database table columns, and minimum and maximum values of at least one database table column; and

executing the query execution plan to compel reading the data of the data partitions from the database in respective parallel data streams independently one from another and process the structured query language statements in respective parallel query processing pipelines to apply the search criteria of each structured query language statement in a respective parallel query processing pipeline against a data stream of the particular data partition specified in the instruction of that structured query language statement.

2. The method of claim 1 , wherein generating the query execution plan comprises:

selecting a data characteristic from optimizing criteria that partitions the data over the total number of data partitions.

3. The method of claim 1 , further comprising:

selecting a database connectivity driver for the database; and

issuing the instruction in the plurality of structured query language statements to partition data in the database through the selected database connectivity driver.

4. A system for processing a query into a database, the system comprising:

at least one hardware processor communicatively coupled to the database, the at least one hardware processor configured to:

receive an instruction in each of a plurality of structured query language statements of the query to partition data in the database into a plurality of data partitions for the query, wherein each of the plurality of structured query language statements includes search criteria and the instruction in each of the plurality of structured query language statements specifies a total number of data partitions for the plurality of data partitions for the query and a particular data partition of the total number of data partitions to apply the search criteria of that structured query language statement, and wherein the query includes a structured query language statement for each of the plurality of data partitions;

generate, in response to the instruction in the plurality of structured query language statements, a partitioning plan for the query to partition the data in the database into the total number of data partitions according to a plurality of data characteristics and a query execution plan that specifies the data from the database for each of the plurality of data partitions, wherein the plurality of data characteristics includes in-place physical partitioning of a database table, row-IDs, distribution of values within one or more database table columns, and minimum and maximum values of at least one database table column; and

execute the query execution plan to compel reading the data of the data partitions from the database in respective parallel data streams independently one from another and process the structured query language statements in respective parallel query processing pipelines to apply the search criteria of each structured query language statement in a respective parallel query processing pipeline against a data stream of the particular data partition specified in the instruction of that structured query language statement.

5. The system of claim 4 , wherein the at least one hardware processor is configured to:

select a data characteristic from optimizing criteria that partitions the data over the total number of data partitions.

6. The system of claim 4 , wherein the at least one hardware processor is configured to:

select a database connectivity driver for the database; and

issue the instruction in the plurality of structured query language statements to partition data in the database through the selected database connectivity driver.

7. A computer program product for processing a query into a database, the computer program product comprising one or more computer readable storage media collectively having program instructions embodied therewith, the program instructions executable by at least one processor to cause the at least one processor to:

receive an instruction in each of a plurality of structured query language statements of the query to partition data in the database into a plurality of data partitions for the query, wherein each of the plurality of structured query language statements includes search criteria and the instruction in each of the plurality of structured query language statements specifies a total number of data partitions for the plurality of data partitions for the query and a particular data partition of the total number of data partitions to apply the search criteria of that structured query language statement, and wherein the query includes a structured query language statement for each of the plurality of data partitions;

generate, in response to the instruction in the plurality of structured query language statements, a partitioning plan for the query to partition the data in the database into the total number of data partitions according to a plurality of data characteristics and a query execution plan that specifies the data from the database for each of the plurality of data partitions, wherein the plurality of data characteristics includes in-place physical partitioning of a database table, row-IDs, distribution of values within one or more database table columns, and minimum and maximum values of at least one database table column; and

execute the query execution plan to compel reading the data of the data partitions from the database in respective parallel data streams independently one from another and process the structured query language statements in respective parallel query processing pipelines to apply the search criteria of each structured query language statement in a respective parallel query processing pipeline against a data stream of the particular data partition specified in the instruction of that structured query language statement.

8. The computer program product of claim 7 , wherein the program instructions cause the at least one processor to:

select a data characteristic from optimizing criteria that partitions the data over the total number of data partitions.

9. The computer program product of claim 7 , wherein the program instructions cause the at least one processor to:

select a database connectivity driver for the database; and

issue the instruction in the plurality of structured query language statements to partition data in the database through the selected database connectivity driver.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 28, 2019
From: STANLEY, PAUL
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 050202/0997 →
Continuity (2)
Continuation 15281204 · Sep 30, 2016
Related Publication 20190384767A1 · Dec 19, 2019
Cited By (1)
US 12,386,828