Adaptive file readahead based on multiple factors
First Claim
1. A method for a storage operating system implemented in a storage system to optimize the amount of readahead data retrieved for a read stream established in a data container stored in the storage system, the method comprising:
- receiving a client read request at the storage system, the client read request indicating client-requested data for the storage operating system to retrieve from the data container containing the read stream;
determining whether the storage operating system is permitted to retrieve readahead data from the data container in response to the received client read request;
if it is determined that the storage operating system is permitted to retrieve readahead data from the data container, performing the steps of;
(i) selecting an amount of readahead data to retrieve from the data container based on one or more factors; and
(ii) retrieving the selected amount of readahead data from the data container.
1 Assignment
0 Petitions
Accused Products
Abstract
A storage system is provided that implements a file system configured to optimize the amount of readahead data retrieved for each read stream managed by the file system. The file system relies on various factors to adaptively select an optimized readahead size for each read stream. Such factors may include the number of read requests processed in the read stream, an amount of client-requested data requested in the read stream, a read-access style associated with the read stream, and so forth. The file system is also configured to minimize cache pollution by adaptively selecting when readahead operations are performed for each read stream and determining how long each read stream'"'"'s retrieved data is retained in memory.
106 Citations
29 Claims
-
1. A method for a storage operating system implemented in a storage system to optimize the amount of readahead data retrieved for a read stream established in a data container stored in the storage system, the method comprising:
-
receiving a client read request at the storage system, the client read request indicating client-requested data for the storage operating system to retrieve from the data container containing the read stream;
determining whether the storage operating system is permitted to retrieve readahead data from the data container in response to the received client read request;
if it is determined that the storage operating system is permitted to retrieve readahead data from the data container, performing the steps of;
(i) selecting an amount of readahead data to retrieve from the data container based on one or more factors; and
(ii) retrieving the selected amount of readahead data from the data container. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. An apparatus configured to implement a storage operating system that optimizes the amount of readahead data retrieved for a read stream established in a data container stored in the apparatus, the apparatus comprising:
-
means for receiving a client read request, the client read request indicating client-requested data for the storage operating system to retrieve from the data container containing the read stream;
means for determining whether the storage operating system is permitted to retrieve readahead data from the data container in response to the received client read request;
means for selecting an amount of readahead data to retrieve from the data container based on one or more factors; and
means for retrieving the selected amount of readahead data from the data container. - View Dependent Claims (17, 18, 19, 20, 21)
-
-
22. A storage system configured to optimize the amount of readahead data retrieved for a read stream established in a data container stored in the storage system, the storage system comprising:
-
a network adapter for receiving a client read request, the client read request indicating client-requested data to retrieve from the data container containing the read stream; and
a memory configured to store instructions for implementing a storage operating system that performs the steps of;
determining whether the storage operating system is permitted to retrieve readahead data from the data container in response to the received client read request, and if it is determined that the storage operating system is permitted to retrieve readahead data from the data container;
(i) selecting an amount of readahead data to retrieve from the data container based on one or more factors; and
(ii) retrieving the selected amount of readahead data from the data container. - View Dependent Claims (23, 24, 25, 26, 27)
-
-
28. A computer-readable media comprising instructions for execution in a processor for the practice of a method for a storage operating system implemented in a storage system to optimize the amount of readahead data retrieved for a read stream established in a data container stored in the storage system, the method comprising:
-
receiving a client read request at the storage system, the client read request indicating client-requested data for the storage operating system to retrieve from the data container containing the read stream;
determining whether the storage operating system is permitted to retrieve readahead data from the data container in response to the received client read request;
if it is determined that the storage operating system is permitted to retrieve readahead data from the data container, performing the steps of;
(i) selecting an amount of readahead data to retrieve from the data container based on one or more factors; and
(ii) retrieving the selected amount of readahead data from the data container. - View Dependent Claims (29)
-
Specification