1. | 2. Upon P ≠ ∅ ∧ CR = false ∧ LE = false | 3. For each () ∈P ∧ c∉Z, | 4. | 5. QUERY ← () | 6. Reliably send QUERY to | 7. | 8. Upon QUERY_RESULT(epoch’, cid’, r, Wi) from ri ∧ epoch’ = epoch ∧ | cid’ = cid ∧ CR = false ∧ LE = false | 9. | 10. | 11. Upon G∩R⊆ | 12. R’ ← Decide(c, Q) | 13. | 14. | 15. DECISION ← (epoch, cid, c, W’) | 16. Reliably broadcast DECISION to | 17. | 18. | 19. Upon QUERY(epoch’, cid’, r,) from | epoch’ = epoch ∧ cid’ = cid ∧ GR = false ∧ LE = false | 20. For each , | 21. c’ = c – (Seq(s, c) – j) | 22. W ← W∪ | 23. QUERY_RESULT ← (epoch, cid, c, W) | 24. Reliably send QUERY_RESULT to rL | 25. | 26. Upon DECISION(epoch, cid’, c, W’) from rL ∧ epoch’ = epoch ∧ cid’ = | cid ∧ GR = false ∧ LE = false | 27. E ← E ∪ W’ | 28. | 29. Decide(c, Q) | 30. For each s∈S and , | 30. If ∃e(s, j): e(s, j) ≠ ⊥ e(s, j) ∈, then | 31. W’ ← W’ ∪ | 32. Else | 33. e← (s, j, Empty) | 34. W’ ← W’ ∪ | 31. Return W’ |
|