IP Library › Granted Patent US 11,669,529
Granted Patent B2
US 11,669,529 · App. 17/374,325 · Granted Jun 6, 2023

Dynamic query allocation to virtual warehouses

Inventors: Praveen Kandukuri (Ashburn, VA); Syed Salim (North Potomac, MD); Karamchandradatt Hardatt (Glen Allen, VA); Nagender Gurram (Glen Allen, VA); Ganesh Bharathan (Henrico, VA); Yudhish Batra (McLean, VA)
Assignee: Capital One Services, LLC
G06F16/24575G06F9/5005G06F16/256G06N20/00
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,669,529
App. No.
17/374,325
Granted
Jun 6, 2023
Kind
B2
Abstract

Methods, systems, and apparatuses for managing and selecting virtual warehouses for execution of queries on one or more data warehouses are described herein. A request to execute a query may be received. An execution plan, for the query, may be identified. A processing complexity for the query may be predicted based on the query and the execution plan. A plurality of virtual warehouses may be identified. An operating status and processing capabilities of the plurality of virtual warehouses may be determined. A subset of the plurality of virtual warehouses may be selected based on the processing complexity, the operating status of the plurality of virtual warehouses, and the processing capabilities of the plurality of virtual warehouses. The query may be executed on one of the subset of the plurality of virtual warehouses.

Claims (82)

1. A computing device comprising:

one or more processors; and

memory storing instructions that, when executed by the one or more processors, cause the computing device to:

receive, from a user device, a request to execute a query on at least one of a plurality of data warehouses;

identify an execution plan for the query by determining one or more sub-queries to be executed with respect to one or more of the plurality of data warehouses;

predict, based on the query and the execution plan, a processing complexity of the query;

identify a plurality of virtual warehouses, wherein each of the plurality of virtual warehouses comprises a respective set of computing resources configured to:

execute one or more queries with respect to at least a portion of the plurality of data warehouses;

collect results from the one or more queries; and

provide, to the user device, access to the collected results;

determine an operating status of the plurality of virtual warehouses;

determine processing capabilities of the plurality of virtual warehouses;

select a subset of the plurality of virtual warehouses based on the processing complexity, the operating status of the plurality of virtual warehouses, and the processing capabilities of the plurality of virtual warehouses;

receive, from the user device and from the subset of the plurality of virtual warehouses, a selection of a first virtual warehouse; and

cause the first virtual warehouse to execute the query.

2. The computing device of claim 1 , wherein the instructions, when executed by the one or more processors, cause the computing device to predict the processing complexity of the query by causing the computing device to:

provide, as input to a trained machine learning model, the execution plan, wherein the trained machine learning model is trained based on a history of queries executed by the plurality of data warehouses; and

receive, from the trained machine learning model and based on the input, a prediction of the processing complexity of the query.

3. The computing device of claim 1 , wherein the instructions, when executed by the one or more processors, cause the computing device to:

instantiate, based on the processing complexity, the operating status of the plurality of virtual warehouses, and the processing capabilities of the plurality of virtual warehouses, the first virtual warehouse.

4. The computing device of claim 1 , wherein the instructions, when executed by the one or more processors, cause the computing device to cause the first virtual warehouse of the subset of the plurality of virtual warehouses to execute the query by causing the computing device to:

modify a quantity of computing resources available to one or more servers that provide the first virtual warehouse.

5. The computing device of claim 1 , wherein the instructions, when executed by the one or more processors, cause the computing device to select the subset of the plurality of virtual warehouses by causing the computing device to:

determine a historical operating status trend of at least a portion of the plurality of virtual warehouses; and

select, based on the operating status of each of the plurality of virtual warehouses and based on the historical operating status trend, the subset of the plurality of virtual warehouses.

6. The computing device of claim 1 , wherein the instructions, when executed by the one or more processors, cause the computing device to predict the processing complexity of the query by causing the computing device to:

determine a configuration of at least one table of the one or more of the plurality of data warehouses, wherein the predicted processing complexity is based on the configuration.

7. The computing device of claim 1 , wherein the instructions, when executed by the one or more processors, cause the computing device to:

send, based on the processing complexity of the query satisfying a threshold, a notification to the user device; and

receive, from the user device, a modification to the query, wherein the instructions, when executed by the one or more processors, cause the computing device to cause the first virtual warehouse to execute the query based on the modification.

8. The computing device of claim 1 , wherein the instructions, when executed by the one or more processors, cause the computing device to cause the first virtual warehouse of the subset of the plurality of virtual warehouses to execute the query by causing the computing device to:

determine a first cost associated with execution of the query by the first virtual warehouse;

determine a time period such that, during the time period, execution of the query by the first virtual warehouse is associated with a second cost lower than the first cost; and

cause the first virtual warehouse to execute the query during the time period.

9. The computing device of claim 1 , wherein the instructions, when executed by the one or more processors, cause the computing device to:

determine a time period associated with a low frequency of queries; and

modify, during the time period, a size of the plurality of virtual warehouses.

10. The computing device of claim 1 , wherein the operating status of the plurality of virtual warehouses indicates a degree of utilization of each of the plurality of virtual warehouses.

11. The computing device of claim 1 , wherein the processing capabilities of the plurality of virtual warehouses indicate a processor speed of each of the plurality of virtual warehouses.

12. A method comprising

receiving, from a user device, a request to execute a query on at least one of a plurality of data warehouses;

identifying an execution plan for the query by determining one or more sub-queries to be executed with respect to one or more of the plurality of data warehouses;

predicting, based on the query and the execution plan, a processing complexity of the query;

identifying a plurality of virtual warehouses, wherein each of the plurality of virtual warehouses comprises a respective set of computing resources configured to:

execute one or more queries with respect to at least a portion of the plurality of data warehouses;

collect results from the one or more queries; and

provide, to the user device, access to the collected results;

determining an operating status of the plurality of virtual warehouses;

determining processing capabilities of the plurality of virtual warehouses;

selecting a subset of the plurality of virtual warehouses based on the processing complexity, the operating status of the plurality of virtual warehouses, and the processing capabilities of the plurality of virtual warehouses; and

select, from the subset of the plurality of virtual warehouses, a selection of a first virtual warehouse; and

causing the first virtual warehouse to execute the query.

13. The method of claim 12 , wherein predicting the processing complexity of the query comprises:

providing, as input to a trained machine learning model, the execution plan, wherein the trained machine learning model is trained based on a history of queries executed by the plurality of data warehouses; and

receiving, from the trained machine learning model and based on the input, a prediction of the processing complexity of the query.

14. The method of claim 12 , further comprising:

instantiating, based on the processing complexity, the operating status of the plurality of virtual warehouses, and the processing capabilities of the plurality of virtual warehouses, the first virtual warehouse.

15. The method of claim 12 , wherein causing the first virtual warehouse of the subset of the plurality of virtual warehouses to execute the query comprises:

modifying a quantity of computing resources available to one or more servers that provide the first virtual warehouse.

16. The method of claim 12 , wherein selecting the subset of the plurality of virtual warehouses comprises:

determining a historical operating status trend of at least a portion of the plurality of virtual warehouses; and

selecting, based on the operating status of each of the plurality of virtual warehouses and based on the historical operating status trend, the subset of the plurality of virtual warehouses.

17. One or more non-transitory computer-readable media storing instructions that, when executed by one or more processors, cause a computing device to:

receive, from a user device, a request to execute a query on at least one of a plurality of data warehouses;

identify an execution plan for the query by determining one or more sub-queries to be executed with respect to one or more of the plurality of data warehouses;

predict, based on the query and the execution plan, a processing complexity of the query;

identify a plurality of virtual warehouses, wherein each of the plurality of virtual warehouses comprises a respective set of computing resources configured to:

execute one or more queries with respect to at least a portion of the plurality of data warehouses;

collect results from the one or more queries; and

provide, to the user device, access to the collected results;

determine an operating status of the plurality of virtual warehouses;

determine processing capabilities of the plurality of virtual warehouses;

select a subset of the plurality of virtual warehouses based on the processing complexity, the operating status of the plurality of virtual warehouses, and the processing capabilities of the plurality of virtual warehouses; and

receive, from the user device and from the subset of the plurality of virtual warehouses, a selection of a first virtual warehouse; and

cause the first virtual warehouse to execute the query.

18. The computer-readable media of claim 17 , wherein the instructions, when executed by the one or more processors, cause the computing device to predict the processing complexity of the query by causing the computing device to:

provide, as input to a trained machine learning model, the execution plan, wherein the trained machine learning model is trained based on a history of queries executed by the plurality of data warehouses; and

receive, from the trained machine learning model and based on the input, a prediction of the processing complexity of the query.

19. The computer-readable media of claim 17 , wherein the instructions, when executed by the one or more processors, cause the computing device to:

instantiate, based on the processing complexity, the operating status of the plurality of virtual warehouses, and the processing capabilities of the plurality of virtual warehouses, the first virtual warehouse.

20. The computer-readable media of claim 17 , wherein the instructions, when executed by the one or more processors, cause the computing device to cause the first virtual warehouse of the subset of the plurality of virtual warehouses to execute the query by causing the computing device to:

modify a quantity of computing resources available to one or more servers that provide the first virtual warehouse.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 19, 2021
From: KANDUKURI, PRAVEEN; SALIM, SYED; HARDATT, KARAMCHANDRADATT; GURRAM, NAGENDER; BHARATHAN, GANESH; BATRA, YUDHISH
To: CAPITAL ONE SERVICES, LLC
Reel/Frame 056901/0409 →
Continuity (1)
Related Publication 20230020782A1 · Jan 19, 2023
Cited By (3)
US 12,353,422 US 12,361,026 US 12,386,840