Method and system for storage of data in a 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.
Claims11
-2. (canceled)
A method of recovering data stored in a FLASH memory system,
- the method comprising:
- using a computer to maintain, in a non-volatile memory, metadata including a sequence number and a pointer value to a first free page location in a block a plurality of blocks of FLASH memory, each block having a plurality of pages;
- and,
- if a previous page location to the first free page location in the block has data and page metadata written thereto and a sequence number in the previous page metadata is less than or equal to the maintained sequence number:
- validating the pointer value by determining that first free memory page location pointed to has not had data written thereto;
- or
- correcting the pointer value if the first free memory page pointed to has had data written thereto,
- wherein the sequence number is sequentially incremented for each write operation performed on the memory system.
A computer program product, stored in a non-transient computer readable memory, comprising:
- instructions interpretable by a computer to:
- maintain a sequence number and a pointer value to a first free page in each of a plurality of blocks of a FLASH memory system;
- and,
- sequentially increment the sequence number and update the pointer value associated with the block to which the a write operation is performed for each write operation performed on the memory system;
- and,
- when recovering data or metadata after a system event:
- determining if a previous page location to the first free page location in the block has data and page metadata written thereto and a sequence number in the previous page metadata is less than or equal to the maintained sequence number;
- and,
- validating the pointer value by determining that first free memory page location pointed to has not had data written thereto;
- or
- correcting the pointer value if the first free memory page pointed to has had data written thereto.
Dependencies are inferred from the claim text.