[Tarantool-patches] [PATCH v2 00/19] Sync replication

Vladislav Shpilevoy v.shpilevoy at tarantool.org
Tue Jun 30 02:15:09 MSK 2020


Synchronous replication draft patchset. From the previous version
changed almost everything, not much sense to describe it all here.

Branch: http://github.com/tarantool/tarantool/tree/gh-4842-sync-replication
Issue: https://github.com/tarantool/tarantool/issues/4842

Leonid Vasiliev (1):
  replication: add support of qsync to the snapshot machinery

Serge Petrenko (11):
  xrow: introduce CONFIRM and ROLLBACK entries
  txn: introduce various reasons for txn rollback
  replication: write and read CONFIRM entries
  txn_limbo: add timeout when waiting for acks.
  txn_limbo: add ROLLBACK processing
  box: rework local_recovery to use async txn_commit
  replication: support ROLLBACK and CONFIRM during recovery
  replication: add test for synchro CONFIRM/ROLLBACK
  txn_limbo: add diag_set in txn_limbo_wait_confirm
  replication: delay initial join until confirmation
  replication: only send confirmed data during final join

Vladislav Shpilevoy (7):
  replication: introduce space.is_sync option
  replication: introduce replication_synchro_* cfg options
  txn: add TXN_WAIT_ACK flag
  replication: make sync transactions wait quorum
  applier: remove writer_cond
  applier: send heartbeat not only on commit, but on any write
  replication: block async transactions when not empty limbo

 src/box/CMakeLists.txt                        |   1 +
 src/box/alter.cc                              |   5 +
 src/box/applier.cc                            | 125 ++++-
 src/box/applier.h                             |   2 -
 src/box/box.cc                                | 148 +++++-
 src/box/box.h                                 |   2 +
 src/box/errcode.h                             |   4 +
 src/box/gc.c                                  |  12 +
 src/box/iproto_constants.h                    |  12 +
 src/box/lua/cfg.cc                            |  18 +
 src/box/lua/load_cfg.lua                      |  10 +
 src/box/lua/net_box.lua                       |   2 +
 src/box/lua/schema.lua                        |   3 +
 src/box/lua/space.cc                          |   5 +
 src/box/relay.cc                              |  22 +-
 src/box/replication.cc                        |   2 +
 src/box/replication.h                         |  12 +
 src/box/space_def.c                           |   2 +
 src/box/space_def.h                           |   6 +
 src/box/txn.c                                 | 155 +++++-
 src/box/txn.h                                 |  50 ++
 src/box/txn_limbo.c                           | 458 ++++++++++++++++++
 src/box/txn_limbo.h                           | 248 ++++++++++
 src/box/xrow.c                                | 106 ++++
 src/box/xrow.h                                |  46 ++
 test/app-tap/init_script.result               |   2 +
 test/box/admin.result                         |   4 +
 test/box/cfg.result                           |   8 +
 test/box/error.result                         |   4 +
 .../sync_replication_sanity.result            | 331 +++++++++++++
 .../sync_replication_sanity.test.lua          | 133 +++++
 test/unit/CMakeLists.txt                      |   3 +
 test/unit/snap_quorum_delay.cc                | 254 ++++++++++
 test/unit/snap_quorum_delay.result            |  12 +
 34 files changed, 2178 insertions(+), 29 deletions(-)
 create mode 100644 src/box/txn_limbo.c
 create mode 100644 src/box/txn_limbo.h
 create mode 100644 test/replication/sync_replication_sanity.result
 create mode 100644 test/replication/sync_replication_sanity.test.lua
 create mode 100644 test/unit/snap_quorum_delay.cc
 create mode 100644 test/unit/snap_quorum_delay.result

-- 
2.21.1 (Apple Git-122.3)



More information about the Tarantool-patches mailing list