From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from localhost (localhost [127.0.0.1]) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTP id 864AB24318 for ; Tue, 22 Jan 2019 05:29:30 -0500 (EST) Received: from turing.freelists.org ([127.0.0.1]) by localhost (turing.freelists.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id bMdZhngZiO7a for ; Tue, 22 Jan 2019 05:29:30 -0500 (EST) Received: from smtp32.i.mail.ru (smtp32.i.mail.ru [94.100.177.92]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTPS id 3C175242D9 for ; Tue, 22 Jan 2019 05:29:30 -0500 (EST) From: Georgy Kirichenko Subject: [tarantool-patches] [PATCH v2 0/5] Strong sequentially LSN in journal Date: Tue, 22 Jan 2019 13:31:08 +0300 Message-Id: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: tarantool-patches-bounce@freelists.org Errors-to: tarantool-patches-bounce@freelists.org Reply-To: tarantool-patches@freelists.org List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: tarantool-patches List-subscribe: List-owner: List-post: List-archive: To: tarantool-patches@freelists.org Cc: Georgy Kirichenko The patchset eliminates LSN gaps from journal what is needed for synchronous replication to enforce data stream consistency. Replicaset vclock is promoted only after write, replication row applying is allowed only if previous row was processed. All conflicting rows to skip are replacing with NOPs to fill gaps. After all vclock following protected with assert to ensure that this is strict one step increase. Needed for: #980 Changes in v2: - Rebased against latest 2.1 - Fix handling rows which were returned back Issue: https://github.com/tarantool/tarantool/issues/980 Branch:https://github.com/tarantool/tarantool/tree/g.kirichenko/gh-980-disable-lsn-gaps Georgy Kirichenko (5): Do not promote wal vclock for failed writes Update replicaset vclock from wal Enforce applier out of order protection Emit NOP if an applier skips row Disallow lsn gaps while vclock following src/box/applier.cc | 120 +++++++++++++++++------------- src/box/box.cc | 3 +- src/box/replication.cc | 2 + src/box/replication.h | 3 + src/box/vclock.c | 16 +++- src/box/vclock.h | 3 + src/box/wal.c | 57 +++++--------- src/box/xrow.c | 2 +- test/unit/vclock.cc | 10 +-- test/xlog-py/dup_key.result | 12 ++- test/xlog-py/dup_key.test.py | 18 +++-- test/xlog/errinj.result | 1 - test/xlog/panic_on_lsn_gap.result | 65 ++++++++-------- 13 files changed, 174 insertions(+), 138 deletions(-) -- 2.20.1