US 12,314,136 B2
Query retries using quiesce notifications
Ata E. Husain Bohra, San Jose, CA (US); and Daniel Geoffrey Karp, San Carlos, CA (US)
Assigned to Snowflake Inc., Bozeman, MT (US)
Filed by Snowflake Inc., Bozeman, MT (US)
Filed on May 31, 2023, as Appl. No. 18/326,471.
Application 18/326,471 is a continuation of application No. 17/823,877, filed on Aug. 31, 2022, granted, now 11,704,200.
Application 17/823,877 is a continuation of application No. 17/647,687, filed on Jan. 11, 2022, granted, now 11,507,465.
Claims priority of provisional application 63/228,075, filed on Jul. 31, 2021.
Prior Publication US 2023/0305928 A1, Sep. 28, 2023
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 11/14 (2006.01); G06F 9/50 (2006.01); G06F 16/245 (2019.01); G06F 16/25 (2019.01)
CPC G06F 11/1435 (2013.01) [G06F 9/5022 (2013.01); G06F 9/5038 (2013.01); G06F 9/505 (2013.01); G06F 16/245 (2019.01); G06F 16/256 (2019.01)] 30 Claims
OG exemplary drawing
 
1. A network-based database system comprising:
at least one hardware processor; and
a memory storing instructions that cause the at least one hardware processor to perform operations comprising:
determining, from a set of instances of compute service managers, a set of candidate compute service managers that are safe from quiescing, the determining based at least in part on determining that each of the set of candidate compute service managers has yet to undergo upgrading, downgrading, rebalancing for clusters, cluster scaling, or a cluster instance type change;
selecting a candidate compute service manager from the set of candidate compute service managers to issue a query restart by selecting an execution node, the execution node being included in a particular virtual warehouse associated with the candidate compute service manager;
receiving a notification indicating that a particular compute service manager has been quiesced;
determining a set of jobs that are not yet scheduled for execution and eligible for query retry;
determining a second set of jobs from the set of jobs to send at least another compute service manager for execution, the at least another compute service manager being selected based on an amount of resources that at least another compute service manager is currently utilizing;
sending the second set of jobs to the at least another compute service manager for execution, the sending enabling better utilization of cluster resources; and
executing, by the at least another compute service manager, the second set of jobs.