Methods and systems of cache memory management and snapshot operations
First Claim
1. A cache memory management system in a data storage system, comprising:
- a cache memory including a cache directory including a hash table, hash table elements, and cache line descriptors and a plurality of cache lines, wherein a first cache line descriptor has a one-to-one association with a first cache line; and
a cache manager using a hashing function to convert a first request for data to index to a first hash table pointer and a second request for data to index to a second hash table pointer in the hash table, wherein the first hash table pointer points to a first hash table element and the second hash table pointer points to a second hash table element of a linked list of hash table elements in the cache directory, wherein the first hash table element and the second hash table element point to the first cache line descriptor in the cache directory.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention relates to a cache memory management system suitable for use with snapshot applications. The system includes a cache directory including a hash table, hash table elements, cache line descriptors, and cache line functional pointers, and a cache manager running a hashing function that converts a request for data from an application to an index to a first hash table pointer in the hash table. The first hash table pointer in turn points to a first hash table element in a linked list of hash table elements where one of the hash table elements of the linked list of hash table elements points to a first cache line descriptor in the cache directory and a cache memory including a plurality of cache lines, wherein the first cache line descriptor has a one-to-one association with a first cache line. The present invention also provides for a method converting a request for data to an input to a hashing function, addressing a hash table based on a first index output from the hashing function, searching the hash table elements pointed to by the first index for the requested data, determining the requested data is not in cache memory, and allocating a first hash table element and a first cache line descriptor that associates with a first cache line in the cache memory.
-
Citations
65 Claims
-
1. A cache memory management system in a data storage system, comprising:
-
a cache memory including a cache directory including a hash table, hash table elements, and cache line descriptors and a plurality of cache lines, wherein a first cache line descriptor has a one-to-one association with a first cache line; and a cache manager using a hashing function to convert a first request for data to index to a first hash table pointer and a second request for data to index to a second hash table pointer in the hash table, wherein the first hash table pointer points to a first hash table element and the second hash table pointer points to a second hash table element of a linked list of hash table elements in the cache directory, wherein the first hash table element and the second hash table element point to the first cache line descriptor in the cache directory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 44, 45, 46, 47, 48, 49, 50, 51, 52, 65)
-
-
16. A cache memory management system in a data storage system, comprising:
-
a cache memory including a cache directory including search elements and cache line descriptors and a plurality of cache lines, wherein a first cache line descriptor has a one-to-one association with a first cache line; a cache manager receiving a plurality of requests for data and using a search algorithm to locate a first search element and a second search element that point to the first cache line descriptor a source VLUN that includes a storage space corresponding to the first cache line; and a target VLUN pointing to the storage space of the source VLUN corresponding to the first cache line. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 53, 54, 55, 56, 57, 58)
-
-
30. A method in a cache memory management system, comprising:
-
converting a first request for data to a first input to a hashing function; addressing a hash table based on a first index output from the hashing function; searching the hash table elements pointed to by the first index for the data; determining the data is not in cache memory; allocating a first hash table element and a first cache line descriptor that associates with a first cache line in cache memory; staging the data from a source VLUN to the first cache line; converting a second request from a snapshot application for the data to a second input to the hashing function; addressing the hash table based on a second index output from the hashing function; searching the hash table elements pointed to by the second index for the data; determining the data is in cache memory; and allocating a second hash table element that points to the first cache line descriptor. - View Dependent Claims (31, 32, 33, 34, 35, 36, 59, 60, 61, 62, 63, 64)
-
-
37. A method in a cache memory management system, comprising:
-
receiving a request for data from a first application; determining the requested data is not in cache memory; allocating a first search element and a first cache line descriptor that associate with a first cache line in cache memory; staging the data from a source VLUN to the first cache line; receiving another request for the data from a snapshot application; and allocating a second search element, wherein the second search element and the first cache line descriptor associate with the first cache line in cache memory. - View Dependent Claims (38, 39, 40, 41, 42, 43)
-
Specification