|
@@ -17,7 +17,7 @@ The process event is responsible for executing synchronization. This event
|
|
|
will return a state as to whether it has completed or not. This allows for
|
|
will return a state as to whether it has completed or not. This allows for
|
|
|
synchronization to be interrupted and recontinue when the message queue buffer
|
|
synchronization to be interrupted and recontinue when the message queue buffer
|
|
|
is full. The process event will be called again by the synchronization service
|
|
is full. The process event will be called again by the synchronization service
|
|
|
-if requesed to do so by the return variable returned in process.
|
|
|
|
|
|
|
+if requested to do so by the return variable returned in process.
|
|
|
|
|
|
|
|
abort:
|
|
abort:
|
|
|
The abort event occurs when during synchronization a processor failure occurs.
|
|
The abort event occurs when during synchronization a processor failure occurs.
|
|
@@ -29,14 +29,14 @@ have completed.
|
|
|
|
|
|
|
|
CHECKPOINT SYNCHRONIZATION ALGORITHM:
|
|
CHECKPOINT SYNCHRONIZATION ALGORITHM:
|
|
|
------------------------------------
|
|
------------------------------------
|
|
|
-The purpose of the checkpoint syncrhonization algorithm is to synchronize
|
|
|
|
|
-checkpoints after a paritition or merge of two or more partitions. The
|
|
|
|
|
|
|
+The purpose of the checkpoint synchronization algorithm is to synchronize
|
|
|
|
|
+checkpoints after a partition or merge of two or more partitions. The
|
|
|
secondary purpose of the algorithm is to determine the cluster-wide reference
|
|
secondary purpose of the algorithm is to determine the cluster-wide reference
|
|
|
count for every checkpoint.
|
|
count for every checkpoint.
|
|
|
|
|
|
|
|
Every cluster contains a group of checkpoints. Each checkpoint has a
|
|
Every cluster contains a group of checkpoints. Each checkpoint has a
|
|
|
checkpoint name and checkpoint number. The number is used to uniquely reference
|
|
checkpoint name and checkpoint number. The number is used to uniquely reference
|
|
|
-an unlinked but still open checkpoint in the cluser.
|
|
|
|
|
|
|
+an unlinked but still open checkpoint in the cluster.
|
|
|
|
|
|
|
|
Every checkpoint contains a reference count which is used to determine when
|
|
Every checkpoint contains a reference count which is used to determine when
|
|
|
that checkpoint may be released. The algorithm rebuilds the reference count
|
|
that checkpoint may be released. The algorithm rebuilds the reference count
|
|
@@ -51,7 +51,7 @@ checkpoint data
|
|
|
number of opened connections to checkpoint and node identifier
|
|
number of opened connections to checkpoint and node identifier
|
|
|
refcount contains a summation of every reference count in the refcount_set
|
|
refcount contains a summation of every reference count in the refcount_set
|
|
|
|
|
|
|
|
-pseudocode executed by a processor when the syncrhonization service calls
|
|
|
|
|
|
|
+pseudocode executed by a processor when the synchronization service calls
|
|
|
the init event
|
|
the init event
|
|
|
call process_checkpoints_enter
|
|
call process_checkpoints_enter
|
|
|
|
|
|
|
@@ -77,7 +77,7 @@ the process event in the SYNC_REFCOUNT state
|
|
|
|
|
|
|
|
sync_checkpoints_enter:
|
|
sync_checkpoints_enter:
|
|
|
my_sync_state = SYNC_CHECKPOINT
|
|
my_sync_state = SYNC_CHECKPOINT
|
|
|
- my_current_iteration_state set to start of checkpont list
|
|
|
|
|
|
|
+ my_current_iteration_state set to start of checkpoint list
|
|
|
|
|
|
|
|
sync_refcounts_enter:
|
|
sync_refcounts_enter:
|
|
|
my_sync_state = SYNC_REFCOUNT
|
|
my_sync_state = SYNC_REFCOUNT
|