US 10,891,306 B2
Query plans for analytic SQL constructs
Thierry Cruanes, San Mateo, CA (US); Benoit Dageville, Foster City, CA (US); and Allison Waingold Lee, San Mateo, CA (US)
Assigned to Snowflake Inc., San Mateo, CA (US)
Filed by Snowflake Inc., San Mateo, CA (US)
Filed on Aug. 17, 2020, as Appl. No. 16/995,599.
Application 16/995,599 is a continuation of application No. 16/911,185, filed on Jun. 24, 2020, granted, now 10,776,391.
Application 16/911,185 is a continuation of application No. 16/741,676, filed on Jan. 13, 2020, granted, now 10,762,106.
Application 16/741,676 is a continuation of application No. 14/626,853, filed on Feb. 19, 2015, granted, now 10,534,792, issued on Jan. 14, 2020.
Claims priority of provisional application 61/941,986, filed on Feb. 19, 2014.
Prior Publication US 2020/0380014 A1, Dec. 3, 2020
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 15/16 (2006.01); G06F 16/27 (2019.01); G06F 16/2453 (2019.01); G06F 9/50 (2006.01); G06F 16/22 (2019.01); G06F 16/21 (2019.01); G06F 16/182 (2019.01); H04L 29/08 (2006.01); G06F 16/14 (2019.01); G06F 16/2455 (2019.01); G06F 16/2458 (2019.01); G06F 9/48 (2006.01); G06F 16/9535 (2019.01); G06F 16/951 (2019.01); G06F 16/23 (2019.01)
CPC G06F 16/27 (2019.01) [G06F 9/4881 (2013.01); G06F 9/5016 (2013.01); G06F 9/5044 (2013.01); G06F 9/5083 (2013.01); G06F 9/5088 (2013.01); G06F 16/148 (2019.01); G06F 16/1827 (2019.01); G06F 16/211 (2019.01); G06F 16/221 (2019.01); G06F 16/2365 (2019.01); G06F 16/2456 (2019.01); G06F 16/2471 (2019.01); G06F 16/24532 (2019.01); G06F 16/24545 (2019.01); G06F 16/24552 (2019.01); G06F 16/951 (2019.01); G06F 16/9535 (2019.01); H04L 67/1095 (2013.01); H04L 67/1097 (2013.01); H04L 67/2842 (2013.01)] 30 Claims
OG exemplary drawing
 
1. A method comprising:
receiving a query pertaining to a set of data stored in one or more databases;
accessing a query execution plan comprising one or more steps to be performed on a set of data pertaining to the query;
initiating, within one or more of a first set of processors, a first parallel execution process in the query execution plan to process the set of data and generate an intermediate result of a query;
providing, by the one or more of the first set of processors, during execution of the query execution plan, the intermediate result to a plurality of a second set of processors for processing a plurality of secondary parallel execution processes within the plurality of the second set of processors, wherein each of the first set of processors and the plurality of the second set of processors is decoupled from a data storage device;
initiating, by the one or more of the plurality of the second set of processors, the plurality of secondary parallel execution processes to process the intermediate result to generate a plurality of secondary results; and
storing a final result to storage within a storage platform.