Logical logging to extend recovery
AssigneeMicrosoft Corporation
InventorsDavid Lomet, Mark Tuttle
Life of this patent
Estimating the term…
Abstract
Logical logging to extend recovery is described. In one aspect, a dependency cycle between at least two objects is detected. The dependency cycle indicates that the two objects should be flushed simultaneously from a volatile main memory to a non-volatile memory to preserve those objects in the event of a system crash. One of the two objects is written to a stable of to break the dependency cycle. The other of the two objects is flushed to the non-volatile memory. The object that has been written to the stable log is then flushed to the stable log to the non-volatile memory.
Claims20
A computer-implemented method comprising:
- detecting a dependency cycle between at least two objects, the dependency cycle indicating that the two objects should be flushed simultaneously from a volatile main memory to a non-volatile memory to preserve those objects in the event of a system crash;
- writing one of the two objects to a stable log to break the dependency cycle;
- flushing an other of the two objects to the non-volatile memory, the other not having been written to the stable log;
- and
- flushing the object that has been written to the stable log to the non-volatile memory.
A computing device comprising:
- a processor;
- and
- a memory coupled to the processor, the memory comprising computer-program instructions executable by the processor for:
- detecting a cycle dependency between a first object stored in volatile main memory and a second object stored in the volatile main memory, the cycle dependency indicating that the first and second objects should be flushed simultaneously to a non-volatile memory, the first object being executed on the processing unit;
- and,
- responsive to detecting the cycle dependency:
- writing one of the first object and the second object as a log record to the non-volatile memory to break the dependency cycle so that the first object and second object can be flushed to the non-volatile memory in a sequential manner;
- flushing an other of the first object and the second object to the non-volatile memory, the other not having been written as the log record;
- and
- flushing the one of the first object or the second object to the non-volatile memory.
A computer-implemented method comprising:
- detecting, by a cache manager, an atomic flush set comprising at least two objects such that the two objects should be flushed from volatile memory to non-volatile memory simultaneously;
- writing, by the cache manager, one of the two objects to a stable log to break up the atomic flush set;
- flushing, by the cache manager, an other of the two objects to non-volatile memory, the other not having been written to the stable log;
- and
- flushing, by the cache manager, the object that has been written to the stable log to the non-volatile memory.
A computing device comprising processing means for:
- detecting an atomic flush set comprising a first object and a second object, the first object and the second object being in a volatile main memory, the first object being executed on the processing unit;
- responsive to the detecting:
- writing one of the first object and the second object as a log record to the non-volatile memory to break up the atomic flush set so that the first object and second object can be flushed to the non-volatile memory in a sequential manner;
- flushing an other of the first object and the second object to the non-volatile memory, the other not having been written as the log record;
- and
- flushing the one of the first object or the second object to the non-volatile memory.
Dependencies are inferred from the claim text.