Re: [HACKERS] make async slave to wait for lsn to be replayed

Dmitry Ivanov <d.ivanov@postgrespro.ru>

From: Dmitry Ivanov <d.ivanov@postgrespro.ru>
To: Simon Riggs <simon@2ndquadrant.com>
Cc: Ivan Kartyshov <i.kartyshov@postgrespro.ru>, Thomas Munro <thomas.munro@enterprisedb.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2018-03-06T11:24:53Z
Lists: pgsql-hackers
> In PG11, I propose the following command, sticking mostly to Ants'
> syntax, and allowing to wait for multiple events before it returns. It
> doesn't hold snapshot and will not get cancelled by Hot Standby.
> 
> WAIT FOR event [, event ...] options
> 
> event is
> LSN value
> TIMESTAMP value
> 
> options
> TIMEOUT delay
> UNTIL TIMESTAMP timestamp
> (we have both, so people don't need to do math, they can use whichever
> they have)

I have a (possibly) dumb question: if we have specified several events, 
should WAIT finish if only one of them triggered? It's not immediately 
obvious if we're waiting for ALL of them to trigger, or just one will 
suffice (ANY). IMO the syntax could be extended to something like:

WAIT FOR [ANY | ALL] event [, event ...] options,

with ANY being the default variant.


-- 
Dmitry Ivanov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company


Commits

  1. Implement waiting for given lsn at transaction start