Patent ID: 7418462
Filing Date: 2008-08-26
Classification: G06F,Y10S

Abstract:
1. A system for optimizing recovery logging, the system comprising: a log storage device on a calling component machine; a calling component module on the calling component machine, wherein the storage device stores a stable log associated with the calling component, the calling component module adapted to sending a first message to a called component of a plurality of called components receiving calls from the calling component module, wherein a contract between the calling component module and the called component requires the called component to guarantee persistence of its last return message to the calling component module until released by receiving a second message from the calling component module, wherein the calling component sends the first message without logging the first message to the log storage device, and wherein the calling component module is adapted to sending a second message to the called component, and logging a first return message to the log storage device when the second message to the called component is sent, wherein logging of the first return message on the log storage device is an only forced logging event on the calling component module enabling optimized recovery of incomplete requests in event of a system crash based on logged messages on the calling component module and the called component; and a called component table on the calling component machine for storing information associated with the first return message, wherein the called component determines whether the first return message received from the called component has been stably logged, the determination comprises: (a) in response to determining that an entry for the called component is not in a table of information associated with called components, adding an entry for the first message to the table, the entry comprising an identifier for the called component, and a log sequence number set to a lowest possible value; (b) in response to determining that the entry for the called component is in the table of information associated with called components, comparing a highest stably logged log sequence number with the log sequence number in the table entry, wherein: