[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