Обсуждение: 2-phase commit
Hello,
Is there any open source implementation of 2-phase commit out there using
Postgres ?
The basic logic says :
MASTER                               SLAVE
------                               ------
begin atomic action
send request 1-n
send "prepare to commit message"
                                     if action_can_be_performed
                                        lock data
                                        store initial state on disk
                                        store request on disk
                                        send "ok" message
                                     else
                                        send "failure" message
if all slaves said "ok"
     send "commit" message
else
     send "rollback" message
Wait for acknowledgements
                                     if master said commit
                                       do work
                                       unlock data
                                     Send "acknowledgement" message
How can I check "action_can_be_performed" (i.e. what conditions satisfy an
"ok" vote ?)
thanks for your time.
-richard
_______________________________________________________
Say Bye to Slow Internet!
http://www.home.com/xinbox/signup.html
			
		richard excite wrote: > Hello, > > Is there any open source implementation of 2-phase commit out there using > Postgres ? I think this is the common implementation of all network interface to PostgreSQL. You can use DBI/DBD::Pg for example. When you pass a query to the backend you can use the return status to commit or rollback your transactions... Just wait that all you slaves return their status. This kind of development can be done in one day with Perl.... but for your question I don't know any existing programs doing that. Regards