Method and system for improving flash storage utilization by predicting bad m-pages
First Claim
1. A method for managing persistent storage, the method comprising:
- selecting a page for a proactive read request, wherein the page is located in the persistent storage;
issuing the proactive read request to the page;
receiving, in response to the proactive read request, a bit error value (BEV) for data stored on the page;
obtaining a BEV threshold (T) for the page, wherein T is determined using a program/erase (P/E) cycle value associated with the page and a retention time of the data stored on the page, wherein obtaining T comprises performing a look-up in an in-memory data structure in memory, wherein the memory is located in a control module operatively connected to the persistent storage, wherein the in-memory data structure comprises a birth time for all data stored in the persistent storage and a plurality of entries, wherein each of the plurality of entries comprises one of a plurality of Ts, one of a plurality of P/E cycle values, and one of a plurality of retention times;
making a first determination that the BEV is greater than T;
based on the first determination;
identifying an m-page, wherein the m-page is a set of pages, wherein the page is in the set of pages;
setting the m-page as non-allocatable for future operations.
9 Assignments
0 Petitions
Accused Products
Abstract
A method for managing persistent storage. The method includes selecting a page for a proactive read request, where the page is located in the persistent storage. The method further includes issuing the proactive read request to the page, receiving, in response to the proactive read request, a bit error value (BEV) for data stored on the page, obtaining a BEV threshold (T) for the page, wherein T is determined using a program/erase cycle value associated with the page and a retention time of the data stored on the page, making a first determination that the BEV is greater than T, based on the first determination: identifying an m-page, where the m-page is a set of pages and the page is in the set of pages, and setting the m-page as non-allocatable for future operations.
-
Citations
18 Claims
-
1. A method for managing persistent storage, the method comprising:
-
selecting a page for a proactive read request, wherein the page is located in the persistent storage; issuing the proactive read request to the page; receiving, in response to the proactive read request, a bit error value (BEV) for data stored on the page; obtaining a BEV threshold (T) for the page, wherein T is determined using a program/erase (P/E) cycle value associated with the page and a retention time of the data stored on the page, wherein obtaining T comprises performing a look-up in an in-memory data structure in memory, wherein the memory is located in a control module operatively connected to the persistent storage, wherein the in-memory data structure comprises a birth time for all data stored in the persistent storage and a plurality of entries, wherein each of the plurality of entries comprises one of a plurality of Ts, one of a plurality of P/E cycle values, and one of a plurality of retention times; making a first determination that the BEV is greater than T; based on the first determination; identifying an m-page, wherein the m-page is a set of pages, wherein the page is in the set of pages; setting the m-page as non-allocatable for future operations. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A system, comprising:
-
a storage module comprising a storage module controller and persistent storage; and a control module operatively connected to the storage module and a client, wherein control module comprises memory, wherein the memory comprises an in-memory data structure comprising a birth time for all data stored in the persistent storage and a plurality of entries, wherein each of the plurality of entries comprises one of a plurality of bit error value (BEV) thresholds (Ts), one of a plurality of P/E cycle values, and one of a plurality of retention times, and wherein the retention time for the data stored on the page is determined using a birth time for the data stored on the page from the memory, wherein the control module performs the following steps; selecting a page for a proactive read request, wherein the page is located in the persistent storage; issuing the proactive read request to the page; obtaining, in response to the proactive read request, a BEV for data stored on the page; obtaining a T for the page, wherein T is determined using a program/erase cycle value associated with the page and a retention time of the data stored on the page, wherein obtaining T comprises performing a look-up in the in-memory data structure; making a first determination that the BEV is greater than T; based on the first determination; identifying an m-page, wherein the m-page is a set of pages, wherein the page is in the set of pages; and setting the m-page as non-allocatable for future operations. - View Dependent Claims (14, 15, 16, 17)
-
-
18. A non-transitory computer readable medium comprising computer readable program code, which when executed by a computer processor enables the computer processor to:
-
select a page for a proactive read request, wherein the page is located in the persistent storage; issue the proactive read request to the page; receive, in response to the proactive read request, a bit error value (BEV) for data stored on the page; obtain a BEV threshold (T) for the page, wherein T is determined using a program/erase (P/E) cycle value associated with the page and a retention time of the data stored on the page, wherein obtaining T comprises performing a look-up in an in-memory data structure in memory, wherein the memory is located in a control module operatively connected to the persistent storage, wherein the in-memory data structure comprises a birth time for all data stored in the persistent storage and a plurality of entries, wherein each of the plurality of entries comprises one of a plurality of Ts, one of a plurality of P/E cycle values, and one of a plurality of retention times; make a first determination that the BEV is greater than T; based on the first determination; identify an m-page, wherein the m-page is a set of pages, wherein the page is in the set of pages; and set the m-page as non-allocatable for future operations.
-
Specification