>>>>> "Tom" == Tom Lane <[EMAIL PROTECTED]> writes:

    Tom> Sailesh Krishnamurthy <[EMAIL PROTECTED]> writes:
    >> I'm not sure if I understand Tom's beef - I think he is
    >> concerned about what happens if a subordinate does not respond
    >> to a prepare message. I would assume that the co-ordinator
    >> would not let the commit go through until it has received
    >> confirmations from every subordinate.

    Tom> No.  I want to know what the subordinate does when it's
    Tom> promised to commit and the co-ordinator never responds.
    Tom> AFAICS the subordinate is screwed --- it can't commit, and it
    Tom> can't abort, and it can't expect to make progress
    Tom> indefinitely on other work while it's holding locks for the
    Tom> not-quite-committed transaction.

Okay I understand what you mean now.

AFAIK the general way things happen is that each site has a "recovery
procedure" that kicks in after a crash. If the co-ordinator crashes
(which could be before or after it sends out COMMIT messages to some
of the subordinates), its recovery manager will bring the system up,
read the log and ready information about all uncommitted transactions
in virtual storage.

If a Xact is in the PREPARE stage it will periodically send a message
to the co-ordinator asking about what happened to the transaction in
question. Once the co-ordinator has come back online it can respond to
the query.

Of course in the case of a co-ordinator going out of action totally
and remaining unconnected this is not a viable solution. 

If you're making the case that 2PC is not viable on very wide area
networks with intermitted connectivity, I agree whole-heartedly. 

That said, 2PC (and its children, PA and PC) have their place, and are
indeed used in many systems. 

For instance, say you are rigging up a message queueing infrastructure
(like MQ-series) to your database (say with NOTIFY), you'd at least
like to have the db act as a co-ordinator with the MQ.

Or the parallel cluster example I gave earlier. Clustered linux boxes
are definitely here although no open-source DBMS offers a parallel
solution.

-- 
Pip-pip
Sailesh
http://www.cs.berkeley.edu/~sailesh


---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
      subscribe-nomail command to [EMAIL PROTECTED] so that your
      message can get through to the mailing list cleanly

Reply via email to