Techniques for maintaining and restoring dirty caches across CPU resets
US-9053027-B1 · Jun 9, 2015 · US
US11327939B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11327939-B2 |
| Application number | US-201816481077-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jan 24, 2018 |
| Priority date | Feb 14, 2017 |
| Publication date | May 10, 2022 |
| Grant date | May 10, 2022 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A method for indexing dirty data in a storage system page includes: obtaining a point quantity of storage points in the storage page and dirty data distribution information; creating a bitmap based on the point quantity and dirty data distribution information; creating an extended segment set based on the dirty data distribution information, and obtaining the number of current extended segments in the extended segment set; obtaining, according to the point quantity, a first storage cost for indexing dirty data using the bitmap in the target storage page; obtaining, according to the number of current extended segments and the segment capacity, a second storage cost for indexing dirty data using the extended segments in the target storage page; and determine, according to the first storage cost and the second storage cost, to index the dirty data in the target storage page by means of the bitmap or the extended segments.
Opening claim text (preview).
What is claimed is: 1. A method for indexing dirty data in a storage system page, comprising: obtaining a point quantity of storage points in a target storage page in the storage system, and obtaining dirty data distribution information of the dirty data in each storage point in the target storage page; creating a bitmap on the basis of the point quantity and the dirty data distribution information; creating a set of extended segments on the basis of the dirty data distribution information, and obtaining the number of current extended segments and a segment capacity of a extended segment in the set of extended segments; obtaining, according to the point quantity, a first storage cost for indexing the dirty data using the bitmap in the target storage page; obtaining, according to the number of the current extended segments and the segment capacity, a second storage cost for indexing the dirty data using the extended segments in the target storage page; and determining, according to the first storage cost and the second storage cost, whether to index the dirty data in the target storage page by means of the bitmap or the extended segments. 2. The method for indexing dirty data in the storage system page of claim 1 , wherein obtaining the point quantity of the storage points in the target storage page in the storage system and obtaining the dirty data distribution information of the dirty data in each storage point in the target storage page comprises: obtaining a page capacity of the target storage page in the storage system and a point capacity of the storage point in the target storage page, deriving the point quantity of the storage points according to the page capacity and the point capacity, and then obtaining the dirty data distribution information of the dirty data in each storage point in the target storage page; wherein, when the storage point is of the dirty data, a corresponding data bit of the storage point in the bitmap is of a positive identifier; when the storage point is not of the dirty data, the corresponding data bit of the storage point in the bitmap is of a negative identifier; and one extended segment in the set of extended segments corresponds to one dirty data segment in the target storage page, each extended segment comprising an offset sub-segment and a length sub-segment; and obtaining the segment capacity of the extended segment in the set of extended segments comprises: deriving the segment capacity of the extended segment according to the number of data bits of the offset sub-segment and the length sub-segment. 3. The method for indexing dirty data in the storage system page of claim 1 , wherein determining, according to the first storage cost and the second storage cost, whether to index the dirty data in the target storage page by means of the bitmap or the extended segments comprises: indexing the dirty data in the target storage page by means of the bitmap when the first storage cost is less than the second storage cost; and indexing the dirty data in the target storage page by means of the extended segments when the second storage cost is less than the first storage cost. 4. The method for indexing dirty data in the storage system page of claim 3 , wherein after creating the set of extended segments on the basis of the dirty data distribution information and obtaining the number of the current extended segments and the segment capacity the extended segment in the set of extended segments, the method further comprises: updating, when update of the dirty data distribution information is detected, data in the offset sub-segment and the length sub-segment of each extended segment in the set of extended segments; and based on the updated offset sub-segment and the updated length sub-segment of each extended segment, merging each extended segment with another where the extended segments sharing intersections are merged into one new extended segment, and using the number of merged extended segments in the set of extended segments as the new number of the current extended segments. 5. The method for indexing dirty data in the storage system page of claim 1 , wherein determining, according to the first storage cost and the second storage cost, whether to index the dirty data in the target storage page by means of the bitmap or the extended segments comprises: obtaining a first query cost for indexing the dirty data using the bitmap in the target storage page; obtaining a second query cost for indexing the dirty data using the extended segments in the target storage page based on the number of the current extended segments; deriving, according to the first storage cost and the first query cost, a first total cost for indexing the dirty data using the bitmap in the target storage page; deriving, according to the second storage cost and the second query cost, a second total cost for indexing the dirty data using the extended segments in the target storage page; and when the first total cost is less than the second total cost, indexing the dirty data in the target storage page by means of the bitmap; and when the second total cost is less than the first total cost, indexing the dirty data in the target storage page by means of the extended segments. 6. The method for indexing dirty data in the storage system page of claim 5 , wherein after creating the set of extended segments on the basis of the dirty data distribution information and obtaining the number of the current extended segments and the segment capacity the extended segment in the set of extended segments, the method further comprises: updating, when update of the dirty data distribution information is detected, data in the offset sub-segment and the length sub-segment of each extended segment in the set of extended segments; and based on the updated offset sub-segment and the updated length sub-segment of each extended segment, merging each extended segment with another where the extended segments sharing intersections are merged into one new extended segment, and using the number of merged extended segments in the set of extended segments as the new number of the current extended segments. 7. The method for indexing dirty data in the storage system page of claim 5 , wherein deriving, according to the first storage cost and the first query cost, the first total cost for indexing the dirty data using the bitmap in the target storage page comprises: deriving, according to a preset formula, the first storage cost and the first query cost, the first total cost for indexing the dirty data using the bitmap in the target storage page; and deriving, according to the second storage cost and the second query cost, the second total cost for indexing the dirty data using the extended segments in the target storage page comprises: deriving, according to the preset formula, the second storage cost and the second query cost, the second total cost for indexing the dirty data using the extended segments in the target storage page, wherein, the preset formula is Cost=p*Storage+q*Query, in which Cost is a total cost; p is a first preset coefficient; Storage is a storage cost; q is a second preset coefficient; Query is a query cost; and p+q=1, and wherein, the larger the storage capacity of the storage system is, the smaller p is, and the smaller the storage capacity of the storage system is, the larger p is. 8. The method for indexing dirty data in the storage system page of claim 7 , wherein after creating the set of extended segments on the basis of the dirty data distribution information and obtaining the number of the current extended segments and the segment capacity the extended segment in the set of extended segments, the method further comprises: updating, when update
in block erasable memory, e.g. flash memory · CPC title
Vectors, bitmaps or matrices · CPC title
Data transfer between cache memory and other subsystems, e.g. storage devices or host systems · CPC title
Page mode · CPC title
with main memory updating (G06F12/0806 takes precedence) · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.