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

Georgy Kirichenko georgy at tarantool.org
Fri Jan 4 13:34:10 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

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                | 113 ++++++++++++++++--------------
 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, 167 insertions(+), 138 deletions(-)

-- 
2.20.1





More information about the Tarantool-patches mailing list