Tail of logs in persistent main memory
First Claim
1. A system comprising:
- persistent main memory;
one or more event writing components that request logging of events;
persistent storage that has therein a log of events;
a recovery component that is triggered during recovery to use the log in persistent storage as well as events written to the persistent main memory in order to perform recovery; and
a log management component that causes events, that the writing component(s) request be logged, to be written to the persistent main memory in a manner that the recovery component would log the event in case of recovery, the event being written into the persistent main memory prior to the event being written along with other accumulated events into the log in the persistent store, the log management component causing threads for each of at least some of the event writes to be returned after the event is written to the persistent main memory but before the event is written to the log in the persistent storage.
2 Assignments
0 Petitions
Accused Products
Abstract
A system that uses a persistent main memory to preserve events that await logging in a persistent store. Each event is written into the persistent main memory so as to be loggable in case of recovery. For instance, the event may be written into a log cache structure, along with other state which identifies that the event is in the particular log cache structure, the location of the event within the particular log cache structure, and the order of the event. To recover, the log in the persistent store is evaluated to identify the end of the stored log. The tail of the log is identified in the persistent main memory by identifying any log cache structures that are after the end of the stored log and which are validly recoverable. The log cache structure contents are then serialized one log cache at a time, earliest first.
-
Citations
20 Claims
-
1. A system comprising:
-
persistent main memory; one or more event writing components that request logging of events; persistent storage that has therein a log of events; a recovery component that is triggered during recovery to use the log in persistent storage as well as events written to the persistent main memory in order to perform recovery; and a log management component that causes events, that the writing component(s) request be logged, to be written to the persistent main memory in a manner that the recovery component would log the event in case of recovery, the event being written into the persistent main memory prior to the event being written along with other accumulated events into the log in the persistent store, the log management component causing threads for each of at least some of the event writes to be returned after the event is written to the persistent main memory but before the event is written to the log in the persistent storage. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for logging events of a computing system so as to enable the computing system to recovery for a possible failure, the method comprising:
-
an act of detecting that a thread requests to write an event for purposes of logging; in response to the act of detecting, an act of writing the event into a persistent main memory prior to the event along with other accumulated events into a log in a persistent store, the event being written into the persistent main memory in a manner that a recovery component can cause the event to be logged if the recovery component is triggered to recover the computing system; and after the act of writing the event into the persistent main memory, but before writing the event along with other accumulated events into the log in the persistent store, an act of returning the thread that requested the write of the event. - View Dependent Claims (10, 11, 12, 13)
-
-
14. The method in accordance with 13,
the act of writing the first event into the persistent main memory comprising an act of writing the first event into a log cache structure of the persistent main store; - and
the act of writing the second event in the persistent main memory comprising;
an act of writing the first event into the log cache structure of the persistent main store in a manner that preserves ordering between the first event and the second event.
- and
-
15. The method in accordance with 13,
the act of writing the first event into the persistent main memory comprising an act of writing the first event into a first log cache structure of the persistent main store; - and
the act of writing the second event in the persistent main memory comprising;
an act of writing the first event into a second log cache structure of the persistent main store.
- and
-
16. A method for recovering a computing system using a log persisted in a persistent store as well as persistent main memory, the method comprising:
-
an act of evaluating the log in the persistent store to identify an end of the stored log; an act of identifying a tail of the log in the persistent main memory by identifying one or more log cache structures that have events after the end of the stored log and which are validly usable for recovery; and an act of capturing serialized contents of each of the identified one or more log cache structures into the log in the persistent store. - View Dependent Claims (17, 18, 19, 20)
-
Specification