Systems, devices and methods using solid state devices as a caching medium with adaptive striping and mirroring regions

US10019362B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-10019362-B1
Application numberUS-201615145084-A
CountryUS
Kind codeB1
Filing dateMay 3, 2016
Priority dateMay 6, 2015
Publication dateJul 10, 2018
Grant dateJul 10, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

An example method for using a plurality of SSDs as a caching medium in a data storage system can include splitting the SSDs into a plurality of cache regions, maintaining a first cache region of the SSDs as a read cache and maintaining a second cache region of the SSDs as a write cache. Additionally, read data can be stored by striping the read data across the SSDs in the first cache region, and dirty write data can be stored by mirroring the dirty write data across the SSDs in the second cache region. The computer-implemented method can also include dynamically adjusting a size of at least one of the first and second cache regions of the SSDs based on an input/output (“I/O”) load of the data storage system.

First claim

Opening claim text (preview).

What is claimed: 1. A computer-implemented method for using a plurality of solid state devices (“SSDs”) as a caching medium in a data storage system, comprising: splitting the SSDs into a plurality of cache regions; maintaining a first cache region of the SSDs as a write-through cache, wherein data stored in the first cache region is striped across the SSDs; maintaining a second cache region of the SSDs as a write-back cache, wherein data stored in the second cache region is mirrored across the SSDs; dynamically adjusting a size of at least one of the first and second cache regions of the SSDs based on an input/output (“I/O”) load of the data storage system; detecting failure at least one of the SSDs; upon detecting the failure, persisting one or more blocks of data stored in the second cache region of an operational SSD to the data storage system; and maintaining the second cache region of the operational SSD as a write-through cache. 2. The computer-implemented method of claim 1 , wherein dynamically adjusting a size of at least one of the first and second cache regions of the SSDs based on the I/O load of the data storage system further comprises: expanding a size of the second cache region as the I/O load of the data storage system increases; or reducing a size of the second cache region as the I/O load of the data storage system decreases. 3. The computer-implemented method of claim 1 , wherein upon restoring or replacing the failed at least one SSDs, the computer-implemented method further comprises restoring the second cache region of the operational SSD to operation as a write-back cache. 4. The computer-implemented method of claim 1 , further comprising tracking valid data stored in the first cache region of the SSDs without maintaining a valid bitmap by: for each read I/O operation that is not previously stored in the first cache region of the SSDs and that requests a data chunk with a size less than an SSD block size from the data storage system, reading a data block from the data storage system including the data chunk, wherein the data block has a size equal to the SSD block size; and storing the data block in the first cache region of the SSDs. 5. The computer-implemented method of claim 1 , further comprising tracking dirty data stored in the second cache region of the SSDs with a dirty bitmap for each SSD block of the second cache region of the SSDs, wherein each bit in the dirty bitmap corresponds to an SSD page size, by: for each write I/O operation directed to a data chunk with a size less than the SSD page size in the data storage system, reading a data block from the data storage system including the data chunk, wherein the data block has a size equal to the SSD page size; modifying the data block according to the write I/O operation; and storing the modified data block in the second cache region of the SSDs. 6. The computer-implemented method of claim 1 , further comprising: receiving a TRIM command from the data storage system in response to invalidation of one or more cache lines of the SSDs; and wiping the invalidated one or more cache lines from the first cache region of the SSDs. 7. The computer-implemented method of claim 1 , further comprising: receiving a TRIM command from the data storage system in response to flushing one or more cache lines of the SSDs to the data storage system; and wiping the flushed one or more cache lines from the second cache region of the SSDs. 8. The computer-implemented method of claim 1 , wherein the first cache region of the SSDs is maintained as a RAID 0 array. 9. The computer-implemented method of claim 1 , wherein the second cache region of the SSDs is maintained as a RAID 1 array. 10. A non-transitory computer-readable recording medium having computer-executable instructions stored thereon for using a plurality of solid state devices (“SSDs”) as a caching medium in a data storage system that, when executed by a storage server computer, cause the storage server computer to: split the SSDs into a plurality of cache regions; maintain a first cache region of the SSDs as a write-through cache, wherein data stored in the first cache region is striped across the SSDs; maintain a second cache region of the SSDs as a write-back cache, wherein data stored in the second cache region is mirrored across the SSDs; dynamically adjust a size of at least one of the first and second cache regions of the SSDs based on an input/output (“I/O”) load of the data storage system; detect failure of at least one of the SSDs; upon detecting the failure, persist one or more blocks of data stored in the second cache region of an operational SSD to the data storage system; and maintain the second cache region of the operational SSD as a write-through cache. 11. The non-transitory computer-readable recording medium of claim 10 , wherein dynamically adjusting a size of at least one of the first and second cache regions of the SSDs based on the I/O load of the data storage system further comprises: expanding a size of the second cache region as the I/O load of the data storage system increases; or reducing a size of the second cache region as the I/O load of the data storage system decreases. 12. The non-transitory computer-readable recording medium of claim 10 , having further computer-executable instructions stored thereon that, when executed by the storage server computer, cause the storage server computer to, upon restoring or replacing the failed at least one of the SSDs, restore the second cache region of the operational SSD to operation as a write-back cache. 13. The non-transitory computer-readable recording medium of claim 10 , having further computer-executable instructions stored thereon that, when executed by the storage server computer, cause the storage server computer to track valid data stored in the first cache region of the SSDs without maintaining a valid bitmap by: for each read I/O operation that is not previously stored in the first cache region of the SSDs and that requests a data chunk with a size less than an SSD block size from the data storage system, reading a data block from the data storage system including the data chunk, wherein the data block has a size equal to the SSD block size; and storing the data block in the first cache region of the SSDs. 14. The non-transitory computer-readable recording medium of claim 10 , having further computer-executable instructions stored thereon that, when executed by the storage server computer, cause the storage server computer to track dirty data stored in the second cache region of the SSDs with a dirty bitmap for each SSD block of the second cache region of the SSDs, wherein each bit in the dirty bitmap corresponds to an SSD page size, by: for each write I/O operation directed to a data chunk with a size less than the SSD page size in the data storage system, reading a data block from the data storage system including the data chunk, wherein the data block has a size equal to the SSD page size; modifying the data block according to the write I/O operation; and storing the modified data block in the second cache region of the SSDs. 15. A storage server computer for using a plurality of solid state devices (“SSDs”) as a caching medium in a data storage system, the data storage system including a plurality of mass storage devices, the storage server computer comprising: a processing unit; and a memory operably coupled to the processing unit, the memory having computer-executable instructions stored thereon that, when executed by the processing unit, cause the storage server c

Assignees

Inventors

Classifications

  • Partitioned cache · CPC title

  • in relation to data integrity, e.g. data losses, bit errors · CPC title

  • Non-volatile semiconductor memory arrays · CPC title

  • using more than 2 mirrored copies · CPC title

  • by allocating resources to storage systems · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10019362B1 cover?
An example method for using a plurality of SSDs as a caching medium in a data storage system can include splitting the SSDs into a plurality of cache regions, maintaining a first cache region of the SSDs as a read cache and maintaining a second cache region of the SSDs as a write cache. Additionally, read data can be stored by striping the read data across the SSDs in the first cache region, an…
Who is the assignee on this patent?
American Megatrends Inc
What technology area does this patent fall under?
Primary CPC classification G06F11/2069. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jul 10 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).