Re: Stopping logical replication protocol - Mailing list pgsql-hackers

From Andres Freund
Subject Re: Stopping logical replication protocol
Date
Msg-id 20161004211453.GA1511@awork2
Whole thread Raw
In response to Re: Stopping logical replication protocol  (Craig Ringer <craig@2ndquadrant.com>)
Responses Re: Stopping logical replication protocol  (Craig Ringer <craig@2ndquadrant.com>)
List pgsql-hackers
Hi,

On 2016-09-23 13:01:27 +0800, Craig Ringer wrote:
> From f98f2388c57d938ebbe07ccd2dbe02138312858f Mon Sep 17 00:00:00 2001
> From: Vladimir Gordiychuk <folyga@gmail.com>
> Date: Wed, 7 Sep 2016 00:39:18 +0300
> Subject: [PATCH 2/4] Client-initiated CopyDone during transaction decoding in
>  walsender
> 
> The prior patch caused the walsender to react to a client-initiated
> CopyDone while it's in the WalSndLoop. That's not enough to let clients
> end logical decoding mid-transaction because we loop in ReorderBufferCommit
> during decoding of a transaction without ever returning to WalSndLoop.
> 
> Allow breaking out of ReorderBufferCommit by detecting that client
> input has requested an end to COPY BOTH mode, so clients can abort
> decoding mid-transaction.

Hm, I'm *VERY* doubtful about doing this via yet another callback. Why
don't we just error out in the prepare write callback?

I don't think it's a good idea to return a non-error state if a command
is interrupted in the middle. We might already have sent a partial
transaction or such.   Also compare this to interrupting a query - we
don't just returning rows, we error out.


Andres



pgsql-hackers by date:

Previous
From: Michael Paquier
Date:
Subject: Re: Tracking wait event for latches
Next
From: Thomas Munro
Date:
Subject: Re: Dynamic shared memory areas