Managing a cache on storage devices supporting compression
First Claim
1. A method, comprising steps of:
- writing data in memory blocks of a flash memory device that exposes a logical address space that is larger than a physical address space of the flash memory device, wherein writing data comprises issuing I/O requests to write data, each I/O request specifying a respective logical address space in said logical address space to which to write data; and
periodically performing;
making a determination that a particular realized physical usage of said flash memory device has reached a threshold, andin response to making said determination, issuing I/O requests to trim data at logical addresses within the logical address space;
wherein periodically performing includes;
making a first determination that a first realized physical usage of said flash memory device has reached said threshold, andin response to making said first determination, issuing I/O requests to trim data at logical addresses within the logical address space;
making a second determination that a second realized physical usage of said flash memory device has reached said threshold, andin response to making said second determination, issuing I/O requests to trim data at logical addresses within the logical address space;
wherein a first realized logical usage corresponds to the first realized physical usage of the first determination;
wherein a second realized logical usage corresponds to the second realized physical usage of the second determination;
wherein the first realized physical usage is equal to the second realized physical usage; and
wherein the second realized logical usage is greater than the first realized logical usage.
1 Assignment
0 Petitions
Accused Products
Abstract
Flash memory on a flash memory device is virtualized using compression that is native to the flash memory device. Through compression, the flash memory device is used to logically store more data in a virtual address space that is larger than the physical address space of the flash memory device. Physical storage capacity of a flash memory device may prevent further storage of data even when the virtual address space is not fully populated. Because compressibility may vary, the extent to which the virtual address space may be populated before physical storage capacity is reached varies. The approaches for virtual memory described herein rely on the memory device client to monitor when this point is reached. In addition, the memory device client is responsible for freeing space as needed to accommodate subsequent requests to store data in the flash memory.
84 Citations
18 Claims
-
1. A method, comprising steps of:
-
writing data in memory blocks of a flash memory device that exposes a logical address space that is larger than a physical address space of the flash memory device, wherein writing data comprises issuing I/O requests to write data, each I/O request specifying a respective logical address space in said logical address space to which to write data; and periodically performing; making a determination that a particular realized physical usage of said flash memory device has reached a threshold, and in response to making said determination, issuing I/O requests to trim data at logical addresses within the logical address space; wherein periodically performing includes; making a first determination that a first realized physical usage of said flash memory device has reached said threshold, and in response to making said first determination, issuing I/O requests to trim data at logical addresses within the logical address space; making a second determination that a second realized physical usage of said flash memory device has reached said threshold, and in response to making said second determination, issuing I/O requests to trim data at logical addresses within the logical address space; wherein a first realized logical usage corresponds to the first realized physical usage of the first determination; wherein a second realized logical usage corresponds to the second realized physical usage of the second determination; wherein the first realized physical usage is equal to the second realized physical usage; and wherein the second realized logical usage is greater than the first realized logical usage. - View Dependent Claims (2, 3, 4)
-
-
5. A method, comprising steps of:
-
writing data blocks to a cache in a flash memory device that exposes a logical address space that is larger than a physical address space of the flash memory device, wherein writing data blocks comprises issuing I/O requests to said flash memory device to write data, each I/O request specifying a respective logical address within said logical address space to which to write data; and periodically performing; making a determination that a particular realized physical usage of said flash memory device has reached a first threshold, and in response to making said determination, removing a set of data blocks from said cache, wherein removing a set of data blocks from said cache comprises issuing I/O requests to trim data at logical addresses within the logical address space, wherein periodically performing includes; making a first determination that a first realized physical usage of said flash memory device has reached said first threshold, and in response to making said first determination, removing a set of data blocks from said cache, wherein removing a set of data blocks from said cache comprises issuing I/O requests to trim data at logical addresses within the logical address space; making a second determination that a second realized physical usage of said flash memory device has reached said first threshold, and in response to making said second determination, removing a set of data blocks from said cache, wherein removing a set of data blocks from said cache comprises issuing I/O requests to trim data at logical addresses within the logical address space; wherein a first realized logical usage corresponds to the first realized physical usage of the first determination; wherein a second realized logical usage corresponds to the second realized physical usage of the second determination; wherein the first realized physical usage is equal to the second realized physical usage; and wherein the second realized logical usage is greater than the first realized logical usage. - View Dependent Claims (6, 7, 8, 9)
-
-
10. One or more non-transitory storage media storing instructions which, when executed by one or more computing devices, cause:
-
writing data in memory blocks of a flash memory device that exposes a logical address space that is larger than a physical address space of the flash memory device, wherein writing data comprises issuing I/O requests to write data, each I/O request specifying a respective logical address space in said logical address space to which to write data; and periodically performing; making a determination that a particular realized physical usage of said flash memory device has reached a threshold, and in response to making said determination, issuing I/O requests to trim data at logical addresses within the logical address space; wherein periodically performing includes; making a first determination that a first realized physical usage of said flash memory device has reached said threshold, and in response to making said first determination, issuing I/O requests to trim data at logical addresses within the logical address space; making a second determination that a second realized physical usage of said flash memory device has reached said threshold, and in response to making said second determination, issuing I/O requests to trim data at logical addresses within the logical address space; wherein a first realized logical usage corresponds to the first realized physical usage of the first determination; wherein a second realized logical usage corresponds to the second realized physical usage of the second determination; wherein the first realized physical usage is equal to the second realized physical usage; and wherein the second realized logical usage is greater than the first realized logical usage. - View Dependent Claims (11, 12, 13)
-
-
14. One or more non-transitory storage media storing instructions which, when executed by one or more computing devices, cause:
-
writing data blocks to a cache in a flash memory device that exposes a logical address space that is larger than a physical address space of the flash memory device, wherein writing data blocks comprises issuing I/O requests to said flash memory device to write data, each I/O request specifying a respective logical address within said logical address space to which to write data; and periodically performing; making a determination that a particular realized physical usage of said flash memory device has reached a first threshold, and in response to making said determination, removing a set of data blocks from said cache, wherein removing a set of data blocks from said cache comprises issuing I/O requests to trim data at logical addresses within the logical address space, wherein periodically performing includes; making a first determination that a first realized physical usage of said flash memory device has reached said first threshold, and in response to making said first determination, removing a set of data blocks from said cache, wherein removing a set of data blocks from said cache comprises issuing I/O requests to trim data at logical addresses within the logical address space; making a second determination that a second realized physical usage of said flash memory device has reached said first threshold, and in response to making said second determination, removing a set of data blocks from said cache, wherein removing a set of data blocks from said cache comprises issuing I/O requests to trim data at logical addresses within the logical address space; wherein a first realized logical usage corresponds to the first realized physical usage of the first determination; wherein a second realized logical usage corresponds to the second realized physical usage of the second determination; wherein the first realized physical usage is equal to the second realized physical usage; and wherein the second realized logical usage is greater than the first realized logical usage. - View Dependent Claims (15, 16, 17, 18)
-
Specification