[Tarantool-patches] [PATCH 0/6] Synchronous replication preparation
Georgy Kirichenko
georgy at tarantool.org
Tue Nov 19 19:04:51 MSK 2019
This patchset contains 6 patches and includes some refactoring
and synchronous replication preparation.
First three patches provides coio, recovery and xstream
refactoring which got rid of exceptions. This makes
corresponding facilities C-compliant and enables its usage
from a wal source.
Fourth patch fixes a rare vinyl error which manifests itself while
transactional recovery as there is no data change and vy_tx log
tends to be empty.
Fifth patch improves recovery journal making them able to track
recovery vclock. This enables the last patch which implements
transactional recovery (either local wal including hot-standby or
final join). Transactional recovery is essential in case of
synchronous replication because this both sources (wal and final
join stream) would contain written but not yet committed
transaction and we will be in duty to recognize it.
Branch:
https://github.com/tarantool/tarantool/tree/g.kirichenko/gh-980-preparation
Issue:
https://github.com/tarantool/tarantool/issues/980
Georgy Kirichenko (6):
recovery: do not throw an error
coio: do not htrow an exception
xstream: get rid of an exception
vinyl: do not insert vy_tx twice into writers list
box: improve recovery journal
recovery: follow transaction boundaries while recovery or join
src/box/applier.cc | 140 ++++++++--------
src/box/box.cc | 119 ++++++++++----
src/box/recovery.cc | 87 ++++++----
src/box/recovery.h | 14 +-
src/box/relay.cc | 47 +++---
src/box/vy_tx.c | 2 +-
src/box/xrow_io.cc | 59 +++----
src/box/xrow_io.h | 11 +-
src/box/xstream.cc | 7 +-
src/box/xstream.h | 2 +-
src/lib/core/coio.cc | 212 +++++++++++++------------
src/lib/core/coio.h | 13 +-
src/lib/core/coio_buf.h | 8 +
test/xlog-py/big_lsn.result | 4 +
test/xlog-py/big_lsn.test.py | 13 +-
test/xlog-py/dup_key.result | 8 +
test/xlog-py/dup_key.test.py | 7 +
test/xlog/panic_on_broken_lsn.result | 9 +-
test/xlog/panic_on_broken_lsn.test.lua | 7 +-
19 files changed, 449 insertions(+), 320 deletions(-)
--
2.24.0
More information about the Tarantool-patches
mailing list