| Algorithm 4 CKP_Rollback( ) |
|
for (Pj ∈ PLk ∧ j ≠ i) do SEND_IntraCDGReq(Pj); //send IntraCDG request BUILD_IntraCDG(IntraCDGglobal); Traverse(IntraCDGglobal, CKPi); //traverse IntraCDGglobal by depth-first for (Pj ∈ PLk ∧ j ≠ i) do SEND_ERS(Pj); for (Pj ∈ PLk) do if (CKPs ∈ ERSi ∧ CKPs ∈ Pj) then Rollback(Pj, CKPs); for (CKPs ∈ ERSi ∧ CKPs ∈ S_InterCDGk) do if (∃Edge(CKPs, DCj)) then SEND_RollReq(DCj); //send rollback request to process related to DCj |