IP Library Granted Patent US 11,106,672
Granted Patent B2
US 11,106,672 · App. 15/762,586 · Granted Aug 31, 2021

Queries based on ranges of hash values

Inventors: Rui Liu (Sunnyvale, CA); Qiming Chen (Sunnyvale, CA); Jeff Lefevre (Sunnyvale, CA); Malu G. Castellanos (Sunnyvale, CA); Meichun Hsu (Sunnyvale, CA)
Assignee: MICRO FOCUS LLC
G06F16/24542G06F16/2255G06F16/2471G06F16/256G06F16/27
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,106,672
App. No.
15/762,586
Filed
Mar 23, 2018
Granted
Aug 31, 2021
Kind
B2
Art Unit
2154
USPC
707/718
Abstract

A system includes a database client, and a distributed database comprising database nodes. The distributed database may receive a database query from the client, determine that the query comprises a range of hash values of a table partition stored by a node of the distributed database, and determine that the range of hash values is not stored by other nodes of the distributed database. Responsive to determining that the range of hash values of the query is stored by the node and not by the other nodes, the database may generate an optimized distributed execution plan that includes the node that stores the range of hash values and excludes the nodes that do not include the range of hash values.

Claims (49)

1. A method for querying a distributed database comprising a plurality of nodes, the method comprising:

receiving, at a first node of the plurality of nodes of the distributed database, a query that includes a particular range of hash values;

determining, by a processor of the first node, that the particular range of hash values in the query is a same as a range of hash values of a table partition stored in the first node and is not the same as ranges of hash values of table partitions stored in other nodes of the distributed database;

responsive to the determination that the particular range of hash values in the query is the same as the range of hash values of the table partition stored in the first node and is not the same as the ranges of hash values of the table partitions stored in the other nodes, generating, by the processor of the first node, an optimized distributed execution plan that includes only the first node and excludes the other nodes from executing the optimized distributed execution plan; and

executing, by the processor of the first node, the optimized distributed execution plan on the table partition stored in the first node to generate data requested by the query, without sending the optimized distributed execution plan to the other nodes for execution.

2. The method of claim 1 , further comprising:

requesting, by a task node, the ranges of hash values of the plurality of nodes;

receiving, at the task node, the ranges of hash values from the plurality of nodes;

determining, by the task node, the range of hash values of the first node to be the particular range of hash values for the query;

generating, by the task node, the query based the particular range of hash values; and

transmitting, by the task node, the query to the first node.

3. The method of claim 2 , wherein the task node executes a distributed computing framework.

4. The method of claim 1 , further comprising:

transmitting, by the processor of the first node, the data generated from the execution of the optimized distributed execution plan to a client device that sent the query.

5. The method of claim 1 , wherein the particular range of hash values is included in a structured query language (SQL) syntax of the query.

6. The method of claim 1 , wherein the query further comprises: a hint that indicates the query comprises the particular range of hash values.

7. The method of claim 1 , wherein the first node is an initiator node of the distributed database.

8. A computing system comprising:

a processor; and

a memory storing instructions that when executed cause the processor to:

receive a query that includes a particular range of hash values;

determine that the particular range of hash values in the query is a same as a range of hash values of a table partition stored in a first node of a plurality of nodes of a distributed database and is not the same as ranges of hash values of table partitions stored in other nodes of the distributed database;

responsive to the determination that the particular range of hash values in the query is the same as the range of hash values of the table partition stored in the first node and is not the same as the ranges of hash values of the table partitions stored in the other nodes, generate an optimized distributed execution plan that includes only the first node and excludes the other nodes from executing the optimized distributed execution plan; and

execute the optimized distributed execution plan on the table partition stored in the first node to generate data requested by the query, without sending the optimized distributed execution plan to the other nodes for execution.

9. The computing system of claim 8 , wherein the query is received from a task node.

10. The computing system of claim 9 , wherein the task node executes a distributed computing framework to generate the query.

11. The computing system of claim 10 , the task node executing the distributed computing framework further to:

request the ranges of hash values of the plurality of nodes;

receive the ranges of hash values from the plurality of nodes;

determine the range of hash values of the first node to be the particular range of hash values for the query;

generate the query based on the particular range of hash values; and

transmit the query to the first node.

12. The computing system of claim 10 , wherein to generate the query, the task node executing the distributed computing framework to include a hint in the query, wherein the hint indicates the query comprises the particular range of hash values.

13. A non-transitory computer-readable storage medium including instructions stored thereon that, when executed, cause a processor to:

receive a query that includes a particular range of hash values;

determine that the particular range of hash values in the query is a same as a range of hash values of a table partition stored in a first node of a plurality of nodes of a distributed database and is not the same as ranges of hash values of table partitions stored in other nodes of the distributed database;

responsive to the determination that the particular range of hash values in the query is the same as the range of hash values of the table partition stored in the first node and is not the same as the ranges of hash values of the table partitions stored in the other nodes, generate an optimized distributed execution plan that includes only the first node and excludes the other nodes from executing the optimized distributed execution plan; and

execute the optimized distributed execution plan on the table partition stored in the first node to generate data requested by the query, without sending the optimized distributed execution plan to the other nodes for execution.

14. The non-transitory computer-readable storage medium of claim 13 , wherein the query comprises a hint indicating the query comprises the particular range of hash values.

15. The non-transitory computer-readable storage medium of claim 13 , further including instructions stored thereon that, when executed, cause the processor to:

transmit the data generated from the execution of the optimized distributed execution plan to a client device that sent the query.

16. The non-transitory computer-readable storage medium of claim 13 , wherein the query is received from a task node of the distributed database, and wherein the task node executes a distributed computing framework to:

request the ranges of hash values of the plurality of nodes;

receive the ranges of hash values from the plurality of nodes;

determine the range of hash values of the first node to be the particular range of hash values for the query;

generate the query based on the particular range of hash values; and

transmit the query to the first node.

17. The non-transitory computer-readable storage medium of claim 13 , further including instructions stored thereon that, when executed, cause the processor to:

transmit the data generated from the execution of the optimized distributed execution plan to a client device that sent the query.

Assignments (8)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 28, 2026
From: MICRO FOCUS LLC
To: ROCKET SOFTWARE, INC.
Reel/Frame 075795/0114 →
RELEASE OF SECURITY INTEREST REEL/FRAME 052295/0041 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062625/0754 →
RELEASE OF SECURITY INTEREST REEL/FRAME 052294/0522 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062624/0449 →
SECURITY AGREEMENT Recorded Apr 2, 2020
From: MICRO FOCUS LLC; BORLAND SOFTWARE CORPORATION; MICRO FOCUS SOFTWARE INC.; NETIQ CORPORATION; MICRO FOCUS (US), INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 052294/0522 →
SECURITY AGREEMENT Recorded Apr 2, 2020
From: MICRO FOCUS LLC; BORLAND SOFTWARE CORPORATION; MICRO FOCUS SOFTWARE INC.; NETIQ CORPORATION; MICRO FOCUS (US), INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 052295/0041 →
CHANGE OF NAME Recorded Aug 8, 2019
From: ENTIT SOFTWARE LLC
To: MICRO FOCUS LLC
Reel/Frame 050004/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 20, 2018
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
To: ENTIT SOFTWARE LLC
Reel/Frame 046396/0208 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 20, 2018
From: LIU, RUI; CHEN, QIMING; LEFEVRE, JEFFREY; CASTELLANOS, MARIA; HSU, MEICHUN
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 046144/0513 →
Continuity (1)
Related Publication 20180268030A1 · Sep 20, 2018