Query restartability
First Claim
1. A computer-implemented method comprising:
- receiving, by a first computer that includes one or more processors and one or more memories and from a requesting device, a particular query;
determining a maximum size for a global restart token using a degree of query complexity, a degree of query processing parallelism, or both;
determining multiple sub-queries each of which include data responsive to the particular query using i) the particular query and ii) the degree of query complexity, the degree of query processing parallelism, or both;
assigning, by the first computer to each of multiple second computers, one of the multiple sub-queries;
receiving, from one or more of the multiple second computers, a) a current result responsive to the respective sub-query assigned to the respective second computer and b) a respective restart token that represents operations performed to determine a plurality of results responsive to the respective sub-query including the current result responsive to the respective sub-query and that can be used to determine a new result responsive to the respective sub-query that was not included in the plurality of results responsive to the particular query;
determining a current result batch responsive to the particular query using the one or more current results;
generating, using the one or more restart tokens, the global restart token that (i) has at most the maximum size (ii) represents operations performed to determine a plurality of results responsive to the particular query including the current result batch responsive to the particular query and (iii) can be used to determine a new result responsive to the particular query that was not included in the plurality of results responsive to the particular query; and
providing, to the requesting device, a message that includes a) first data for the global restart token that represents operations performed to determine the plurality of results responsive to the particular query and b) second data for the current result batch responsive to the particular query.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods, systems, and apparatus, including computer programs encoded on computer storage media, for restarting a query using a token. One of the methods includes receiving, by a computer from a requesting device, a query; determining, using a data storage system, a current result responsive to the query; generating, using the current result, a restart token that represents operations performed to determine a plurality of results responsive to the query including the current result responsive to the query and that can be used to determine a new result responsive to the query that was not included in the plurality of results responsive to the query; and providing, to the requesting device, a message that includes a) first data for the restart token that represents operations performed to determine the plurality of results responsive to the query and b) second data for the current result responsive to the query.
21 Citations
20 Claims
-
1. A computer-implemented method comprising:
-
receiving, by a first computer that includes one or more processors and one or more memories and from a requesting device, a particular query; determining a maximum size for a global restart token using a degree of query complexity, a degree of query processing parallelism, or both; determining multiple sub-queries each of which include data responsive to the particular query using i) the particular query and ii) the degree of query complexity, the degree of query processing parallelism, or both; assigning, by the first computer to each of multiple second computers, one of the multiple sub-queries; receiving, from one or more of the multiple second computers, a) a current result responsive to the respective sub-query assigned to the respective second computer and b) a respective restart token that represents operations performed to determine a plurality of results responsive to the respective sub-query including the current result responsive to the respective sub-query and that can be used to determine a new result responsive to the respective sub-query that was not included in the plurality of results responsive to the particular query; determining a current result batch responsive to the particular query using the one or more current results; generating, using the one or more restart tokens, the global restart token that (i) has at most the maximum size (ii) represents operations performed to determine a plurality of results responsive to the particular query including the current result batch responsive to the particular query and (iii) can be used to determine a new result responsive to the particular query that was not included in the plurality of results responsive to the particular query; and providing, to the requesting device, a message that includes a) first data for the global restart token that represents operations performed to determine the plurality of results responsive to the particular query and b) second data for the current result batch responsive to the particular query. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A non-transitory computer readable storage medium storing instructions executable by a data processing apparatus and upon such execution cause the data processing apparatus to perform operations comprising:
-
receiving, from a requesting device, a particular query; determining a maximum size for a global restart token using a degree of query complexity, a degree of query processing parallelism, or both; determining multiple sub-queries each of which include data responsive to the particular query using i) the particular query and ii) the degree of query complexity, the degree of query processing parallelism, or both; assigning, to each of multiple second computers, one of the multiple sub-queries; receiving, from one or more of the multiple second computers, a) a current result responsive to the respective sub-query assigned to the respective second computer and b) a respective restart token that represents operations performed to determine a plurality of results responsive to the respective sub-query including the current result responsive to the respective sub-query and that can be used to determine a new result responsive to the respective sub-query that was not included in the plurality of results responsive to the particular query; determining a current result batch responsive to the particular query using the one or more current results; generating, using the one or more restart tokens, the global restart token that (i) has at most the maximum size (ii) represents operations performed to determine a plurality of results responsive to the particular query including the current result batch responsive to the particular query and (iii) can be used to determine a new result responsive to the particular query that was not included in the plurality of results responsive to the particular query; and providing, to the requesting device, a message that includes a) first data for the global restart token that represents operations performed to determine the plurality of results responsive to the particular query and b) second data for the current result batch responsive to the particular query. - View Dependent Claims (11)
-
-
12. A system comprising:
-
a data processing apparatus; and a non-transitory computer readable storage medium in data communication with the data processing apparatus and storing instructions executable by the data processing apparatus and upon such execution cause the data processing apparatus to perform operations comprising; receiving, from a requesting device, a particular query; determining a maximum size for a global restart token using a degree of query complexity, a degree of query processing parallelism, or both; determining multiple sub-queries each of which include data responsive to the particular query using i) the particular query and ii) the degree of query complexity, the degree of query processing parallelism, or both; assigning, to each of multiple second computers, one of the multiple sub queries; receiving, from one or more of the multiple second computers, a) a current result responsive to the respective sub-query assigned to the respective second computer and b) a respective restart token that represents operations performed to determine a plurality of results responsive to the respective sub-query including the current result responsive to the respective sub-query and that can be used to determine a new result responsive to the respective sub-query that was not included in the plurality of results responsive to the particular query; determining a current result batch responsive to the particular query using the one or more current results; generating, using the one or more restart tokens, the global restart token that (i) has at most the maximum size (ii) represents operations performed to determine a plurality of results responsive to the particular query including the current result batch responsive to the particular query and (iii) can be used to determine a new result responsive to the particular query that was not included in the plurality of results responsive to the particular query; and providing, to the requesting device, a message that includes a) first data for the global restart token that represents operations performed to determine the plurality of results responsive to the particular query and b) second data for the current result batch responsive to the particular query. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20)
-
Specification