Patentable/Patents/US-6516380
US-6516380

System and method for a log-based non-volatile write cache in a storage controller

PublishedFebruary 4, 2003
Assigneenot available in USPTO data we have
Inventorsnot available in USPTO data we have
Technical Abstract

A computer-implemented method and system for accelerating writes to a storage controller by performing log-based sequential write caching of data to be written on a storage device. The data in the log is moved to the storage array later when the system is less active. As a result, random writes are converted to sequential writes. Overall, performance improves since the performance of sequential writes far exceeds that of random writes. A write command containing data is received in a data storage controller, wherein the data storage controller includes a write cache having a sequential log. The data storage controller also includes an index structure indicating the location of data in the sequential log. If the data does not already exist on the log, the data is written to the log contained in the write cache at a location recorded in the index structure. If the data already exists on the log as indicated by the index structure, the data on the index structure is invalidated and the new data is written on the log at an available location determined by the index structure. When an idle period exists, data in the log from a plurality of write commands is transferred to the data storage medium.

Patent Claims
27 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A computer-implemented method for storing information on a data storage medium comprising: receiving a write command containing data in a data storage controller, the data storage controller including a write cache having a sequential log, the data storage controller also including an index structure indicating the location of data in the sequential log; determining if the data already exists on the log, and if not, writing the data on the log contained in the write cache at a location recorded in the index structure; if the data already exists on the log as indicated by the index structure, invalidating the data on the index structure and writing the new data on the log at an available location determined by the index structure; and determining if a migration condition exists, and if so, transferring data in the log from a plurality of write commands to the data storage medium.

2

2. The method of claim 1 further comprising the step of advancing a pointer on the index structure to the next location on the log after data is written to the log.

3

3. The method of claim 1 wherein the data storage medium is an array of Hard Disk Drives (HDDs).

4

4. The method of claim 3 , wherein the step of transferring data from the log to the HDDs is according to a RAID-5 configuration.

5

5. The method of claim 4 , wherein the log is stored on HDDs and is organized according to a predetermined level of a RAID configuration.

6

6. The method of claim 5 further including the step of determining if an exceptional condition exists and if so, disabling the write cache and bypassing the write cache when storing data in response to a write request.

7

7. The method of claim 6 wherein the step of determining if an exceptional condition exists includes either the step of determining if the available memory space in the storage controller for the index structure is below a predetermined threshold, or determining if the available memory space for the log in the write cache is below a predetermined.

8

8. The method of claim 1 wherein the step of determining if a migration condition exists includes at least one of the following steps: the frequency of the receipt of write requests is below a predetermined threshold, or the amount of data in the log is above a predetermined threshold, or the amount of data in the index structure is too large, or a predetermined period of time has elapsed.

9

9. The method of claim 1 wherein the step of receiving the write command includes the steps of obtaining the parameters of the write command, including the logical drive, the offset, and the amount of data to be written.

10

10. The method of claim 1 wherein the step of receiving the write command includes the step of temporarily storing the data in the write command in either a volatile write-through or a write-back cache prior to the transfer of the data to the write cache containing the log.

11

11. The method of claim 1 wherein the write cache is a non-volatile write cache.

12

12. The method of claim 1 further comprising the step of transferring the data in the write command to a staging buffer to optimize writes to the log in the write cache.

13

13. A system for storing information on a data storage medium comprising: data controller including a write cache having a sequential log, the data controller also including an index structure indicating the location of data in the sequential log; means for receiving a write command containing data; means for determining if the data already exists on the log, and if not, writing the data on the log at a location recorded in the index structure; means for invalidating the data on the index structure and writing the new data on the log at an available location determined by the index structure if the data already exists on the log as indicated by the index structure; and means for determining if a migration condition exists, and if so, transferring data in the log from a plurality of write commands to the data storage medium.

14

14. The system of claim 13 further comprising a pointer on the index structure, which is advanced to the next location on the log after data, is written to the log.

15

15. The system of claim 13 wherein the data storage device is an array of Hard Disk Drives (HDDs).

16

16. The system of claim 15 , wherein the data on the HDDs is organized according to a RAID-5 configuration.

17

17. The system claim 13 , wherein the log is stored on HDDs and is organized according to a predetermined level of a RAID configuration.

18

18. The system of claim 13 further including means for determining if an exceptional condition exists and if so, disabling the write cache and bypassing the write cache when storing data in response to a write request.

19

19. The system of claim 18 wherein the means for determining if an exceptional condition exists includes means for determining if the available memory space in the storage controller for the index structure is below a predetermined threshold, or if the available memory space for the log in the write cache is below a predetermined.

20

20. The system of claim 13 wherein the means for determining if a migration condition exists determines at least one of the following conditions: the frequency of the receipt of write requests is below a predetermined threshold; the amount of data in the log is above a predetermined threshold; the amount of data in the index structure is too large; or a predetermined period of time has elapsed.

21

21. The system of claim 13 further comprising ether a volatile write-through or a write-back cache for temporarily storing data in the write command prior to the transfer of the data to the write cache containing the log.

22

22. The system of claim 13 wherein the write cache is a non-volatile cache.

23

23. The system of claim 13 further comprising a staging buffer receiving the data in the write command to optimize writes to the log in the write cache.

24

24. The system of claim 13 wherein the index structure includes a segment map and a segment directory which maintain location information for data written to the log drive.

25

25. The system of claim 24 , wherein the segment map includes lock fields that are set when a write command is currently operating.

26

26. The system of claim 24 wherein segment map includes link fields that chain the segment map to a segment map immediately succeeding it in the log drive.

27

27. A computer program product, comprising: a computer program storage device; computer-readable instructions on the storage device for causing a computer to undertake method acts to facilitate the storing of data on a data storage medium by a data storage controller, the method acts comprising: receiving a write command containing data in the data storage controller, the data storage controller including a write cache having a sequential log, the data storage controller also including an index structure indicating the location of data in the sequential log; determining if the data already exists on the log, and if not, writing the data on the log contained in the write cache at a location recorded in the index structure; if the data already exists on the log as indicated by the index structure, invalidating the data on the index structure and writing the new data on the log at an available location determined by the index structure; and determining if a migration condition exists, and if so, transferring data in the log from a plurality of write commands to the data storage medium.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

February 5, 2001

Publication Date

February 4, 2003

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “System and method for a log-based non-volatile write cache in a storage controller” (US-6516380). https://patentable.app/patents/US-6516380

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.