[tarantool-patches] [PATCH v2 0/5] Strong sequentially LSN in journal

Georgy Kirichenko georgy at tarantool.org
Tue Jan 22 13:31:08 MSK 2019


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





More information about the Tarantool-patches mailing list