Re: PG wire protocol question

From: Manuel Gómez <targen(at)gmail(dot)com>
To: Albe Laurenz <laurenz(dot)albe(at)wien(dot)gv(dot)at>
Cc: "Boszormenyi Zoltan *EXTERN*" <zboszor(at)pr(dot)hu>, "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org>
Subject: Re: PG wire protocol question
Date: 2016-05-17 13:54:17
Message-ID: CAJWnFaMiPQXKfqKz1zcj_YJ-MvJEaVGO3yfUG_nJaSLc2e0gug@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Tue, May 17, 2016 at 9:29 AM, Albe Laurenz <laurenz(dot)albe(at)wien(dot)gv(dot)at> wrote:
> That blog post seems ill-informed - that has nothing to do with
> two-phase commit.
>
> The problem - that the server may commit a transaction, but the client
> never receives the server's response - is independent of whether
> two-phase commit is used or not.

The author addresses this in a comment within the linked page:

«The database may be consistent, but the system isn’t. A concurrent
request to the db will get the answer “yes, the transaction has
committed”, but the same request of the remote client gets “no, the
transaction has not yet committed.” The system may eventuallybecome
consistent, if the partition is healed and the acknowledgement reaches
the client. But it isn’t consistent until that point.

And the client can’t just wait indefinitely for acknowledgement–the
commit request may not have reached the server, in which case the
client would deadlock forever. Not to mention practical concerns (a
customer and clerk aren’t going to wait very long for a credit card
transaction to complete). Introducing timeouts then causes the
temporary inconsistency to become permanent.»

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Merlin Moncure 2016-05-17 14:07:00 Re: Columnar store as default for PostgreSQL 10?
Previous Message Jan de Visser 2016-05-17 13:52:12 Re: Ascii Elephant for text based protocols - Final