Intelligent hybrid drive caching
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
exact text as granted — not AI-modifiedWhat is claimed is:
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.Join the waitlist — get patent alerts
Track US2016210044A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.