Research Article
Deco: A Decentralized, Cooperative Atomic Commit Protocol
Algorithm 2
Behavior of a participant.
Token handling by , . | starts the transaction. | /* Transaction is finished All OR_F in dblist and OD_F are turned on. */ | Void run() { | On recovery do { | Restore the TDS of unfinished transactions from stable storage; | For each TDS, Start Proceed_Trans_Thread(TDS); | } /*recovery end*/ | While (True) { | Block to accept a token; | Put token into queue of related TDS; | Signal or start related Proceed_Trans_Thread(TDS) | } /*while (true) end */ |
}
| Void Proceed_Trans_Thread(TDS) { | Retrieve queue and from TDS; | While (Transaction not finished) { | While queue is empty { | Setup a rec_timer, sleep until receive a signal or timer expires; | If awake due to rec_timer expiration, then Call forward (); | } | While queue is not empty { | get from queue and Merge to ; | } | Call forward (); | According the rules of the protocol described in Section 3.1 | evaluate decision and start to process related job; | }//while |
}
|
|