[tarantool-patches] [PATCH 00/10] Transaction refactoring
Georgy Kirichenko
georgy at tarantool.org
Fri Apr 19 15:43:56 MSK 2019
This patch set is focused on tow major option:
1. make a transaction and a fiber independent from one another
2. make a transaction commit asynchronous.
The first one detached transaction from fiber and requires for a
separate transaction memory region for each transaction to store
the transaction itself, their journal entry and rows data.
The second one allows to have more than one transaction per fiber in
fly and it is a prerequisite for a parallel applier.
Issue: https://github.com/tarantool/tarantool/issues/1254
Branch: https://github.com/tarantool/tarantool/tree/g.kirichenko/gh-1254-txn-refactoring
Georgy Kirichenko (10):
Introduce a txn memory region
Alloc journal entry on a txn memory region
Encode a dml statement to a transaction memory region
Get rid of autocommit from a txn structure
Get rid of fiber_gc from txn_rollback
Require for txn in case of txn_begin_stmt/txn_rollback_stmt
Remove fiber from a journal_entry structure
Use mempool to alloc wal messages
Enable asyncronous wal writes
Introduce asynchronous txn commit
src/box/applier.cc | 36 ++++-
src/box/box.cc | 113 +++++++++++---
src/box/call.c | 16 +-
src/box/errcode.h | 2 +-
src/box/index.cc | 10 +-
src/box/journal.c | 27 +++-
src/box/journal.h | 66 ++++++++-
src/box/memtx_engine.c | 11 +-
src/box/memtx_space.c | 8 +-
src/box/request.c | 2 +-
src/box/sql.c | 2 +-
src/box/sql/vdbe.c | 2 +-
src/box/txn.c | 275 +++++++++++++++++++++++------------
src/box/txn.h | 35 +++--
src/box/vinyl.c | 12 +-
src/box/vy_log.c | 4 +-
src/box/vy_scheduler.c | 12 +-
src/box/vy_stmt.c | 6 +-
src/box/wal.c | 95 +++++++++---
src/box/xrow.c | 21 ++-
src/box/xrow.h | 12 +-
test/box/misc.result | 2 +-
test/engine/savepoint.result | 2 +-
test/sql/savepoints.result | 6 +-
24 files changed, 566 insertions(+), 211 deletions(-)
--
2.21.0
More information about the Tarantool-patches
mailing list