System data storage mechanism providing coherency and segmented data loading
First Claim
Patent Images
1. A method of storing and recovering a segmented system table having y table pages in a data storage system, the method comprising:
- in response to updating a first table page of the segmented system table in a volatile memory;
flushing the updated first table page from the volatile memory to a non-volatile memory; and
flushing, from the volatile memory to the non-volatile memory, one or more additional table pages of the segmented system table in the volatile memory based at least on a predetermined ratio of a number of flushed table pages to a number of segmented system table update triggers to keep table pages in the non-volatile memory updated, wherein the one or more additional table pages are different from the first table page;
loading a set of z table pages divided into a plurality of segments from the non-volatile memory to the volatile memory according to individual segments;
determining whether a host data access request accessing an address within a yet-to-be loaded segment of the plurality of segments is pending;
processing a segment containing the address of the host data access request when it is determined that the host data access request is pending and is within the yet-to-be loaded segment of the plurality of segments;
locating and copying into the volatile memory, by individual segment, a most up-to date version of each table page contained in the individual segment; and
recovering the segmented system table using a number of load operations less than or equal to twice a size of the segmented system table measured in segments.
6 Assignments
0 Petitions
Accused Products
Abstract
A data storage subsystem is disclosed that implements a process for storing and/or reconstructing system data, such as a system mapping table. In certain embodiments, table pages are systematically copied, or flushed, to non-volatile memory in a progressive manner, according to a fixed ratio of flushed table pages per table update trigger, thereby facilitating write and/or load efficiency. Full or partial reconstruction of a table may be performed within a bounded number of operations based on the size of the table, the ratio implemented, and/or other characteristics.
133 Citations
6 Claims
-
1. A method of storing and recovering a segmented system table having y table pages in a data storage system, the method comprising:
-
in response to updating a first table page of the segmented system table in a volatile memory; flushing the updated first table page from the volatile memory to a non-volatile memory; and flushing, from the volatile memory to the non-volatile memory, one or more additional table pages of the segmented system table in the volatile memory based at least on a predetermined ratio of a number of flushed table pages to a number of segmented system table update triggers to keep table pages in the non-volatile memory updated, wherein the one or more additional table pages are different from the first table page; loading a set of z table pages divided into a plurality of segments from the non-volatile memory to the volatile memory according to individual segments; determining whether a host data access request accessing an address within a yet-to-be loaded segment of the plurality of segments is pending; processing a segment containing the address of the host data access request when it is determined that the host data access request is pending and is within the yet-to-be loaded segment of the plurality of segments; locating and copying into the volatile memory, by individual segment, a most up-to date version of each table page contained in the individual segment; and recovering the segmented system table using a number of load operations less than or equal to twice a size of the segmented system table measured in segments. - View Dependent Claims (2, 3)
-
-
4. A non-volatile storage system comprising:
-
a non-volatile memory configured to store data; a volatile memory; and a controller configured to store and recover a segmented system table having y table pages by; in response to updating a first table page of the segmented system table in the volatile memory; flushing the updated first table page from the volatile memory to the non-volatile memory; and flushing, from the volatile memory to the non-volatile memory, one or more additional table pages of the segmented system table in the volatile memory based at least on a predetermined ratio of a number of flushed table pages to a number of segmented system table update triggers to keep table pages in the non-volatile memory updated, wherein the one or more additional table pages are different from the first table page; loading a set of z table pages divided into a plurality of segments from a non-volatile memory to a volatile memory according to individual segments; determining whether a host data access request accessing an address within a yet-to-be loaded segment of the plurality of segments is pending; processing a segment containing the address of the host data access request when it is determined that a host data access request is pending and is within the yet-to-be loaded segment of the plurality of segments; locating and copying into the volatile memory, by individual segment, a most up-to date version of each table page contained in the individual segment; and recovering the segmented system table using a number of operations less than or equal to twice a size of the segmented system table measured in segments. - View Dependent Claims (5, 6)
-
Specification