IP Library Patent Application 14597665
Patent Application
App. No. 14/597,665

INTELLIGENT HYBRID DRIVE CACHING

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 None
App. No.
14/597,665
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 (41)

1 . A method of caching in a storage system comprising a hard disk and a solid-state drive, the method comprising:

receiving a first read request to read a first page from a hybrid drive comprising a hard disk and a solid-state drive (SSD), the SSD operating as a cache for the hard disk and having a faster read speed than the hard disk;

determining whether the first page is located in the SSD;

in response to determining that the first page is not located in the SSD, reading the first page from the hard disk, but not caching the first page in the SSD yet to attempt to avoid unnecessarily writing to the SSD should the first page not be read again in the near future, to attempt to reduce wear on the SSD;

receiving a subsequent read request to read the first page from the hybrid drive;

in response to receiving the subsequent read request:

reading the first page from the hard disk or from memory if the first page is in the memory, and

using a processor to mark the first page for caching in the SSD while waiting to cache the first page in the SSD until other pages have also been indicated as ready for caching, so as to attempt to avoid wastefully writing individual pages to the SSD and thereby attempt to reduce wear on the SSD;

in response to determining that a predetermined number of pages have been indicated as ready for caching, including the first page, writing the first page and the other pages indicated as ready for caching to the SSD together so as to efficiently write the pages indicated as ready for caching to the SSD and to attempt to reduce wear on the SSD.

2 . The method of claim 1 , further comprising first caching the first page in a memory cache in the memory prior to caching the first page in the SSD.

3 . The method of claim 1 , further comprising maintaining a hash table in the memory, the hash table configured to map the first page and the other pages indicated as ready for caching to a storage location in either the memory or the SSD.

4 . The method of claim 1 , wherein the first read request and the subsequent read request relate to backup operations.

5 . A system for caching in a storage system comprising a hard disk and a solid-state drive, the system comprising:

a storage driver implemented in a hardware processor comprising executable instructions configured to:

receive a first request to read a first data element from a storage system comprising a hard disk and a solid-state drive (SSD), the SSD operating as a cache for the hard disk;

read the first data element from the hard disk;

receive a second request to read the first data element from the storage system;

in response to reception of the second read request, indicate that the first data element is ready for caching in the SSD;

determine whether a predetermined quantity of data elements have been indicated as ready for caching in addition to and including the first data element; and

in response to a determination that the predetermined quantity of data elements have been indicated as ready for caching, write the data elements indicated as ready for caching, including the first data element, together to the SSD.

6 . The system of claim 5 , wherein the storage driver is further configured to maintain a data structure in the memory, the data structure configured to map the data elements indicated as ready for caching to a storage location in either the memory or the SSD.

7 . The system of claim 6 , wherein the data structure is a hash table indexed at least by data element identifiers.

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

9 . The system of claim 5 , wherein the storage driver is further configured to write the data elements indicated as ready for caching to the SSD in a circular manner to reduce wear on the SSD.

10 . The system of claim 5 , wherein the storage driver is further configured to cache the first data element in the memory prior to writing the data element to the SSD, and wherein the storage driver is further configured to evict the first data element from the memory in response to writing the data element to the SSD.

11 . The system of claim 5 , wherein the quantity of data elements corresponds to one or both of size of the data elements and number of the data elements.

12 . The system of claim 5 , wherein the storage driver comprises an interface to one or both of a file system and a database, from which the first and second read request are received.

13 . The system of claim 5 , further comprising a hybrid drive.

14 . A system for caching, the system comprising:

a hardware processor configured to:

read a first data element from a hard disk;

store a first indication in memory that the first data element is to be cached in a solid-state drive (SSD) without actually caching the first data element in the SSD;

read a second data element from the hard disk;

store a second indication in the memory that the second data element is to be cached in the SSD; and

subsequent to storage of the second indication in the memory, cache the first and second data elements in the SSD.

15 . The system of claim 14 , wherein the hardware processor is further configured to store the first and second indication in a buffer in memory.

16 . The system of claim 15 , wherein the first and second indication comprise pointers to the first and second data elements.

17 . The system of claim 15 , wherein the hardware processor is further configured to cache the first and second data elements in the SSD in response to the buffer reaching capacity.

18 . The system of claim 15 , wherein the hardware processor is further configured to first cache the first and second data elements in a memory cache prior to caching the first and second data elements in the SSD.

19 . The system of claim 18 , wherein the hardware processor is further configured to cache the first and second data elements in the SSD in response to the memory cache reaching capacity even if the buffer has not reached capacity.

20 . The system of claim 14 , wherein the hardware processor is further configured to evict the first data element from the SSD in response to receiving a write to the first data element.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 20, 2015
From: MITKAR, AMIT; EROFEEV, ANDREI
To: COMMVAULT SYSTEMS, INC.
Reel/Frame 034755/0578 →