Speculative reads
First Claim
1. A computer-implemented method of performing speculative read requests, comprising:
- under control of one or more computer systems configured with executable instructions,capturing information for a plurality of read requests, received over a first period of time from at least one source, to be executed against at least one data store associated with a storage entity;
analyzing the captured information to determine one or more access patterns associated with the at least one source and the at least one data store;
storing information for the one or more access patterns to persistent storage;
receiving at least one subsequent read request from the at least one source to the storage entity, the at least one subsequent read request to be executed against the at least one data store during a second period of time; and
when the at least one subsequent read request is determined by the storage entity to match the information stored for at least one of the one or more access patterns,causing, by the storage entity, at least one speculative read request to be executed against the at least one data store based at least in part upon the matching one or more access patterns; and
temporarily storing data for the at least one speculative read request to temporary storage, the data being available such that if a subsequent read request is received for the data, the data can be provided without having to execute the subsequent read request against the at least one data store subsequent to the request,wherein a latency value of providing the data from a speculative read request is less than a latency value of providing the data by executing a received subsequent read request against the data store for the data after the subsequent read request is received; and
wherein a location of the temporary storage is determined based at least in part upon at least one usage aspect of a network containing the data store.
1 Assignment
0 Petitions
Accused Products
Abstract
Patterns of access and/or behavior can be analyzed and persisted for use in pre-fetching data from a physical storage device. In at least some embodiments, data can be aggregated across volumes, instances, users, applications, or other such entities, and that data can be analyzed to attempt to determine patterns for any of those entities. The patterns and/or analysis can be persisted such that the information is not lost in the event of a reboot or other such occurrence. Further, aspects such as load and availability across the network can be analyzed to determine where to send and/or store data that is pre-fetched from disk or other such storage in order to reduce latency while preventing bottlenecks or other such issues with resource availability.
-
Citations
26 Claims
-
1. A computer-implemented method of performing speculative read requests, comprising:
-
under control of one or more computer systems configured with executable instructions, capturing information for a plurality of read requests, received over a first period of time from at least one source, to be executed against at least one data store associated with a storage entity; analyzing the captured information to determine one or more access patterns associated with the at least one source and the at least one data store; storing information for the one or more access patterns to persistent storage; receiving at least one subsequent read request from the at least one source to the storage entity, the at least one subsequent read request to be executed against the at least one data store during a second period of time; and when the at least one subsequent read request is determined by the storage entity to match the information stored for at least one of the one or more access patterns, causing, by the storage entity, at least one speculative read request to be executed against the at least one data store based at least in part upon the matching one or more access patterns; and temporarily storing data for the at least one speculative read request to temporary storage, the data being available such that if a subsequent read request is received for the data, the data can be provided without having to execute the subsequent read request against the at least one data store subsequent to the request, wherein a latency value of providing the data from a speculative read request is less than a latency value of providing the data by executing a received subsequent read request against the data store for the data after the subsequent read request is received; and wherein a location of the temporary storage is determined based at least in part upon at least one usage aspect of a network containing the data store. - View Dependent Claims (2, 3, 4)
-
-
5. A computer-implemented method of pre-fetching data, comprising:
-
under control of one or more computer systems configured with executable instructions, receiving a read request from a source for data stored in a data store associated with a storage entity; obtaining data for the read request from the data store and sending the data to the source; comparing, at the storage entity, information associated with the read request against at least one access pattern persistently stored for at least one of the source or the data store, the at least one access pattern being determined based at least in part upon prior read requests; and performing, under direction of the storage entity, at least one speculative read to pre-fetch additional data from the data store when the information associated with the read request matches at least one access pattern, the additional data being identified using the at least one matching access pattern and a location of the data obtained for the read request, wherein the additional data is stored to temporary storage such that the data can be provided to the source without having to execute a subsequent read request against the data store subsequent to receiving the subsequent read request; and wherein a location of the temporary storage is determined based at least in part upon at least one usage aspect of a network containing the data store. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A computer-implemented method of pre-fetching data, comprising:
-
under control of one or more computer systems configured with executable instructions, receiving information that a read request was received from a compute node for data stored in a data store associated with a storage node in a network environment; comparing information associated with the read request against at least one access pattern persistently stored for at least one of the source or the data store, the at least one access pattern being determined based at least in part upon prior read requests; and performing at least one speculative read to pre-fetch additional data from the data store when the information associated with the read request matches at least one access pattern, the additional data being identified using the at least one matching access pattern and a location of the data obtained for the read request, wherein an entity other than the compute node and the storage node is operable to perform speculative reads for read requests and store the additional data to temporary storage such that the data can be provided to the compute node without having to contact the storage node; and wherein a location of the temporary storage is determined based at least in part upon at least one usage aspect of a network containing the data store. - View Dependent Claims (18, 19, 20, 21)
-
-
22. A system for pre-fetching data, comprising:
-
at least one processor; and memory including instructions that, when executed by the at least one processor, cause the system to; receive a read request from a source for data stored in a data store associated with a storage entity; obtain data for the read request from the data store and send the data to the source; compare, at the storage entity, information associated with the read request against at least one access pattern persistently stored for at least one of the source or the data store, the at least one access pattern being determined based at least in part upon prior read requests; and perform, under direction of the storage entity, at least one speculative read to pre-fetch additional data from the data store when the information associated with the read request matches at least one access pattern, the additional data being identified using the at least one matching access pattern and a location of the data obtained for the read request, wherein the additional data is stored to temporary storage such that the data can be provided to the source without having to execute a subsequent read request against the data store subsequent to receiving the subsequent read request; and wherein a location of the temporary storage is determined based at least in part upon at least one usage aspect of a network containing the data store. - View Dependent Claims (23, 24)
-
-
25. A non-transitory computer-readable storage medium including instructions for pre-fetching data, the instructions when executed by a processor causing the processor to:
-
receive a read request from a source for data stored in a data store associated with a storage entity; obtain data for the read request from the data store and send the data to the source; compare, at the storage entity, information associated with the read request against at least one access pattern persistently stored for at least one of the source or the data store, the at least one access pattern being determined based at least in part upon prior read requests; and perform, under direction of the storage entity, at least one speculative read to pre-fetch additional data from the data store when the information associated with the read request matches at least one access pattern, the additional data being identified using the at least one matching access pattern and a location of the data obtained for the read request, wherein the additional data is stored to temporary storage such that the data can be provided to the source without having to execute a subsequent read request against the data store subsequent to receiving the subsequent read request; and wherein a location of the temporary storage is determined based at least in part upon at least one usage aspect of a network containing the data store. - View Dependent Claims (26)
-
Specification