Latency reduction with pre-moving of distributed data and adaptive allocating of compute operations
First Claim
1. A method of reducing latency of a multi-step compute operation that is performed by geographically distributed computing devices on a set of geographically distributed data, the method comprising the steps of:
- predicting a duration of a first data exchange between a first computing device at a first geographical location and a second computing device at a second geographical location, the first data exchange comprising;
the first computing device transmitting a first portion of a first subset of intermediate data to the second computing device; and
the second computing device transmitting a first portion of a second subset of the intermediate data to the first computing device;
wherein the first portions of the first and second subsets of the intermediate data are based on a first allocation, of processing of a subsequent step of a multi-step compute operation, among the first and second computing devices;
predicting a duration of a second data exchange between the first and second computing devices, the second data exchange comprising;
the first computing device transmitting a second portion of the first subset of the intermediate data to the second computing device; and
the second computing device transmitting a second portion of the second subset of the intermediate data to the first computing device;
wherein the second portions of the first and second subsets of the intermediate data are based on a second allocation, of the processing of the subsequent step of the multi-step compute operation, among the first and second computing devices, the second allocation differing from the first allocation; and
allocating, among the first and second computing devices, the processing of the subsequent step of the multi-step compute operation in accordance with the second duration is less than the first duration;
wherein the allocating causes the first computing device to transmit the second portion of the first subset of the intermediate data to the second computing device and further causes the second computing device to transmit the second portion of the second subset of the intermediate data to the first computing device; and
wherein processing of a prior step of the multi-step compute operation by the first and second computing devices resulted in the first computing device locally generating the first subset of the intermediate data and second computing device locally generating the second subset of the intermediate data.
1 Assignment
0 Petitions
Accused Products
Abstract
Latency in responding to queries directed to geographically distributed data can be reduced by allocating individual steps, of a multi-step compute operation requested by the query, among the geographically distributed computing devices so as to reduce the duration of shuffling of intermediate data among such devices, and, additionally, by pre-moving, prior to the receipt of the query, portions of the distributed data that are input to a first step of the multistep compute operation, to, again, reduce the duration of the exchange of intermediate data. The pre-moving of input data occurring, and the adaptive allocation of intermediate steps, are prioritized for high-value data sets. Additionally, a threshold increase in a quantity of data exchanged across network communications can be established to avoid incurring network communication usage without an attendant gain in latency reduction.
-
Citations
20 Claims
-
1. A method of reducing latency of a multi-step compute operation that is performed by geographically distributed computing devices on a set of geographically distributed data, the method comprising the steps of:
-
predicting a duration of a first data exchange between a first computing device at a first geographical location and a second computing device at a second geographical location, the first data exchange comprising; the first computing device transmitting a first portion of a first subset of intermediate data to the second computing device; and the second computing device transmitting a first portion of a second subset of the intermediate data to the first computing device; wherein the first portions of the first and second subsets of the intermediate data are based on a first allocation, of processing of a subsequent step of a multi-step compute operation, among the first and second computing devices; predicting a duration of a second data exchange between the first and second computing devices, the second data exchange comprising; the first computing device transmitting a second portion of the first subset of the intermediate data to the second computing device; and the second computing device transmitting a second portion of the second subset of the intermediate data to the first computing device; wherein the second portions of the first and second subsets of the intermediate data are based on a second allocation, of the processing of the subsequent step of the multi-step compute operation, among the first and second computing devices, the second allocation differing from the first allocation; and allocating, among the first and second computing devices, the processing of the subsequent step of the multi-step compute operation in accordance with the second duration is less than the first duration; wherein the allocating causes the first computing device to transmit the second portion of the first subset of the intermediate data to the second computing device and further causes the second computing device to transmit the second portion of the second subset of the intermediate data to the first computing device; and wherein processing of a prior step of the multi-step compute operation by the first and second computing devices resulted in the first computing device locally generating the first subset of the intermediate data and second computing device locally generating the second subset of the intermediate data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system comprising:
-
a first computing device in a first geographic location having locally accessible to it a first subset of intermediate data, the first subset of the intermediate data having been locally generated by the first computing device processing a prior step of a multi-step compute operation; a second computing device in a second, different geographic location having locally accessible to it a second subset of the intermediate data, the second subset of the intermediate data having been locally generated by the second computing device processing the prior step of the multi-step compute operation; a communicational connection between the first and second computing devices allowing data to be provided from the first computing device to the second computing device faster than data can be provided from the second computing device to the first computing device; and one or more computer-readable media comprising computer-executable instructions, which, when executed, cause a computing device to; predict a duration of a first data exchange between the first and second computing devices, the first data exchange comprising; the first computing device transmitting a first portion of the first subset of the intermediate data to the second computing device; and the second computing device transmitting a first portion of the second subset of the intermediate data to the first computing device; wherein the first portions of the first and second subsets of the intermediate data are based on a first allocation, of processing of a subsequent step of the multistep compute operation, among the first and second computing devices; predict a duration of a second data exchange between the first and second computing devices, the second data exchange comprising; the first computing device transmitting a second portion of the first subset of the intermediate data to the second computing device; and the second computing device transmitting a second portion of the second subset of the intermediate data to the first computing device; wherein the second portions of the first and second subsets of the intermediate data are based on a second allocation, of the processing of the subsequent step of the multi-step compute operation, among the first and second computing devices, the second allocation differing from the first allocation; and allocate processing of the subsequent step of the multi-step compute operation among the first and second computing devices in accordance with the second allocation if the second duration is less than the first duration; wherein the allocating causes the first computing device to transmit the second portion of the first subset of the intermediate data to the second computing device and further causes the second computing device to transmit the second portion of the second subset of the intermediate data to the first computing device. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A computing device comprising:
-
one or more processing units; and one or more computer-readable storage media comprising computer-executable instructions, which, when executed by at least some of the one or more processing units, cause the computing device to; predict a duration of a first data exchange between a first computing device in a first geographic location and a second computing device in a second, different geographic location, the first data exchange comprising; the first computing device transmitting a first portion of a first subset of intermediate data to the second computing device; and the second computing device transmitting a first portion of a second subset of the intermediate data to the first computing device; wherein the first portions of the first and second subsets of the intermediate data are based on a first allocation, of processing of a subsequent step of a multi- step compute operation, among the first and second computing devices; predict a duration of a second data exchange between the first and second computing devices, the second data exchange comprising; the first computing device transmitting a second portion of the first subset of the intermediate data to the second computing device; and the second computing device transmitting a second portion of the second subset of the intermediate data to the first computing device; wherein the second portions of the first and second subsets of the intermediate data are based on a second allocation, of the processing of the subsequent step of the multi-step compute operation, among the first and second computing devices, the second allocation differing from the first allocation; and allocate, among the first and second computing devices, the processing of the subsequent step of the multi-step compute operation in accordance with the second allocation if the second duration is less than the first duration; wherein the allocating causes the first computing device to transmit the second portion of the first subset of the intermediate data to the second computing device and further causes the second computing device to transmit the second portion of the second subset of the intermediate data to the first computing device; and wherein processing of a prior step of the multi-step compute operation by the first and second computing devices resulted in the first computing device locally generating the first subset of the intermediate data and second computing device locally generating the second subset of the intermediate data. - View Dependent Claims (19, 20)
-
Specification