Latency reduction techniques for partitioned processing
First Claim
1. A computer-implemented method for reducing processing latency for search queries, comprising:
- under control of one or more computer systems configured with executable instructions,receiving a search query to be executed against an index including a plurality of segments partitioned into a set of partitions, each partition corresponding to a range of segments of the plurality of segments;
prior to executing the search query, determining a likelihood that the search query is able to be executed against the index according to the set of partitions within a specified amount of time using a respective processing device for each partition; and
when the query is determined to be unlikely to be processed according to the set of partitions within the specified amount of time using the respective processing device;
splitting the range of segments for each partition into at least a first portion and a second portion;
assigning at least one additional processing device to process the second portion of the range of segments for each partition in response to a determination that the query is unlikely to be processed within the specified amount of time; and
executing the search query against the index using, for each partition, the respective processing device for the first portion and the at least one additional processing device for the second portion;
receiving responses from at least a minimum number of processing devices assigned to process the partitions; and
starting a delay timer once the responses have been received from the minimum number of processing devices, wherein if results have not been received from all processing devices after a period of delay as determined by the delay timer, each partition for which results have not been received is assigned to a different processing device.
1 Assignment
0 Petitions
Accused Products
Abstract
Overall latency is reduced when processing tasks such as search queries by determining which tasks are “expensive,” or likely to exceed desired latency thresholds. For expensive queries processed according to partitions, the segments for each partition can be divided among various sub-queries, which allow each partition to be processed in parallel by multiple devices without the need for repartitioning. Further, the responses to the sub-queries can be monitored, and if one or more responses are not received within a specified amount of time then each sub-query for which a response is missing can be resent. The first response received will be consolidated with the results from the other queries, and the result returned.
-
Citations
19 Claims
-
1. A computer-implemented method for reducing processing latency for search queries, comprising:
under control of one or more computer systems configured with executable instructions, receiving a search query to be executed against an index including a plurality of segments partitioned into a set of partitions, each partition corresponding to a range of segments of the plurality of segments; prior to executing the search query, determining a likelihood that the search query is able to be executed against the index according to the set of partitions within a specified amount of time using a respective processing device for each partition; and when the query is determined to be unlikely to be processed according to the set of partitions within the specified amount of time using the respective processing device; splitting the range of segments for each partition into at least a first portion and a second portion; assigning at least one additional processing device to process the second portion of the range of segments for each partition in response to a determination that the query is unlikely to be processed within the specified amount of time; and executing the search query against the index using, for each partition, the respective processing device for the first portion and the at least one additional processing device for the second portion; receiving responses from at least a minimum number of processing devices assigned to process the partitions; and starting a delay timer once the responses have been received from the minimum number of processing devices, wherein if results have not been received from all processing devices after a period of delay as determined by the delay timer, each partition for which results have not been received is assigned to a different processing device. - View Dependent Claims (2, 3)
-
4. A computer-implemented method for reducing processing latency for selected tasks, comprising:
under control of one or more computer systems configured with executable instructions, receiving a task to be processed across a resource including a plurality of partitions, each partition corresponding a respective portion of the resource; prior to processing the task, determining a likelihood that the task is able to be processed according to the plurality of partitions within a specified amount of time using a respective processing device for each partition; and when the task is determined to be unlikely to be processed according to the plurality of partitions within the specified amount of time using the respective processing device; dividing at least one partition into at least two sub-portions; assigning at least one additional processing device to process at least one of the at least two sub-portions in response to a determination that the task is unlikely to be processed within the specified amount of time; processing the task using (i) for the at least one partition, a respective processing device for one of the at least two sub-portions and the at least one additional processing device for a remainder of the at least two sub-portions, and (ii) a respective processing device for each of the remaining partitions of the plurality of partitions; receiving responses from at least a minimum number of processing devices assigned to process the partitions; and starting a delay timer once the responses have been received from the minimum number of processing devices, wherein if results have not been received from all processing devices after a period of delay as determined by the delay timer, each partition for which results have not been received is assigned to a different processing device. - View Dependent Claims (5, 6, 7, 8, 9, 10, 11, 12)
-
13. A system for reducing processing latency for selected tasks, comprising:
-
a processor; and a memory device including instructions that, when executed by the processor, cause the processor to; determine a task to be processed across a resource including a plurality of partitions, each partition corresponding to a portion of the resource; determine a likelihood that the task is able to be processed according to the plurality of partitions within a specified amount of time using a respective processing device for each partition; and when the task is determined to be unlikely to be processed according to the plurality of partitions within the specified amount of time; divide at least one partition into at least two sub-portions; assign at least one additional processing device to process at least one of the at least two sub-portions in response to a determination that the task is unlikely to be processed within the specified amount of time; and process the task using (i) for the at least one partition, a respective processing device for one of the at least two sub-portions and the at least one additional processing device for the remainder of the at least two sub-portions, and (ii) a respective processing device for each of the remaining partitions of the plurality of partitions, receive responses from at least a minimum number of processing devices assigned to process the partitions; and start a delay timer once the responses have been received from the minimum number of processing devices, wherein if results have not been received from all processing devices after a period of delay as determined by the delay timer, each partition for which results have not been received is assigned to a different processing device. - View Dependent Claims (14, 15)
-
-
16. A computer program product embedded in a non-transitory computer-readable medium for reducing processing latency in an electronic environment, the computer program product including instructions that, when executed by at least one computing device, cause the at least one computing device to:
-
determine a task to be processed across a resource including a plurality of partitions, each partition corresponding to a portion of the resource; determine a likelihood that the task is able to be processed according to the plurality of partitions within a specified amount of time using a respective processing device for each partition; and when the task is determined to be unlikely to be processed according to the plurality of partitions within the specified amount of time; divide at least one partition into at least two sub-portions; assigning at least one additional processing device to process at least one of the at least two sub-portions in response to a determination that the task is unlikely to be processed within the specified amount of time; and process the task using (i) for the at least one partition, a respective processing device for one of the at least two sub-portions and the at least one additional processing device for the remainder of the at least two sub-portions, and (ii) a respective processing device for each of the remaining partitions of the plurality of partitions, receive responses from at least a minimum number of processing devices assigned to process the partitions; and start a delay timer once the responses have been received from the minimum number of processing devices, wherein if results have not been received from all processing devices after a period of delay as determined by the delay timer, each partition for which results have not been received is assigned to a different processing device. - View Dependent Claims (17, 18, 19)
-
Specification