Extending flash drive lifespan
View Patent ↗In a computer-implemented method for filtering input/output operations of a flash drive, an input/output request directed toward a flash drive is received. It is determined whether the input/output request is associated with a high volume write operation. If the input/output request is associated with the high volume write operation, a flash drive input/output management action to perform is selected. If the input/output request is not associated with the high volume write operation, the input/output request is forwarded to the flash drive.
1. A computer-implemented method for filtering input/output operations of a flash drive, said method comprising:
receiving an input/output request, said input/output request directed toward said flash drive; and
performing at least one of:
in response to determining said input/output request is associated with a high frequency write operation, selecting at least one flash drive input/output management action to perform from a group of flash drive management actions consisting of managing compressing of data being written as a result of said input/output request, managing decompressing of compressed data being read as a result of said input/output request, managing buffering of said input/output request, and managing redirecting of said input/output request to a peripheral solid state storage drive; or
determining whether said input/output request is associated with a low importance write operation;
in response to determining said input/output request is not associated with said low importance write operation, forwarding said input/output request to said flash drive; and
in response to determining said input/output request is associated with said high frequency write operation and is not associated with said low importance write operation, deselecting said at least one flash drive input/output management action to perform.
2. The computer-implemented method as recited in claim 1 , comprising determining if said input/output request is associated with at least one of a paging file, a prefetching operation, or a search indexing operation to determine if said input/output request is associated with said high frequency write operation.
3. The computer-implemented method as recited in claim 1 , said at least one flash drive input/output management action comprising managing compressing of data being written as a result of said input/output request, said managing compressing of data comprising:
compressing data of a paging file associated with an operating system.
4. The computer-implemented method as recited in claim 1 , said at least one flash drive input/output management action comprising managing compressing of data being written as a result of said input/output request, said managing compressing of data comprising:
compressing data of a file associated with a prefetching operation.
5. The computer-implemented method as recited in claim 1 , said at least one flash drive input/output management action comprising managing compressing of data being written as a result of said input/output request, said managing compressing of data comprising:
compressing data of a file associated with a search indexing operation.
6. The computer-implemented method as recited in claim 1 , said at least one flash drive input/output management action comprising managing compressing of data being written as a result of said input/output request, said managing compressing of data comprising:
writing compressed data of said input/output request to a buffer.
7. The computer-implemented method as recited in claim 6 , said at least one flash drive input/output management action comprising managing compressing of data being written as a result of said input/output request, said managing compressing of data comprising:
writing said compressed data from said buffer to said flash drive.
8. The computer-implemented method of claim 1 , comprising writing data associated with said high frequency write operation to a buffer instead of to said flash drive.
9. A module for reducing write operations to a flash drive, said module comprising:
a flash drive filter configured for coupling with said flash drive, said flash drive filter configured for intercepting an input/output request directed toward said flash drive, said flash drive filter comprising:
an input/output nature determiner for determining a nature of said input/output request;
a flash drive input/output management selector for selecting a flash drive input/output management action based at least in part upon said nature of said input/output request being associated with a high frequency write operation;
a flash drive input/output manager, said flash drive input/output manager configured for managing performance of said flash drive input/output management action which contributes towards reducing write operations to said flash drive; and
a buffer manager coupled to a buffer, said buffer manager configured to:
receive said input/output request when said flash drive filter buffers said input/output request in said buffer; and
resolve at least one of repeated data, redundant data, or overlapping written data within said buffer.
10. The module of claim 9 , wherein said flash drive filter comprising:
a coupling to a compression/decompression module, said compression/decompression module configured for compressing selected write operations directed toward said flash drive and decompressing compressed data read from said flash drive.
11. The module of claim 9 , said flash drive input/output management selector configured to select said flash drive input/output management action based at least in part upon whether said input/output request is associated with a low importance write operation.
12. The module of claim 9 , said buffer manager configured to write a first version of data from said buffer to said flash drive in response to an expiration of a time delay associated with said buffer.
13. The module of claim 9 , said buffer manager configured to update a first version of data within said buffer upon determining a second version of said data is written to said buffer.
14. A computer-readable medium having computer- executable instructions for performing a method comprising:
receiving an input/output request, said input/output request directed toward a flash drive;
determining a nature of said input/output request; and
performing at least one of the following based on said nature of said input/output request being associated with a high frequency write operation:
performing a first flash drive input/output management action comprising:
writing data associated with said high frequency write operation to a first buffer instead of to said flash drive; and
in response to an expiration of a time delay associated with said first buffer, writing said data from said first buffer to said flash drive; or performing a second flash drive input/output management action comprising:
compressing data associated with said high frequency write operation;
writing said compressed data to a second buffer instead of to said flash drive;
resolving a version of said compressed data that is at least one of repeated or overlapping into an updated compressed data; and
in response to a buffer threshold associated with said second buffer being exceeded, writing said updated compressed data from said second buffer to said flash drive.
15. The computer-readable medium of claim 14 , said determining a nature of said input/output request comprising computer-executable instructions for:
determining if said input/output request comprises data associated with at least one of a paging file, a prefetching operation, or a search indexing operation.
16. The computer-readable medium of claim 14 , at least one of said first buffer or said second buffer comprising one or more buckets.
17. The computer-readable medium of claim 16 , respective buckets of said one or more buckets corresponding to one or more offsets.
18. The computer-readable medium of claim 14 , comprising computer-executable instructions for:
writing said compressed data to a peripheral solid state storage instead of to said flash drive.
19. The computer-readable medium of claim 9 , said input/output request from an operating system.
20. The computer-readable medium of claim 19 , a number of write operations performed to said flash drive by said operating system reduced while maintaining integrity of data associated with said high frequency write operation.