pgsql: Implement waiting for given lsn at transaction start

Поиск
Список
Период
Сортировка
От Alexander Korotkov
Тема pgsql: Implement waiting for given lsn at transaction start
Дата
Msg-id E1jLvFF-00017n-Cn@gemulon.postgresql.org
обсуждение исходный текст
Ответы Re: pgsql: Implement waiting for given lsn at transaction start  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-committers
Implement waiting for given lsn at transaction start

This commit adds following optional clause to BEGIN and START TRANSACTION
commands.

  WAIT FOR LSN lsn [ TIMEOUT timeout ]

New clause pospones transaction start till given lsn is applied on standby.
This clause allows user be sure, that changes previously made on primary would
be visible on standby.

New shared memory struct is used to track awaited lsn per backend.  Recovery
process wakes up backend once required lsn is applied.

Author: Ivan Kartyshov, Anna Akenteva
Reviewed-by: Craig Ringer, Thomas Munro, Robert Haas, Kyotaro Horiguchi
Reviewed-by: Masahiko Sawada, Ants Aasma, Dmitry Ivanov, Simon Riggs
Reviewed-by: Amit Kapila, Alexander Korotkov
Discussion: https://postgr.es/m/0240c26c-9f84-30ea-fca9-93ab2df5f305%40postgrespro.ru

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/0f5ca02f53ac2b211d8518f0882c49284c0c9610

Modified Files
--------------
doc/src/sgml/ref/begin.sgml             |  17 +-
doc/src/sgml/ref/start_transaction.sgml |  17 +-
src/backend/access/transam/xlog.c       |  13 ++
src/backend/commands/Makefile           |   3 +-
src/backend/commands/wait.c             | 295 ++++++++++++++++++++++++++++++++
src/backend/nodes/copyfuncs.c           |  15 ++
src/backend/nodes/equalfuncs.c          |  13 ++
src/backend/nodes/outfuncs.c            |  28 +++
src/backend/parser/gram.y               |  37 +++-
src/backend/storage/ipc/ipci.c          |   7 +
src/backend/storage/lmgr/proc.c         |   4 +
src/backend/tcop/utility.c              |  13 ++
src/backend/utils/adt/misc.c            |   2 -
src/include/commands/wait.h             |  26 +++
src/include/nodes/nodes.h               |   1 +
src/include/nodes/parsenodes.h          |  12 ++
src/include/parser/kwlist.h             |   3 +
src/include/utils/timestamp.h           |   2 +
src/test/recovery/t/020_begin_wait.pl   |  85 +++++++++
src/tools/pgindent/typedefs.list        |   2 +
20 files changed, 585 insertions(+), 10 deletions(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: pgsql: Adjust bytea get_bit/set_bit to cope with bytea strings > 256MB.
Следующее
От: Tom Lane
Дата:
Сообщение: Re: pgsql: Implement waiting for given lsn at transaction start