From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp36.i.mail.ru (smtp36.i.mail.ru [94.100.177.96]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 27D6B4429E1 for ; Tue, 30 Jun 2020 02:15:30 +0300 (MSK) From: Vladislav Shpilevoy Date: Tue, 30 Jun 2020 01:15:09 +0200 Message-Id: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [Tarantool-patches] [PATCH v2 00/19] Sync replication List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: tarantool-patches@dev.tarantool.org, sergepetrenko@tarantool.org 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)