Method to optimize random IOS of a storage device for multiple versions of backups using incremental metadata
First Claim
1. A computer-implemented method for optimizing a cache memory device of a storage system, the method comprising:
- caching a first base segment tree in a cache memory device, the first base segment tree representing deduplicated segments of a file that is stored in a storage disk of a storage system;
in response to a plurality of changes of the file subsequently received from a client at different points in time, caching in the cache memory device a plurality of incremental segment trees corresponding to the changes of the file, without modifying the first base segment tree in response to the changes, wherein one or more of the incremental segment trees together with the first base segment tree collectively represent a different one of the changes at a particular time; and
merging two or more of the incremental segment trees into an updated incremental segment tree to reduce a storage space of the cache memory device to store the incremental segment trees, wherein the updated incremental segment tree comprises data and metadata represented by two or more incremental segment trees, wherein merging two or more of the incremental segment trees into an updated incremental segment tree comprises;
determining whether two or more of the incremental segment trees stored in the cache memory device exceeds a predetermined threshold;
when the predetermined threshold is exceeded, merging the two or more of the incremental segment trees into the undated incremental segment tree; and
removing at least one of the two or more incremental segment trees from the cache memory device.
9 Assignments
0 Petitions
Accused Products
Abstract
Methods, systems, and apparatus for optimizing a cache memory device of a storage system are described. In one embodiment, a first base segment tree representing a first full backup including data and metadata describing the data is cached in a cache memory device. Subsequently, a plurality of incremental segment trees representing incremental backups to the first full backup are cached in the cache memory device. Each of incremental segment trees corresponding to the changes to the first full backup, without modifying the first base segment tree in response to the changes. At least two of the incremental segment trees are merged into an updated incremental segment tree to reduce a storage space of the cache memory device to store the incremental segment trees. The updated incremental segment tree comprises data and metadata represented by two or more incremental segment trees.
68 Citations
18 Claims
-
1. A computer-implemented method for optimizing a cache memory device of a storage system, the method comprising:
-
caching a first base segment tree in a cache memory device, the first base segment tree representing deduplicated segments of a file that is stored in a storage disk of a storage system; in response to a plurality of changes of the file subsequently received from a client at different points in time, caching in the cache memory device a plurality of incremental segment trees corresponding to the changes of the file, without modifying the first base segment tree in response to the changes, wherein one or more of the incremental segment trees together with the first base segment tree collectively represent a different one of the changes at a particular time; and merging two or more of the incremental segment trees into an updated incremental segment tree to reduce a storage space of the cache memory device to store the incremental segment trees, wherein the updated incremental segment tree comprises data and metadata represented by two or more incremental segment trees, wherein merging two or more of the incremental segment trees into an updated incremental segment tree comprises; determining whether two or more of the incremental segment trees stored in the cache memory device exceeds a predetermined threshold; when the predetermined threshold is exceeded, merging the two or more of the incremental segment trees into the undated incremental segment tree; and removing at least one of the two or more incremental segment trees from the cache memory device. - View Dependent Claims (2, 3, 4)
-
-
5. A computer-implemented method for optimizing a cache memory device of a storage system, the method comprising:
-
caching a first base segment tree in a cache memory device, the first base segment tree representing deduplicated segments of a file that is stored in a storage disk of a storage system; in response to a plurality of changes of the file subsequently received from a client at different points in time, caching in the cache memory device a plurality of incremental segment trees corresponding to the changes of the file, without modifying the first base segment tree in response to the changes, wherein one or more of the incremental segment trees together with the first base segment tree collectively represent a different one of the changes at a particular time; merging two or more of the incremental segment trees into an updated incremental segment tree to reduce a storage space of the cache memory device to store the incremental segment trees, wherein the updated incremental segment tree comprises data and metadata represented by two or more incremental segment trees; determining whether a number of merges of incremental segment trees exceeds a predetermined threshold; when the number of merges exceeds the predetermined threshold, merging the updated incremental segment tree with the first base segment tree to generate a second base segment tree, the second base segment tree being an updated base segment that includes data and metadata of both the first base segment tree and the updated incremental segment tree; and storing the second base segment tree in the storage disk to replace the first base segment tree stored therein. - View Dependent Claims (6)
-
-
7. A storage system, comprising:
-
one or more storage units configured to; store a first base segment tree, the first base segment tree representing deduplicated segments of a file that is stored in the one or more storage units; and a cache memory device configured to; cache the first base segment tree; in response to a plurality of changes of the file subsequently received from a client at different points in time, cache a plurality of incremental segment trees corresponding to the changes of the file, without modifying the first base segment tree in response to the changes, wherein one or more of the incremental segment trees together with the first base segment tree collectively represent a different one of the changes at a particular time; and merge two or more of the incremental segment trees into an updated incremental segment tree to reduce a storage space of the cache memory device to store the incremental segment trees, wherein the updated incremental segment tree comprises data and metadata represented by two or more incremental segment trees, wherein merging two or more of the incremental segment trees into an updated incremental segment tree comprises; determining whether two or more of the incremental segment trees stored in the cache memory device exceeds a predetermined threshold; when the predetermined threshold is exceeded, merging the two or more of the incremental segment trees into the updated incremental segment tree; and removing at least one of the two or more incremental segment trees from the cache memory device. - View Dependent Claims (8, 9, 10)
-
-
11. A storage system comprising:
-
one or more storage units configured to; store a first base segment tree, the first base segment tree representing deduplicated segments of a file that is stored in the one or more storage units; a cache memory device configured to; cache the first base segment tree; in response to a plurality of changes of the file subsequently received from a client at different points in time, cache a plurality of incremental segment trees corresponding to the changes of the file, without modifying the first base segment tree in response to the changes, wherein one or more of the incremental segment trees together with the first base segment tree collectively represent a different one of the changes at a particular time; and merge two or more of the incremental segment trees into an updated incremental segment tree to reduce a storage space of the cache memory device to store the incremental segment trees, wherein the updated incremental segment tree comprises data and metadata represented by two or more incremental segment trees; and a storage/cache manager executed on a processor that is configured to; determine whether a number of merges of incremental segment trees exceeds a predetermined threshold; when the number of merges exceeds the predetermined threshold, the cache memory device is further configured to; merge the updated incremental segment tree with the first base segment tree to generate a second base segment tree, the second base segment tree being an updated base segment that includes data and metadata of both the first base segment tree and the updated incremental segment tree; and the one or more storage units are further configured to; store the second base segment tree to replace the first base segment tree stored therein. - View Dependent Claims (12)
-
-
13. A non-transitory computer-readable storage medium having instructions stored therein, which when executed by a processor, cause the processor to perform operations for optimizing a cache memory device of a storage system, the operations comprising:
-
caching a first base segment tree in a cache memory device, the first base segment tree representing deduplicated segments of a file that is stored in a storage disk of a storage system; in response to a plurality of changes of the file subsequently received from a client at different points in time, caching in the cache memory device a plurality of incremental segment trees corresponding to the changes of the file, without modifying the first base segment tree in response to the changes, wherein one or more of the incremental segment trees together with the first base segment tree collectively represent a different one of the changes at a particular time; merging two or more of the incremental segment trees into an updated incremental segment tree to reduce a storage space of the cache memory device to store the incremental segment trees, wherein the updated incremental segment tree comprises data and metadata represented by two or more incremental segment trees, wherein merging two or more of the incremental segment trees into an updated incremental segment tree comprises; determining whether two or more of the incremental segment trees stored in the cache memory device exceeds a predetermined threshold; when the predetermined threshold is exceeded, merging the two or more of the incremental segment trees into the undated incremental segment tree; and removing at least one of the two or more incremental segment trees from the cache memory device. - View Dependent Claims (14, 15, 16)
-
-
17. A non-transitory computer-readable storage medium having instructions stored therein, which when executed by a processor, cause the processor to perform operations for optimizing a cache memory device of a storage system, the operations comprising:
-
caching a first base segment tree in a cache memory device, the first base segment tree representing deduplicated segments of a file that is stored in a storage disk of a storage system; in response to a plurality of changes of the file subsequently received from a client at different points in time, caching in the cache memory device a plurality of incremental segment trees corresponding to the changes of the file, without modifying the first base segment tree in response to the changes, wherein one or more of the incremental segment trees together with the first base segment tree collectively represent a different one of the changes at a particular time; merging two or more of the incremental segment trees into an updated incremental segment tree to reduce a storage space of the cache memory device to store the incremental segment trees, wherein the updated incremental segment tree comprises data and metadata represented by two or more incremental segment trees; determining whether a number of merges of incremental segment trees exceeds a predetermined threshold; when the number of merges exceeds the predetermined threshold, merging the updated incremental segment tree with the first base segment tree to generate a second base segment tree, the second base segment tree being an updated base segment that includes data and metadata of both the first base segment tree and the updated incremental segment tree; and storing the second base segment tree in the storage disk to replace the first base segment tree stored therein. - View Dependent Claims (18)
-
Specification