Hybrid drive caching in a backup system with SSD deletion management
First Claim
1. A data storage system for performing data backup operations, the system comprising:
- a first storage device of a first type;
a second storage device of a second type different than the first type; and
a storage driver implemented in a hardware processor, wherein the storage driver controls cache operations to the first storage device as part of performing storage operations which are part of data backup operations in which data is copied from primary storage to secondary storage, the storage driver configured to;
as part of a data backup operation, read a first data element from the second storage device;
store, in a first data structure in memory, a first indication that the first data element is to be cached in the first storage device;
write the first data element to a buffer maintained in the memory;
determine that the buffer has reached capacity; and
in response to determining that the buffer has reached capacity;
determine whether the first storage device is at capacity;
in response to determining that the first storage device is at capacity, consult a plurality of entries in a second data structure in the memory to identify one or more of a plurality of data elements stored on the first storage device as candidates to discard;
discard one or more of the candidates from the first storage device;
access the first indication from the first data structure to determine that the first data element should be written to the first storage device and write the first data element from the buffer to the first storage device; and
update the second data structure in the memory to include an entry corresponding to the first data element.
2 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods can implement one or more intelligent caching algorithms that reduce wear on the SSD and/or to improve caching performance. Such algorithms can improve storage utilization and I/O efficiency by taking into account the write-wearing limitations of the SSD. Accordingly, the systems and methods can cache to the SSD while avoiding writing too frequently to the SSD to increase or attempt to increase the lifespan of the SSD. The systems and methods may, for instance, write data to the SSD once that data has been read from the hard disk or memory multiple times to avoid or attempt to avoid writing data that has been read only once. The systems and methods may also write large chunks of data to the SSD at once instead of a single unit of data at a time. Further, the systems and methods can write to the SSD in a circular fashion.
94 Citations
14 Claims
-
1. A data storage system for performing data backup operations, the system comprising:
-
a first storage device of a first type; a second storage device of a second type different than the first type; and a storage driver implemented in a hardware processor, wherein the storage driver controls cache operations to the first storage device as part of performing storage operations which are part of data backup operations in which data is copied from primary storage to secondary storage, the storage driver configured to; as part of a data backup operation, read a first data element from the second storage device; store, in a first data structure in memory, a first indication that the first data element is to be cached in the first storage device; write the first data element to a buffer maintained in the memory; determine that the buffer has reached capacity; and in response to determining that the buffer has reached capacity; determine whether the first storage device is at capacity; in response to determining that the first storage device is at capacity, consult a plurality of entries in a second data structure in the memory to identify one or more of a plurality of data elements stored on the first storage device as candidates to discard; discard one or more of the candidates from the first storage device; access the first indication from the first data structure to determine that the first data element should be written to the first storage device and write the first data element from the buffer to the first storage device; and update the second data structure in the memory to include an entry corresponding to the first data element. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method of performing secondary copy operations, comprising:
-
with a storage driver implemented in a hardware processor, wherein the storage driver controls cache operations to a first storage device of a first type as part of performing storage operations which are part of secondary copy operations; reading a first data element from a second storage device of a second type different than the first type; storing, in a first data structure in memory, a first indication that the first data element is to be cached in the first storage device; writing the first data element to a buffer maintained in the memory; determining that the buffer has reached capacity; and in response to determining that the buffer has reached capacity; determining whether the first storage device is at capacity; in response to determining that the first storage device is at capacity, consulting a plurality of entries in a second data structure in the memory to identify one or more of a plurality of data elements stored on the first storage device as candidates to discard; discarding one or more of the candidates from the first storage device; accessing the first indication from the first data structure to determine that the first data element should be written to the first storage device; subsequent to said accessing, writing the first data element from the buffer to the first storage device; and updating the second data structure in the memory to include an entry corresponding to the first data element. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
Specification