Claims Analysis
Total Claims: 6
Claim 1
Independent Claim
293 words
In a computer system having multiple application processes that interactively perform a distributed computation, the steps of the method comprising: modeling said multiple application processes as finite state machines by storing in a computer memory in said computer system model data corresponding to each application process, said model data identifying a set of states, identifying some states of said application process as final states from which the corresponding application process is allowed to terminate and identifying other states as intermediate states from which the corresponding application process must not be allowed to terminate; said stored model data for each application process further including state transition data identifying state transitions between identified states of said each application process as being enabled by receiving a message from another application process, by unreliably sending a message to a destination external of said each application process, and by reliably sending a message to a destination external of said each application process; said computer system modifying said model data by selecting, in accordance with a set of predefined state transition modification criteria, ones of said state transitions enabled by unreliably sending a message, and changing said state transition data to indicate that selected state transitions are enabled by reliably sending said message; said computer system further modifying said model data by converting ones of said intermediate states into final states, said intermediate states converted into final states being selected in accordance with a predefined set of state modification criteria; and said computer system when executing each application process, recording on stable storage information identifying reliably sent messages and information identifying state transitions by said each application process, said identifying information being recorded in accordance with which states are identified as being intermediate states in said modified model data.
Claim 2
Dependent Claim
293 words
In a computer system having multiple application processes that interactively perform a distributed computation, the steps of the method comprising: modeling said multiple application processes as finite state machines by storing in a computer memory in said computer system model data corresponding to each application process, said model data identifying a set of states, identifying some states of said application process as final states from which the corresponding application process is allowed to terminate and identifying other states as intermediate states from which the corresponding application process must not be allowed to terminate; said stored model data for each application process further including state transition data identifying state transitions between identified states of said each application process as being enabled by receiving a message from another application process, by unreliably sending a message to a destination external of said each application process, and by reliably sending a message to a destination external of said each application process; said computer system modifying said model data by selecting, in accordance with a set of predefined state transition modification criteria, ones of said state transitions enabled by unreliably sending a message, and changing said state transition data to indicate that selected state transitions are enabled by reliably sending said message; said computer system further modifying said model data by converting ones of said intermediate states into final states, said intermediate states converted into final states being selected in accordance with a predefined set of state modification criteria; and said computer system when executing each application process, recording on stable storage information identifying reliably sent messages and information identifying state transitions by said each application process, said identifying information being recorded in accordance with which states are identified as being intermediate states in said modified model data.
Claim 3
Dependent Claim
70 words
The method of claim 1, said recording step including: said computer system identifying, in accordance with a predefined set of journalling optimization criteria, states of each application process that can be asynchronously journalled and identifying other states of each application process that require synchronous journalling; and said computer system synchronously journalling said states identified as requiring synchronous journalling and asynchronously journalling said states identified as being capable of journalled asynchronously;
Claim 4
Dependent Claim
57 words
The method of claim 2, said recording step further including: said computer system identifying a sequence of more than two states, including identifying a first state and a last state in said sequence of states, that meet predefined journalling avoidance criteria; said computer system journalling only said identified first and last states of said sequence of states.
Claim 5
Dependent Claim
50 words
The method of claim 3, said recording step further including: said computer system, when said identified sequence of states includes at least one state transition enabled by reliably sending a message, delaying journalling of said last state until receipt of said reliably sent message has been acknowledged by its recipient.
Claim 6
Dependent Claim
58 words
The method of claim 4, said recording step further including: said computer system, when said identified sequence of states includes at least one state transition enabled by receiving a reliably sent message for another application process, delaying sending an acknowledgement of receiving said reliably sent message to said other application process until said last state has been journalled.