Systems and methods for rebuilding a cache index
First Claim
Patent Images
1. A method for rebuilding an index for segments stored in a flash memory, the method comprising:
- when the index, which is stored in a memory, to the segments stored in the flash memory is lost or corrupted and the index is not backed up in the flash memory, rebuilding the index by;
reading headers of containers stored in the flash memory, wherein the headers contain sufficient information to index the segments stored in the containers without accessing the segments stored in the containers;
updating the index with information extracted from the headers, wherein the information includes identifiers of segments stored in the containers and locations of the segments in the containers; and
performing lookup operations into the flash memory for segments while rebuilding the index, wherein the lookup operations are performed including when the index rebuild is in progress.
4 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for rebuilding an index for a flash cache are provided. The index is rebuilt by reading headers of containers stored in the cache and inserting information from the headers into the index. The index is enabled while being rebuild such that lookup operations can be performed using the index even when the index is incomplete. New containers can be inserted into used or unused regions of the cache while the index is being rebuilt.
-
Citations
20 Claims
-
1. A method for rebuilding an index for segments stored in a flash memory, the method comprising:
when the index, which is stored in a memory, to the segments stored in the flash memory is lost or corrupted and the index is not backed up in the flash memory, rebuilding the index by; reading headers of containers stored in the flash memory, wherein the headers contain sufficient information to index the segments stored in the containers without accessing the segments stored in the containers; updating the index with information extracted from the headers, wherein the information includes identifiers of segments stored in the containers and locations of the segments in the containers; and performing lookup operations into the flash memory for segments while rebuilding the index, wherein the lookup operations are performed including when the index rebuild is in progress. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
10. A method for inserting data segments into a flash memory while rebuilding an index for the flash memory, the method comprising:
when the index, which is stored in a volatile memory, to the data segments stored in the flash memory is lost or corrupted and the index is not backed up in the flash memory, rebuilding the index of the flash memory in the volatile memory by; reading headers of containers stored in the flash memory and adding entries to the index based on the headers, wherein each of the entries includes at least an identifier of a segment and a location of the segment in the containers, wherein the headers contain sufficient information to index the segments stored in the containers without accessing the segments stored in the containers; inserting a segment into the flash memory while rebuilding the index, wherein the segment is inserted into one of an unused region of the flash memory or a used region of the flash memory, wherein the insertion of the segment is performed even if the index rebuild is in progress; and updating the index to reflect the inserted segment. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
19. A computing system configured to cache data in a flash memory and configured to rebuild an index, the system comprising:
-
a flash memory configured to cache data segments, wherein the data segments are stored in containers in the flash memory; a memory configured to store an index, wherein the index associates identifiers of the data segments with locations of the data segments in the flash memory; and a processor, the processor configured to execute computer executable instructions for performing a method for rebuilding the index, the method comprising; when the index, which is stored in the memory, to the data segments stored in the flash memory is lost or corrupted and the index is not backed up in the flash memory, rebuilding the index in the memory by; reading headers of the containers stored in the flash memory, wherein the header of each container includes metadata sufficient to index all data segments stored in the container without requiring the data segments stored in the containers to be accessed, wherein the metadata includes an identifier and a location; updating the index using the metadata from the headers; and operating the flash memory in a normal manner while the index is being rebuilt, wherein operations in the flash memory are performed even when the index rebuild is in progress. - View Dependent Claims (20)
-
Specification