IP Library Granted Patent US 10,394,458
Granted Patent B2
US 10,394,458 · App. 16/002,393 · Granted Aug 27, 2019

Hybrid drive caching in a backup system with SSD deletion management

Inventors: Amit Mitkar (Manalapan, NJ); Andrei Erofeev (Marlboro, NJ)
Assignee: Commvault Systems, Inc.
G06F3/061G06F3/065G06F3/0616G06F3/0653G06F3/0655G06F3/0659G06F3/0685G06F12/0871G06F12/0873G06F2212/1016G06F2212/1036G06F2212/281G06F2212/305
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,394,458
App. No.
16/002,393
Granted
Aug 27, 2019
Kind
B2
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.

Claims (39)

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. The system of claim 1 , wherein the first indication comprises a pointer to the first data element.

3. The system of claim 1 , wherein the storage driver is further configured to first cache the first data element in a memory cache prior to caching the first data element in the first storage device.

4. The system of claim 3 , wherein the storage driver is further configured to cache the first data element in the first storage device in response to the memory cache reaching capacity even if the buffer has not reached capacity.

5. The system of claim 1 , wherein the storage driver is further configured to evict the first data element from the first storage device in response to receiving a write to the first data element.

6. The system of claim 1 , wherein the first storage device is a solid-state drive.

7. The system of claim 6 , wherein the first storage device is a hard disk.

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.

9. The method of claim 8 , wherein the first indication comprises a pointer to the first data element.

10. The method of claim 8 , further comprising first caching the first data element in a memory cache prior to caching the first data element in the first storage device.

11. The method of claim 10 , further comprising caching the first data element in the first storage device in response to the memory cache reaching capacity even if the buffer has not reached capacity.

12. The method of claim 8 , further comprising evicting the first data element from the first storage device in response to receiving a write to the first data element.

13. The method of claim 8 , wherein the first storage device is a solid-state drive.

14. The method of claim 13 , wherein the first storage device is a hard disk.

Assignments (2)
SECURITY INTEREST Recorded Dec 13, 2021
From: COMMVAULT SYSTEMS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 058496/0836 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 8, 2018
From: MITKAR, AMIT; EROFEEV, ANDREI
To: COMMVAULT SYSTEMS, INC.
Reel/Frame 046033/0100 →
Continuity (3)
Continuation 15282944 · Sep 30, 2016
Continuation 14597665 · Jan 15, 2015
Related Publication 20190012082A1 · Jan 10, 2019