Method and apparatus for providing fault tolerance in a collaboration environment
First Claim
1. A method of performing fault tolerance in a collaboration environment comprising:
- identifying a plurality of segments of an operation, each segment indicative of partial completion of the operation;
defining a state corresponding to each segment;
performing each of the segments in the order defined by the states; and
transitioning to a recovery state if performing a segment results in an incomplete result.
1 Assignment
0 Petitions
Accused Products
Abstract
A fault processor in a collaboration server models collaborative operations as a state machine. The fault processor divides collaboration operations into discrete segments, in which each segment corresponds to a repository update. A state definition defines the progression of states between the segments, and defines transitions to recovery states in the event of unexpected interruption. A state log maintains the completion status of each segment in the operation, and recovery logic employs the state log to perform recovery of an abnormally terminated operation. The recovery logic computes the segments to be performed in a recovery. Compatibility logic selectively prohibits operations which may affect or be affected by inconsistencies presented prior to successful recovery. In this manner, collaboration software defined according to configurations herein identifies failures, implements recovery based on a state machine corresponding to segments of an operation, and preserves consistency by recovering the incremental segments defined by the states.
33 Citations
25 Claims
-
1. A method of performing fault tolerance in a collaboration environment comprising:
-
identifying a plurality of segments of an operation, each segment indicative of partial completion of the operation;
defining a state corresponding to each segment;
performing each of the segments in the order defined by the states; and
transitioning to a recovery state if performing a segment results in an incomplete result. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A fault tolerant collaboration server operable in a collaboration environment comprising:
-
a fault processor operable to identify a plurality of segments of an operation, each segment indicative of partial completion of the operation;
a state definition operable to define a state corresponding to each segment, the collaboration server operable to perform each of the segments in the order defined by the states; and
recovery logic operable to transition to a recovery state if performing a segment results in an incomplete result. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23)
-
-
24. A computer program product having a computer readable medium operable to store computer program logic embodied in computer program code encoded thereon, the computer program code receivable by a processor for executing computer program instructions for performing fault tolerance in a collaboration environment comprising:
-
computer program code for identifying a plurality of segments of an operation, each segment segments corresponding to an update to a particular repository from among the plurality of repositories included in the operation;
computer program code for defining a state corresponding to each segment;
computer program code for performing each of the segments in the order defined by the states; and
computer program code for transitioning to a recovery state if performing a segment results in an incomplete result.
-
-
25. A computing device for performing fault tolerance in a collaboration environment comprising:
-
means for identifying a plurality of segments of an operation, each segment indicative of partial completion of the operation;
means for defining a state corresponding to each segment;
means for performing each of the segments in the order defined by the states; and
means for transitioning to a recovery state if performing a segment results in an incomplete result, each of the segments corresponding to an update to a particular repository from among the plurality of repositories included in the operation; and
means for writing to a state log, the state log indicative of segment completion and operable to identify the state of the operation as at least one of successfully completed, just failed and ongoing.
-
Specification