Data accelerator for managing data transmission
Abstract
Systems and methods for managing the flow of data between a client device and a data source system including a data accelerator implemented, at least in part, between the client device and the data source. The data accelerator can function to intercept queries and determine whether responses stored locally with respect to the client device can satisfy, at least in part, the request for data of the client device. If a locally stored response can satisfy the data request at least in part, the data accelerator is configured to retrieve the response from the local storage and send it to the client device. The data accelerator is also configured to modify the query based on whether response are locally stored that can satisfy the request. Specifically, the data accelerator can modify the query to only request the remaining data that is not included as part of the locally stored responses.
Claims
exact text as granted — not AI-modifiedWe claim:
1 . A method comprising:
intercepting a query that includes a request for requested data from a client device; determining whether a portion of the requested data is stored in a local storage on a same local area network as the client device; if it is determined that the portion of the requested data is stored locally:
returning the portion of the requested data to the client device from the local storage;
modifying the query based on the portion of the requested data to not include a request for the portion of the requested data;
sending the modified query to a data source system coupled to the client device through a wide area network;
forwarding a remaining portion of the requested data in response to the modified query from the data source system to the client device.
2 . The method of claim 1 , further comprising:
storing the remaining portion of the requested data from the data source system in the local storage on the same local area network as the client device.
3 . The method of claim 1 , wherein determining whether a portion of the requested data is stored locally further includes:
determining whether a locally stored query is the same as the intercepted query; determining whether the locally stored query is still valid; if it is determined that the locally stored query is still valid, returning the portion of the requested data to the client device.
4 . The method of claim 3 , wherein determining whether the locally stored query is still valid includes determining that the local stored query is invalid when rows have been added to, deleted from, or modified in a locally stored response to the locally stored query.
5 . The method of claim 1 , further comprising:
applying a compression rule to determine whether to compress at least a portion of the modified query before sending it to the data source system; compressing the at least a portion of the modified query before sending it to the data source system if it is determined to compress the modified query.
6 . The method of claim 5 , wherein applying the compression rule includes:
determining an upstream network speed between the data source system; determining an amount of time it takes to compress and decompress packets in the modified query; determining a ration of compression size over processing cost from the determined upstream network speed and the determined amount of time it take to compress and decompress packets in the modified query; determining a size of the portion of the modified query to compress based on the ratio of compression size to processing cost in compressing the portion of the modified query.
7 . The method of claim 1 , further comprising:
determining whether the modified query includes a common string; replacing the common string with a specific identification to reduce the size of the modified query, the specific identification uniquely associated with the common string and being of a smaller size than the common string.
8 . The method of claim 1 , further comprising:
applying pre-validating rules to the modified query to determine whether the modified query includes errors that will prevent the data source system from processing the modified query; removing the errors form the modified query before sending the modified query to the data source system.
9 . The method of claim 1 , further comprising:
determining an amount of time to return the portion of the requested data to the client device from the local storage; determining an amount of time to return the portion of the requested data from the data source system to the client device; returning the portion of the requested data to the client device from the local storage if the amount of time to return the portion of the requested data to the client device from the local storage is less than the amount of time to return the portion of the requested data from the data source system to the client device.
10 . The method of claim 1 , further comprising:
determining whether the modified query can be satisfied by the data source system; sending the modified query to the data source system if it is determined that the modified query can be satisfied.
11 . A system comprising:
an interceptor engine configured to intercept a query that includes a request for requested data from a client device; a pre-fetch engine configured to determine whether a portion of the requested data is stored in a local storage on a same local area network as the client device and return the portion of the requested data to the client device from the local storage if it is determined that the portion of the requested data is stored locally; a modification engine configured to:
modify the query based on the portion of the requested data returned to the client device to not include a request for the portion of the requested data;
send the modified query to a data source system coupled to the client device through a wide area network;
forward a remaining portion of the requested data in response to the modified query from the data source system to the client device.
12 . The system of claim 10 , wherein the pre-fetch engine is further configured to store the remaining portion of the requested data from the data source in the local storage on the same local area network as the client device.
13 . The system of claim 10 , wherein the pre-fetch engine is further configured to:
determine whether a locally stored query is the same as the intercepted query; determine whether the locally stored query is still valid; return the portion of the requested data to the client device if it is determined that the locally stored query is still valid.
14 . The system of claim 13 , wherein determining whether the locally stored query is still valid includes determining that the local stored query is invalid when rows have been added to, deleted from, or modified in a locally stored response to the locally stored query.
15 . The system of claim 10 , further comprising:
the modification engine further configured to apply a compression rule to determine whether to compress at least a portion of the modified query before sending it to the data source system; a compression and encryption engine configured to compress the at least a portion of the modified query before sending it to the data source system if it is determined to compress the modified query.
16 . The system of claim 15 , wherein in applying the compression rule the modification engine is further configured to:
determine an upstream network speed between the data source system; determine an amount of time it takes to compress and decompress packets in the modified query; determine a ration of compression size over processing cost from the determined upstream network speed and the determined amount of time it take to compress and decompress packets in the modified query; determine a size of the portion of the modified query to compress based on the ratio of compression size to processing cost in compressing the portion of the modified query.
17 . The system of claim 10 , wherein the modification engine is further configured to:
determine whether the modified query includes a common string; replace the common string with a specific identification to reduce the size of the modified query, the specific identification uniquely associated with the common string and being of a smaller size than the common string.
18 . The system of claim 10 , wherein the modification engine is further configured to:
apply pre-validating rules to the modified query to determine whether the modified query includes errors that will prevent the data source system from processing the modified query; remove the errors form the modified query before sending the modified query to the data source system.
19 . The system of claim 10 , wherein the pre-fetch engine is further configured to:
determine an amount of time to return the portion of the requested data to the client device from the local storage; determine an amount of time to return the portion of the requested data from the data source system to the client device; return the portion of the requested data to the client device from the local storage if the amount of time to return the portion of the requested data to the client device from the local storage is less than the amount of time to return the portion of the requested data from the data source system to the client device.
20 . A system comprising:
means for intercepting a query that includes a request for requested data from a client device; means for determining whether a portion of the requested data is stored in a local storage on a same local area network as the client device; if it is determined that the portion of the requested data is stored locally:
means for returning the portion of the requested data to the client device from the local storage;
means for modifying the query based on the portion of the requested data to not include a request for the portion of the requested data;
means for sending the modified query to a data source system coupled to the client device through a wide area network;
means for forwarding a remaining portion of the requested data in response to the modified query from the data source system to the client device.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.