Patent ID: 8543544

Claim:
A method comprising: designating, by one or more processors, a first temporal checkpoint and a checkpoint interval, wherein after each checkpoint interval, a new temporal checkpoint is designated; at a time after the first temporal checkpoint, receiving, by the one or more processors, a first update request to update data stored in a page of a storage device, wherein the page is a contiguous block of memory designated as a unit for storing data; determining, by the one or more processors, a first update action based on whether a prior update request was received between the first temporal checkpoint and time the first update request was received, wherein: when no prior update request was received, the first update action comprises: updating the data stored in the page according to the first update request; and placing a first copy of the updated page into a queue; and when a prior update request was received, the first update action comprises updating a prior copy of the page stored in the queue according to the first update request; receiving a second update request to update the data stored in the page; and determining, by the one or more processors, a second update action based on whether a time threshold is satisfied, the time threshold being satisfied when receiving the first update request and receiving the second update request occurred between two neighboring temporal checkpoints separated by a checkpoint interval, wherein: when the time threshold is not satisfied, the second update action comprises: updating data stored in the page according to the second update request; generating a second copy of the page as updated according to the second update request; and placing the second copy of the updated page into the queue; and when the time threshold is satisfied, the second update action comprises updating the first copy of the page stored in the queue according to the second update request.