Use of deferred write completion interrupts to increase the performance of disk operations
First Claim
1. A method for reliably writing data to a disk drive, the method comprising:
- (a) receiving a write command from a host system;
(b) storing, in a cache, write data that is associated with the write command and that is to be written to the disk drive;
(c) storing an identification of the write command;
(d) flushing the cache to force cached write data to be written to disk media;
(e) in response to (d), retrieving the stored identification of the write command; and
(f) sending a completion interrupt to the host based at least upon the retrieved identification of the write command, whereby the completion interrupt is not sent to the host if a power loss interrupts the completion of the write command after the write data is stored in the cache but before the write data is written to disk media.
4 Assignments
0 Petitions
Accused Products
Abstract
A disk array controller reliably improves performance in RAID configurations without the need for a battery backup. Write completion interrupts are queued until a write cache flush has been performed and are then sent to a host system. States of ranges of disk addresses (activity bins) are stored in nonvolatile storage elements associated with the ranges. The states allow rebuild times to be reduced after power failures and drive failures. A range is in a Changing state if at least one of the addresses is the target of a write operation that has been initiated but not completed. The range is in a Stable state if no addresses are the target of an uncompleted write operation. Two additional states are used to identify ranges of disk addresses that have been zeroed or never been written to. The additional states allow substantial reductions in RAID volume creation times.
-
Citations
12 Claims
-
1. A method for reliably writing data to a disk drive, the method comprising:
-
(a) receiving a write command from a host system;
(b) storing, in a cache, write data that is associated with the write command and that is to be written to the disk drive;
(c) storing an identification of the write command;
(d) flushing the cache to force cached write data to be written to disk media;
(e) in response to (d), retrieving the stored identification of the write command; and
(f) sending a completion interrupt to the host based at least upon the retrieved identification of the write command, whereby the completion interrupt is not sent to the host if a power loss interrupts the completion of the write command after the write data is stored in the cache but before the write data is written to disk media. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
(g) determining that a command has not been received from the host system within a predetermined amount of time after (a); and
(h) performing (d) in response to (g).
-
-
6. The method of claim 1, further comprising:
-
(g) determining that at least a predetermined number of read commands have been received have been received since (a) without an intervening write command; and
(h) performing (d) in response to (g).
-
-
7. The method of claim 1, further comprising:
-
(g) determining that at least a predetermined amount of time has passed since (a); and
(h) performing (d) in response to (g).
-
-
8. The method of claim 7, wherein the write command received in (a) is the first write command received since the cache was last flushed.
-
9. The method of claim 1, wherein the cache is a disk drive write cache.
-
10. The method of claim 1, wherein the cache is an array write cache.
-
11. A method for reliably writing data to a disk drive, the method comprising, on a disk drive controller, for write operations for which write data has been cached by the controller, deferring transmission to a host system of write completion interrupts for the write operations until a cache flush of the write data has been completed, and repeating a cache flush when a command is not received from the host system within a predetermined amount of time after a receipt of a previous command.
-
12. A method for reliably writing data to a disk drive, the method comprising:
-
caching write data of write operations received from a host system;
deferring transmission to a host system of write completion interrupts for the write operations until after any cached write data has been written to a disk medium;
determining that a command has not been received from the host system within a predetermined amount of time after a receipt of a previous command; and
performing a cache flush in response to the determination, wherein the cache flush causes any cached write data to be written to the disk medium.
-
Specification