Intelligent pre-fetching using compound operations
First Claim
1. In a computer data processing environment having at least one processor executing a reader process and a service process, the reader process communicatively coupled to the service process, a method of reducing network traffic between the reader and service processes comprising:
- receiving a compound request at the service process comprising a first command for a primary operation and a second command for a speculative secondary operation likely to be requested by the reader process following the first command for the primary operation, the second command having a flag indicating that the second command is speculative;
determining that the second command for the speculative secondary operation is speculative based on the flag indicating that the second command is speculative;
in response to a determination that a condition associated with executing the speculative secondary operation is not satisfied, performing the primary operation and secondary operation was not processed; and
in response to a determination that the condition associated with executing the speculative secondary operation is satisfied;
performing the primary operation;
performing the speculative secondary operation; and
sending the results of the primary operation and the speculative secondary operation.
3 Assignments
0 Petitions
Accused Products
Abstract
A system and method for pre-fetching data uses a combination of heuristics to determine likely next data retrieval operations and an evaluation of available resources for executing speculative data operations. When local resources, such as cache memory for storing speculative command results is not available, the compound operation request may not be sent. When resources on a server-side system are insufficient, only the primary command of a compound operation request may be processed and speculative command requests may be rejected. Both local computing resources and network resources may be evaluated when determining whether to build or process a compound operations request.
16 Citations
20 Claims
-
1. In a computer data processing environment having at least one processor executing a reader process and a service process, the reader process communicatively coupled to the service process, a method of reducing network traffic between the reader and service processes comprising:
-
receiving a compound request at the service process comprising a first command for a primary operation and a second command for a speculative secondary operation likely to be requested by the reader process following the first command for the primary operation, the second command having a flag indicating that the second command is speculative; determining that the second command for the speculative secondary operation is speculative based on the flag indicating that the second command is speculative; in response to a determination that a condition associated with executing the speculative secondary operation is not satisfied, performing the primary operation and secondary operation was not processed; and in response to a determination that the condition associated with executing the speculative secondary operation is satisfied; performing the primary operation; performing the speculative secondary operation; and sending the results of the primary operation and the speculative secondary operation. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A computer-readable storage media device having computer-executable instructions for implementing a method comprising:
-
examining a first command requiring a primary operation on a server; determining that a second command for a secondary operation is related to the first command for the primary operation; comparing the second command to a previously filled speculative command to determine whether results that correspond to the second command are cached; responsive to determining that results that correspond to the second command are not cached, attaching the second command for the secondary operation to the first command and marking the second command for the secondary operation speculative, wherein the marking comprises a flag indicating that the second command is speculative; sending the first command requiring the primary operation and the second command for the secondary operation to the server; receiving results from the primary operation and the secondary operation when conditions associated with performing the second operation are satisfied, wherein at least one of the conditions is satisfied prior to performance of the primary operation; caching the results of the secondary operation; and supplying the results of secondary operation responsive to comparing a third command to the second command and determining that results that correspond to the third command are cached. - View Dependent Claims (14, 15, 16, 17)
-
-
18. A computer-readable storage media device having computer-executable instructions for implementing a method comprising:
-
receiving a compound request having a primary operation and a secondary operation, the secondary operation dependent upon a result from the primary operation and having a flag indicating that the secondary operation is speculative; in response to a determination that a condition associated with executing the secondary operation is not satisfied, performing the primary operation, receiving a first result corresponding to the primary operation, and responding to the compound request with the first result and an indication that the secondary operation was not performed; in response to a determination that the condition associated with executing the secondary operation is satisfied; performing the primary operation; receiving the first result corresponding to the primary operation; extracting data from the first result; inserting the data from the first result into the secondary operation; receiving a second result corresponding to the secondary operation; and responding to the compound request with the first result and the second result. - View Dependent Claims (19, 20)
-
Specification