From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from localhost (localhost [127.0.0.1]) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTP id 9C8FC2CCBE for ; Fri, 19 Apr 2019 08:44:11 -0400 (EDT) Received: from turing.freelists.org ([127.0.0.1]) by localhost (turing.freelists.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Nxc-q4bF90vw for ; Fri, 19 Apr 2019 08:44:11 -0400 (EDT) Received: from smtp50.i.mail.ru (smtp50.i.mail.ru [94.100.177.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTPS id B88FD2C676 for ; Fri, 19 Apr 2019 08:44:10 -0400 (EDT) From: Georgy Kirichenko Subject: [tarantool-patches] [PATCH 00/10] Transaction refactoring Date: Fri, 19 Apr 2019 15:43:56 +0300 Message-Id: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: tarantool-patches-bounce@freelists.org Errors-to: tarantool-patches-bounce@freelists.org Reply-To: tarantool-patches@freelists.org List-Help: List-Unsubscribe: List-software: Ecartis version 1.0.0 List-Id: tarantool-patches List-Subscribe: List-Owner: List-post: List-Archive: To: tarantool-patches@freelists.org Cc: Georgy Kirichenko 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