US 12,105,714 B2
Query restartability
Yevgeniy Kogan, Kirkland, WA (US); Rajesh Rao, Clyde Hill, WA (US); and Sergey Melnik, Kirkland, WA (US)
Assigned to Google LLC, Mountain View, CA (US)
Filed by Google LLC, Mountain View, CA (US)
Filed on May 26, 2023, as Appl. No. 18/324,685.
Application 18/324,685 is a continuation of application No. 17/198,183, filed on Mar. 10, 2021, granted, now 11,698,905.
Application 17/198,183 is a continuation of application No. 16/235,123, filed on Dec. 28, 2018, granted, now 10,956,421, issued on Mar. 23, 2021.
Application 16/235,123 is a continuation of application No. 15/264,797, filed on Sep. 14, 2016, granted, now 10,169,415, issued on Jan. 1, 2019.
Prior Publication US 2023/0306028 A1, Sep. 28, 2023
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 7/00 (2006.01); G06F 16/00 (2019.01); G06F 16/245 (2019.01); G06F 16/2453 (2019.01); G06F 16/2455 (2019.01)
CPC G06F 16/2455 (2019.01) [G06F 16/245 (2019.01); G06F 16/24535 (2019.01)] 16 Claims
OG exemplary drawing
 
1. A computer-implemented method when executed by data processing hardware causes the data processing hardware to perform operations comprising:
receiving, at a primary computing node, a query requesting a query response based on data stored in a distributed database, the primary computing node corresponding to one of a plurality of computing nodes of a query system that coordinates queries for the plurality of computing nodes;
parsing, by the primary computing node, the query into a plurality of sub-queries, each sub-query configured to generate a respective result to form a portion of the query response while executing in parallel with one or more other sub-queries;
assigning, by the primary computing node, each respective sub-query of the plurality of sub-queries to a respective computing node of the plurality of computing nodes for execution;
in response to execution of the plurality of sub-queries, receiving, at the primary computing node, a results batch from the plurality of computing nodes, the results batch failing to include a respective result from a respective one of the plurality of computing nodes;
generating, by the primary computing node, a restart token using the results batch, the restart token identifying executed sub-queries of the plurality of sub-queries to represent that the results batch fails to include the respective result from the respective one of the plurality of computing nodes;
determining, by the primary computing node, that the respective one of the plurality of computing nodes incurred a system failure; and
based on determining that the respective one of the plurality of computing nodes incurred the system failure, resending, by the primary computing node, the restart token and the respective sub-query assigned to the respective one of the plurality of computing nodes to another computing node of the plurality of computing nodes.