Accelerated write performance
First Claim
1. A method for accelerating performance when writing a set of sectors to a disk, the method comprising:
- receiving a write command in a computer comprising a disk filter driver and a disk driver;
computing a checksum for each sector in the set of sectors;
storing the computed checksums in a cache memory comprising a plurality of memory slots each configured to store a checksum representing a respective sector;
grouping sets of continuous sectors into regions, each region including at least two contiguous sectors, each region associated with a respective use bit;
comparing each computed checksum with a stored checksum for the corresponding sector;
if all of the sectors in the set of sectors have computed checksums that match their corresponding stored checksums, then using the disk filter driver to complete the write command without submitting the write command to the disk driver;
if at least one sector in the set of sectors has a computed checksum that does not match a corresponding stored checksum, identifying a contiguous sub-set of the set of sectors, the contiguous sub-set comprising at least two sectors, each sector within the contiguous sub-set having a computed checksum that does not match its corresponding stored checksum;
flushing the contiguous sub-set to the disk during a single write operation; and
releasing some of the stored checksums from the cache memory if their corresponding sectors have not been rewritten within a predetermined time period by assigning a first value to all of the use bits during a first pass through the cache memory, assigning a second value to each use bit associated with a region that includes a sector that is associated with a memory slot in which a checksum has been stored, and, during a second pass through the cache memory, clearing the memory slots associated with the sectors within regions corresponding to the use bits to which the first value is assigned and reassigning the first value to the use bits to which the second value is assigned.
2 Assignments
0 Petitions
Accused Products
Abstract
A generic disk driver filter may be used to accelerate performance when writing to a disk. The generic disk driver filter may be connected between a file system and a disk driver and may be configured to be extensible and compatible with a variety of different file systems and different disk drivers. The generic disk driver filter has a filter component that intercepts and filters raw sector write commands from the file system before they are received by the disk driver. The generic disk driver filter may also have a cache memory component that stores a checksum for each sector which is written to the disk. The generic disk driver filter may also have a scavenger thread component that detects and removes latent checksum entries from the cache memory so as to preserve memory availability and reduce memory requirements.
-
Citations
8 Claims
-
1. A method for accelerating performance when writing a set of sectors to a disk, the method comprising:
-
receiving a write command in a computer comprising a disk filter driver and a disk driver; computing a checksum for each sector in the set of sectors; storing the computed checksums in a cache memory comprising a plurality of memory slots each configured to store a checksum representing a respective sector; grouping sets of continuous sectors into regions, each region including at least two contiguous sectors, each region associated with a respective use bit; comparing each computed checksum with a stored checksum for the corresponding sector; if all of the sectors in the set of sectors have computed checksums that match their corresponding stored checksums, then using the disk filter driver to complete the write command without submitting the write command to the disk driver; if at least one sector in the set of sectors has a computed checksum that does not match a corresponding stored checksum, identifying a contiguous sub-set of the set of sectors, the contiguous sub-set comprising at least two sectors, each sector within the contiguous sub-set having a computed checksum that does not match its corresponding stored checksum; flushing the contiguous sub-set to the disk during a single write operation; and releasing some of the stored checksums from the cache memory if their corresponding sectors have not been rewritten within a predetermined time period by assigning a first value to all of the use bits during a first pass through the cache memory, assigning a second value to each use bit associated with a region that includes a sector that is associated with a memory slot in which a checksum has been stored, and, during a second pass through the cache memory, clearing the memory slots associated with the sectors within regions corresponding to the use bits to which the first value is assigned and reassigning the first value to the use bits to which the second value is assigned. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer-readable storage medium having computer-executable instructions that, when executed, cause a computer to perform a method for accelerating performance when writing a set of sectors to a disk, the method comprising steps of:
-
receiving a write command in a computer comprising a disk filter driver and a disk driver; computing a checksum for each sector in the set of sectors; storing the computed checksums in a cache memory comprising a plurality of memory slots each configured to store a checksum representing a respective sector; grouping sets of continuous sectors into regions, each region including at least two contiguous sectors, each region associated with a respective use bit; comparing each computed checksum with a stored checksum for the corresponding sector; if all of the sectors in the set of sectors have computed checksums that match their corresponding stored checksums, then using the disk filter driver to complete the write command without submitting the write command to the disk driver; if at least one sector in the set of sectors has a computed checksum that does not match a corresponding stored checksum, identifying a contiguous sub-set of the set of sectors, the contiguous sub-set comprising at least two sectors, each sector within the contiguous sub-set having a computed checksum that does not match its corresponding stored checksum; flushing the contiguous sub-set to the disk during a single write operation; and releasing some of the stored checksums from the cache memory if their corresponding sectors have not been rewritten within a predetermined time period by assigning a first value to all of the use bits during a first pass through the cache memory, assigning a second value to each use bit associated with a region that includes a sector that is associated with a memory slot in which a checksum has been stored, and, during a second pass through the cache memory, clearing the memory slots associated with the sectors within regions corresponding to the use bits to which the first value is assigned and reassigning the first value to the use bits to which the second value is assigned.
-
-
8. A system for accelerating performance when writing a set of sectors to a disk comprising:
-
a processor; and memory having stored therein computer-executable instructions that, when executed, cause a computer to perform acts comprising; receiving a write command in a computer comprising a disk filter driver and a disk driver; computing a checksum for each sector in the set of sectors; storing the computed checksums in a cache memory comprising a plurality of memory slots each configured to store a checksum representing a respective sector; grouping sets of continuous sectors into regions, each region including at least two contiguous sectors, each region associated with a respective use bit; comparing each computed checksum with a stored checksum for the corresponding sector; if all of the sectors in the set of sectors have computed checksums that match their corresponding stored checksums, then using the dish filter driver to complete the write command without submitting the write command to the disk driver; if at least one sector in the set of sectors has a computed checksum that does not match a corresponding stored checksum, identifying a contiguous sub-set of the set of sectors, the contiguous sub-set comprising at least two sectors, each sector within the contiguous sub-set having a computed checksum that does not match its corresponding stored checksum; flushing the contiguous sub-set to the disk during a single write operation; and releasing some of the stored checksums from the cache memory if their corresponding sectors have not been rewritten within a predetermined time period by assigning a first value to all of the use bits during a first pass through the cache memory, assigning a second value to each use bit associated with a region that includes a sector that is associated with a memory slot in which a checksum has been stored, and, during a second pass through the cache memory, clearing the memory slots associated with the sectors within regions corresponding to the use bits to which the first value is assigned and reassigning the first value to the use bits to which the second value is assigned.
-
Specification