Patent ID: 8225058

Claim:
A memory system comprising: a nonvolatile memory being capable of storing a first snapshot, a second snapshot, a first log and a second log; a volatile memory being capable of storing a first management table and a second management table for managing data in the nonvolatile memory; and a controller configured to perform data transfer between the nonvolatile memory and the volatile memory, wherein the controller includes: a snapshot transferring unit configured to load the first snapshot stored in the nonvolatile memory onto the volatile memory as the first management table and the second management table; a log recording unit configured, when an event occurs so that the first management table needs to be updated, to record update information of the first management table in a log storage area of the volatile memory as the first log and not to update the first management table, and when an event occurs so that the second management table needs to be updated, to record update information of the second management table in the log storage area as the second log and update the second management table; a log reflecting unit configured to, when a first condition is satisfied, perform a commit operation for saving the first log and the second log recorded in the log storage area into the nonvolatile memory and incorporating a content of the first log into the first management table; a snapshot storing unit configured to, when a second condition is satisfied, perform a snapshot storing operation for saving the first management table and the second management table into the nonvolatile memory as the second snapshot and invalidate the first snapshot; and a log overflow control unit configured, when a third condition is satisfied, to prohibit the recording operation of the second log and to cause the log recording unit only to perform the updating operation of the second management table, and when the first condition is satisfied after the third condition has been satisfied, to prohibit the commit operation by the log reflecting unit and to cause the snapshot storing unit to perform the snapshot storing operation.