IP Library Granted Patent US 11,487,786
Granted Patent B2
US 11,487,786 · App. 17/645,275 · Granted Nov 1, 2022

Query plans for analytic SQL constructs

Inventors: Thierry Cruanes (San Mateo, CA); Benoit Dageville (Foster City, CA); Allison Waingold Lee (San Mateo, CA)
Assignee: Snowflake Inc.
G06F16/27G06F9/4881G06F9/5016G06F9/5044G06F9/5083G06F9/5088G06F16/148G06F16/1827G06F16/211G06F16/221G06F16/2365G06F16/2456G06F16/2471G06F16/24532G06F16/24545G06F16/24552G06F16/951G06F16/9535H04L67/1095H04L67/1097H04L67/568
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,487,786
App. No.
17/645,275
Granted
Nov 1, 2022
Kind
B2
Abstract

A system and method for managing data storage and data access with querying data in a distributed system without buffering the results on intermediate operations in disk storage.

Claims (36)

1. A method comprising:

processing, within a first processor, a set of data with a first parallel execution process of a query plan for a query to generate an intermediate result of the query plan;

pushing, by the first processor, during execution of the query plan, the intermediate result to a plurality of second processors in the query plan for processing by a plurality of secondary parallel execution processes within the plurality of second processors that generate a plurality of second results, wherein each of the first processor and the plurality of second processors is decoupled from a persistent storage device that is part of a storage platform, wherein each of the plurality of second processors store at least some of the plurality of second results in a local cache that corresponds to that second processor; and

storing a final result to the persistent storage device within a storage platform.

2. The method of claim 1 , further comprising:

accessing the query plan for the set of data references by the query.

3. The method of claim 1 , wherein the plurality of second results is generated without writing the intermediate result to the disk storage.

4. The method of claim 1 , wherein each of the plurality of secondary parallel execution processes the intermediate result with a different operation.

5. The method of claim 1 , further comprising:

delaying operation of at least one of the plurality of secondary parallel execution processes so as to coordinate timing among other secondary parallel execution processes of the plurality of secondary parallel execution processes.

6. The method of claim 1 , wherein the intermediate result comprises a plurality of rows of database data.

7. The method of claim 1 , wherein each of the plurality of secondary parallel execution processes are unique processes.

8. The method of claim 1 , wherein the intermediate result is not materialized.

9. The method of claim 1 , wherein the intermediate result generated by the first parallel execution process is not materialized to a temporary structure.

10. The method of claim 1 , wherein the each of the first processor and second plurality of processors is coupled to the disk storage via a communications network.

11. The method of claim 1 , further comprising:

receiving the query for information stored in one or more databases.

12. A system comprising:

a first processor programmed to:

process a set of data with a first parallel execution process of a query plan for a query to generate an intermediate result of the query plan; and

push, during execution of the query plan, the intermediate result to a plurality of second processors in the query plan for concurrent processing by the plurality of secondary parallel execution processes; and

the plurality of second processors programmed to generate the plurality of second results, wherein each of the first processor and the plurality of second processors is decoupled from a persistent storage device that is part of a storage platform, wherein each of the plurality of second processors store at least some of the plurality of second results in a local cache that corresponds to that second processor; and

a storage platform to store a final result to a disk storage.

13. The system of claim 12 , wherein the first processor further programmed to access the query plan for the set of data references by the query.

14. The system of claim 12 , wherein the plurality of second results generated without writing the intermediate result to the disk storage.

15. The system of claim 12 , wherein each of the plurality of secondary parallel execution processes the intermediate result with a different operation.

16. The system of claim 12 , wherein the first processor further programmed to delay operation of at least one of the plurality of secondary parallel execution processes so as to coordinate timing among other secondary parallel execution processes of the plurality of secondary parallel execution processes.

17. The system of claim 12 , wherein the intermediate result comprises a plurality of rows of database data.

18. The system of claim 12 , wherein each of the plurality of secondary parallel execution processes are unique processes.

19. A non-transitory computer-readable medium storing instructions which, when executed by one or more third processors of a computing device, cause the computing device to:

process, within a first processor, a set of data with a first parallel execution process of a query plan for a query to generate an intermediate result of the query plan;

push, by the first processor, during execution of the query plan, the intermediate result to a plurality of second processors in the query plan for processing by a plurality of secondary parallel execution processes within the plurality of second processors that generate a plurality of second results, wherein each of the first processor and the plurality of second processors is decoupled from a persistent storage device that is part of a storage platform, wherein each of the plurality of second processors store at least some of the plurality of second results in a local cache that corresponds to that second processor; and

store a final result to the persistent storage device within a storage platform.

20. The non-transitory computer-readable medium of claim 19 , wherein the instructions further cause the computing device to:

access the query plan for the set of data references by the query.

21. The non-transitory computer-readable medium of claim 19 , wherein the plurality of second results is generated without writing the intermediate result to the disk storage.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 22, 2021
From: CRUANES, THIERRY; DAGEVILLE, BENOIT; LEE, ALLISON WAINGOLD
To: SNOWFLAKE COMPUTING INC.
Reel/Frame 058455/0823 →
CHANGE OF NAME Recorded Dec 22, 2021
From: SNOWFLAKE COMPUTING INC.
To: SNOWFLAKE INC.
Reel/Frame 058581/0239 →
Continuity (7)
Continuation 17086328 · Oct 31, 2020
Continuation 16913215 · Jun 26, 2020
Continuation 16862464 · Apr 29, 2020
Continuation 16741676 · Jan 13, 2020
Continuation 14626853 · Feb 19, 2015
Provisional Application 61941986 · Feb 19, 2014
Related Publication 20220114194A1 · Apr 14, 2022