IP Library Granted Patent US 10,747,762
Granted Patent B2
US 10,747,762 · App. 15/310,120 · Granted Aug 18, 2020

Automatic generation of sub-queries

Inventors: Alkiviadis Simitsis (Santa Clara, CA); William K. Wilkinson (San Mateo, CA)
Assignee: MICRO FOCUS LLC
G06F16/24535G06F16/248
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 10,747,762
App. No.
15/310,120
Filed
Nov 10, 2016
Granted
Aug 18, 2020
Kind
B2
Art Unit
2168
USPC
707/713
Abstract

Example implementations relate to automatic generation of sub-queries. For example, a computing device may include a processor. The processor may receive a query defining a particular set of data stored in at least one database. The processor may access metadata associated with the particular set of data and may select a data attribute associated with the particular set of data based on the metadata. The processor may automatically generate sub-queries of the query using the data attribute selected based on the metadata. The processor may process the sub-queries and provide a query result of the query that is a combination of sub-query results of the sub-queries.

Claims (49)

1. A computing device comprising:

a processor to:

receive a query defining a particular set of data stored in at least one database; and

transform the query into a functional equivalent utilizing a plurality of sub-queries, wherein to transform the query the processor is further to:

access metadata of the particular set of data, wherein the metadata includes properties of the particular set of data and wherein the query is processed and then stopped before completion in order to access the metadata;

select a data attribute of the particular set of data based on the properties of the particular set of data, wherein the data attribute identifies the particular set of data and is selected such that each of the plurality of sub-queries produces a result that is approximately equal in size, and such that a runtime for sub-query processing and combining is less than a runtime for processing the query;

determine, prior to generating the plurality of sub-queries, how to parameterize the data attribute;

parameterize, based on the determination, the data attribute;

automatically generate the plurality of sub-queries based on the parameterized data attribute and based on a key value in a first table of the at least one database that is mapped to a corresponding entry in a second table of the at least one database, wherein the automatically generating the plurality of sub-queries includes partitioning query input data from the query;

process the plurality of sub-queries; and

provide a query result for the query, the query result being a combination of sub-query results of the plurality of sub-queries, wherein the sub-query results of the plurality of sub-queries are combined according to an expected result of the query if the query was processed in its entirety.

2. The computing device of claim 1 , wherein the selecting the data attribute of the particular set of data includes selecting the data attribute based on at least one of a processing time of each sub-query, a distribution of data between the sub-queries, a number of results for each sub-query, and user-specified criteria associated with the data attribute.

3. The computing device of claim 1 , wherein the sub-queries correspond to disjoint ranges of data associated with the data attribute.

4. The computing device of claim 1 , wherein the sub-queries correspond to disjoint ranges of key values relating to data associated with the data attribute.

5. The computing device of claim 1 , wherein the automatically generating the plurality of sub-queries is further based on a histogram of data associated with the data attribute.

6. The computing device of claim 1 , wherein the metadata indicates a property of data in the first table or of data in the second table.

7. The computing device of claim 6 , wherein the property of data in the first table or of data in the second table is cardinality of the data attribute.

8. A method comprising:

receiving, by a computing device, a query defining a particular set of data stored in at least one database;

transforming the query into a functional equivalent utilizing a plurality of sub-queries, including:

accessing, by the computing device, metadata of the particular set of data, wherein the metadata includes properties of the particular set of data and wherein the query is processed and then stopped before completion in order to access the metadata;

identifying, by the computing device, a data attribute of the particular set of data based on the properties of the particular set of data, wherein the data attribute identifies the particular set of data and is identified such that each of the plurality of subqueries produces a result that is approximately equal in size, and such that a runtime for sub-query processing and combining is less than a runtime for processing the query;

determining, prior to generating the plurality of sub-queries, how to parameterize the data attribute;

parameterizing, based on the determination, the data attribute;

automatically creating, by the computing device, the plurality of sub-queries based on the parameterized data attribute and based on a key value in a first table of the at least one database that is mapped to a corresponding entry in a second table of the at least one database, wherein the automatically generating the plurality of sub-queries includes partitioning query input data from the query;

analyzing, by the computing device, the plurality of sub-queries; and

calculating, by the computing device, a query result of the query, the query result including the plurality of sub-query results of the sub-queries, wherein the sub-query results of the plurality of sub-queries are combined according to an expected result of the query.

9. The method of claim 8 , further comprising:

identifying the data attribute based on at least one of a processing time of each sub-query, a distribution of data between the sub-queries, a number of results for each sub-query, and user-specified criteria associated with the data attribute.

10. The method of claim 8 , wherein the plurality of sub-queries correspond to disjoint ranges of data associated with the data attribute.

11. The method of claim 8 , wherein the plurality of sub-queries correspond to disjoint ranges of key values relating to data associated with the data attribute.

12. The method of claim 8 , wherein the automatically creating the plurality of sub-queries is further based on a histogram of data associated with the data attribute.

13. The method of claim 8 , wherein the metadata indicates a property of data in the first table or of data in the second table.

14. The method of claim 13 , wherein the property of data in the first table or of data in the second table is cardinality of the data attribute.

15. A non-transitory machine-readable storage medium storing instructions that, when executed by at least one processor of a computing device, cause the computing device to:

receive a query defining a particular set of data stored in at least one database; and

transform the query into a functional equivalent utilizing a plurality of sub-queries, wherein the instructions, when executed by the at least one processor, further cause the computing device to:

access metadata of the particular set of data, wherein the metadata includes properties of the particular set of data and wherein the query is processed and then stopped before completion in order to access the metadata;

determine a data attribute of the particular set of data based on the properties of the particular set of data, wherein the data attribute identifies the particular set of data and is determined such that each of the plurality of sub-queries produces a result that is approximately equal in size, and such that a runtime for sub-query processing and combining is less than a runtime for processing the query;

determine, prior to generating the plurality of sub-queries, how to parameterize the data attribute;

parameterizing, based on the determination, the data attribute;

automatically generate the plurality of sub-queries based on the parameterized data attribute and based on a key value in a first table of the at least one database that is mapped to a corresponding entry in a second table of the at least one database, wherein the automatically generating the plurality of sub-queries includes partitioning query input data from the query;

perform the plurality of sub-queries; and

determine a query result of the query, the query result being a combination of sub-query results of the plurality of sub-queries, wherein the sub-query results of the plurality of sub-queries are combined according to an expected result of the query.

16. The non-transitory machine-readable storage medium of claim 15 , wherein the instructions, when executed by the at least one processor, further cause the computing device to determine the data attribute based on at least one of a processing time of each sub-query, a distribution of data between the sub-queries, a number of results for each sub-query, and user-specified criteria associated with the data attribute.

17. The non-transitory machine-readable storage medium of claim 15 , wherein the plurality of sub-queries correspond to disjoint ranges of data associated with the data attribute.

18. The non-transitory machine-readable storage medium of claim 15 , wherein the plurality of sub-queries correspond to disjoint ranges of key values relating to data associated with the data attribute.

19. The non-transitory machine-readable storage medium of claim 15 , wherein the automatically generating the plurality of sub-queries is further based on a histogram of data associated with the data attribute.

20. The non-transitory machine-readable storage medium of claim 15 , wherein the metadata indicates a property of data in the first table or of data in the second table.

Assignments (8)
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0577 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC)
Reel/Frame 063560/0001 →
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC); BORLAND SOFTWARE CORPORATION; MICRO FOCUS (US), INC.; SERENA SOFTWARE, INC; ATTACHMATE CORPORATION; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062746/0399 →
CHANGE OF NAME Recorded Aug 8, 2019
From: ENTIT SOFTWARE LLC
To: MICRO FOCUS LLC
Reel/Frame 050004/0001 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ENTIT SOFTWARE LLC; ARCSIGHT, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0577 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ATTACHMATE CORPORATION; BORLAND SOFTWARE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE, INC.; ENTIT SOFTWARE LLC; ARCSIGHT, LLC; SERENA SOFTWARE, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0718 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2017
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
To: ENTIT SOFTWARE LLC
Reel/Frame 042746/0130 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2016
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 040612/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 10, 2016
From: SIMITSIS, ALKIVIADIS; WILKINSON, WILLIAM K.
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 040274/0342 →
Continuity (1)
Related Publication 20170161323A1 · Jun 8, 2017