IP Library Granted Patent US 9,934,272
Granted Patent B2
US 9,934,272 · App. 14/919,777 · Granted Apr 3, 2018

Processing a database query in a database system

Inventors: Florian Braun (Stuttgart, DE); Andreas Brodt (Gerlingen, DE); Daniel Martin (Stuttgart, DE); Oliver Schiller (Dettingen, DE)
Assignee: International Business Machines Corporation
G06F17/30445G06F17/30483
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 9,934,272
App. No.
14/919,777
Granted
Apr 3, 2018
Kind
B2
Abstract

A method for processing a database query on a database system includes receiving the database query at the database system, determining a sequence of database operations for processing the database query, estimating a number of incoming data elements of the database system to be processed for each of the database operations, estimating a workload of a programmable integrated circuit of the database system for each of the database operations based on the estimated number of incoming data elements, assuming each of the database operations is performed in a single instantiation, selecting a number of instantiations N i for a database operation i of the sequence of database operations based on the estimated workload of the programmable integrated circuit for the database operation i, and configuring the programmable integrated circuit to execute the determined sequence of database operations, the database operation i is instantiated N i times.

Claims (34)

1. A computer system for processing a database query on a database system, the computer system comprising:

one or more processors, one or more computer-readable memories, one or more computer-readable tangible storage devices, and program instructions stored on at least one of the one or more storage devices for execution by at least one of the one or more processors via at least one of the one or more memories, wherein the computer system is capable of performing a method comprising:

receiving the database query at the database system;

determining a sequence of database operations for processing the database query;

estimating a number of incoming data elements of the database system to be processed for each of the database operations;

estimating a workload of a programmable integrated circuit of the database system for each of the database operations based on the estimated number of incoming data elements, assuming each of the database operations is performed in a single instantiation;

selecting a number of instantiations N i for a database operation i of the sequence of database operations based on the estimated workload of the programmable integrated circuit for the database operation i; and

configuring the programmable integrated circuit to execute the determined sequence of database operations, wherein the database operation i is instantiated N i times.

2. The computer system of claim 1 , wherein the database operations in the sequence of database operations forms a data processing pipeline, and wherein the N i instantiations of the database operation i are arranged as parallel operations in the data processing pipeline.

3. The computer system of claim 1 , further comprising:

assigning a repository to the programmable integrated circuit, the repository comprising configurations of the programmable integrated circuit used to execute the sequence of database operations, the repository further comprising information assigned to the sequence of database operations, the information comprising a ratio of the number of incoming data elements to a number of outgoing data elements for each of the database operations, and wherein estimating the number of incoming data elements for each of the database operations is conducted using the information successively for each database operation in the sequence of database operations.

4. The computer system of claim 1 , wherein each database operation in the sequence of database operations depends on a preceding database operation in the sequence of database operations.

5. The computer system of claim 1 , wherein the programmable integrated circuit comprises:

determining, for the database operation i, a ratio Q i of the number of instantiations N i of the database operation i to the number N i+1 of instantiations of a database operation i+1; and

inserting a data processing operation between the database operation i and the database operation i+1, the inserted data processing operation distributes a number of outgoing data elements resulting from the N i instantiations of the database operation i to the N i+1 instantiations of the database operation i+1 based on the ratio Q i .

6. The computer system of claim 1 , wherein estimating the workload of the programmable integrated circuit for each of the database operations comprises:

determining a ratio W i of an estimated number of incoming data elements r i−1 to be processed by a database operation i−1 to an estimated number of data elements r i to be processed by the database operation i;

scaling the workload being based on the ratio W i .

7. The computer system of claim 6 , wherein selecting the number of instantiations N i for the database operation i comprises:

defining a relative utilization U i of the database operation i as the product of the ratio W i and a ratio of a number of instantiations N i−1 of the database operation i−1 to the number of instantiations N i of database operation i; and

varying the number of instantiations N i of the database operation i such that the relative utilization U i satisfies a threshold.

8. The computer system of claim 7 , wherein the threshold is the relative utilization U i of a first database operation in the sequence of database operations.

9. A computer program product for processing a database query on a database system, the computer program product comprising:

a computer readable non-transitory article of manufacture tangibly embodying computer readable instructions which, when executed, cause a computer to carry out a method comprising:

receiving the database query at the database system;

determining a sequence of database operations for processing the database query;

estimating a number of incoming data elements of the database system to be processed for each of the database operations;

estimating a workload of a programmable integrated circuit of the database system for each of the database operations based on the estimated number of incoming data elements, assuming each of the database operations is performed in a single instantiation;

selecting a number of instantiations N i for a database operation i of the sequence of database operations based on the estimated workload of the programmable integrated circuit for the database operation i; and

configuring the programmable integrated circuit to execute the determined sequence of database operations, wherein the database operation i is instantiated N i times.

10. The computer program product of claim 9 , wherein the database operations in the sequence of database operations forms a data processing pipeline, and wherein the N i instantiations of the database operation i are arranged as parallel operations in the data processing pipeline.

11. The computer program product of claim 9 , further comprising:

assigning a repository to the programmable integrated circuit, the repository comprising configurations of the programmable integrated circuit used to execute the sequence of database operations, the repository further comprising information assigned to the sequence of database operations, the information comprising a ratio of the number of incoming data elements to a number of outgoing data elements for each of the database operations, and wherein estimating the number of incoming data elements for each of the database operations is conducted using the information successively for each database operation in the sequence of database operations.

12. The computer program product of claim 9 , wherein each database operation in the sequence of database operations depends on a preceding database operation in the sequence of database operations.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 22, 2015
From: BRAUN, FLORIAN; BRODT, ANDREAS; MARTIN, DANIEL; SCHILLER, OLIVER
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 036852/0918 →
Continuity (1)
Related Publication 20170116265A1 · Apr 27, 2017