Method and apparatus for flushing write cache data
First Claim
1. A method for flushing write cache data, comprising:
- a) receiving a storage request;
b) determining whether said storage request comprises a partial hit with dirty data stored in a cache; and
c) flushing, if the storage request is determined to be a partial hit, the dirty data of the write cache comprising the partial hit.
0 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for flushing a write cache includes receiving a read or a write storage request, determining whether the storage request comprises a full or partial hit with data stored in a write cache one or more lines, some of which may be dirty. If the hit is partial and the one or more lines of the data are dirty, flushing the dirty data. If the hit is full or partial and any of the write cache lines are not dirty, and the storage request is a write request, flushing the dirty write cache lines, invalidating the non dirty write cache line, writing the storage request data into the write cache as a new write cache line and marking the new write cache line dirty. If the hit is full, all write cache lines are marked dirty, and the storage request is a write request, overlaying the cache write line with the storage request data and marking the write cache line as dirty.
97 Citations
13 Claims
-
1. A method for flushing write cache data, comprising:
-
a) receiving a storage request;
b) determining whether said storage request comprises a partial hit with dirty data stored in a cache; and
c) flushing, if the storage request is determined to be a partial hit, the dirty data of the write cache comprising the partial hit. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. In a system having a host computer and a mass storage device, a disk array controller comprising:
-
a) an input/output interface for permitting communication between the host computer, the mass storage controller, and the mass storage device;
b) a write cache having a number of cache lines, some of which cache lines may include dirty data; and
c) an input/output management controller, the input output management controller including i) means for receiving a storage request;
ii) means for determining whether said storage request comprises a partial hit with dirty data stored in a cache; and
iii) means for flushing, if the storage request is determined to be a partial hit, the dirty data of the write cache comprising the partial hit. - View Dependent Claims (10, 11)
-
-
12. A method for caching data, comprising:
-
a) determining whether a host storage request is a write or a read request;
b) determining whether data of the host storage request is fully, partially or not present in a one or more write cache lines of a write cache, some of which may be dirty, the determination representing a full hit, partial hit or a miss;
in response to a write request, c) if the one or more write cache lines comprising a full hit are all marked dirty, overlaying the full-hit write cache lines dirty data with host storage request data;
d) if a hit is full and one or more of the write cache lines comprising the full hit are not marked dirty, invalidating all such full hit non dirty write cache lines, writing the host storage request data to the write cache to create a new write cache line and marking that new write cache line as dirty; and
e) if the host storage request data is partially present and overlapping the write cache data in one or more write cache lines and one or more of these overlapping write cache lines are marked dirty, flushing the one or more of these partial-hit dirty write cache lines to persistent data storage, invalidating any overlapping write cache lines that are not dirty, storing the host storage request data in the write cache as a new write cache line and marking that new write cache line as dirty; and
in response to a read request,f) if any write cache line of a partial hit is marked dirty, flushing the partial-hit dirty write cache line(s) to a persistent data storage device and then reading the requested data from the persistent data storage device. - View Dependent Claims (13)
-
Specification