Method and system for storage of data in non-volatile media
AssigneeViolin Memory, Inc.
InventorJon C. R. Bennett
Life of this patent
Estimating the term…
Abstract
A system and method for managing the storage of data in non-volatile memory is described. In an aspect, the data may be described by metadata and a transaction log file that are checkpointed from a volatile memory into the non-volatile memory. Actions that take place between the last checkpointing of a metadata segment and log file segment are discovered by scanning the non-volatile memory blocks, taking account of a record of the highest sector in each block that is known to have been recorded. Any later transactions are discovered and used to update the recovered metadata so that the metadata correctly represents the stored data.
Claims44
A method of operating a memory system, the method comprising;
- storing data in a non-volatile memory;
- maintaining a checkpointed copy of a dynamic table of metadata for the stored data in the non-volatile memory;
- maintaining a transaction log for the dynamic table;
- discovering changes to the dynamic table that are not found in the transaction log;
- updating the dynamic table by applying transactions in the transaction log and the discovered changes,
- wherein at least one of a portion of the transaction log or a portion of the dynamic table is stored in a volatile memory.
A system for storage of data, the system comprising:
- a volatile memory device;
- a non-volatile memory;
- and
- a processor in communication with the volatile memory device and the non-volatile memory device,
- wherein the processor is configured to maintain a dynamic table in volatile storage representing data stored in the non-volatile memory, a checkpointed version of the dynamic table in the non-volatile memory, and a log representing transactions affecting stored data, and to repair the dynamic table by discovering data written to the non-volatile memory between the last update of the log and a time of repair.
A computer program product, stored or distributed in or on a non-transient computer readable medium, comprising instructions for:
- configuring a processor and memory system to maintain metadata in a volatile memory representing data stored in a non-volatile memory;
- maintaining a checkpointed version of the metadata for the stored data in the non-volatile memory and a transaction log;
- and
- discovering changes to the transaction log repairing the metadata by:
- applying the transactions of the transaction log to the metadata to update the metadata;
- discovering a transaction written to the non-volatile memory where the transaction log in the non-volatile memory had not been updated to include the transaction;
- and
- applying the discovered transactions to update the metadata.
A method of operating a memory system, the method comprising;
- storing data in a non-volatile memory;
- maintaining a checkpointed copy of a dynamic table of metadata for the stored data in the non-volatile memory;
- maintaining a transaction log for the dynamic table;
- discovering changes to the dynamic table that are not found in the transaction log;
- updating the dynamic table by applying transactions in the transaction log and the discovered changes,
- wherein at least a portion of the transaction log is stored in a volatile memory.
Dependencies are inferred from the claim text.