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 D30DE2F2D8 for ; Thu, 23 May 2019 04:21:32 -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 05ueexmMNRv2 for ; Thu, 23 May 2019 04:19:44 -0400 (EDT) Received: from smtp37.i.mail.ru (smtp37.i.mail.ru [94.100.177.97]) (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 1337A2F270 for ; Thu, 23 May 2019 04:19:43 -0400 (EDT) From: Georgy Kirichenko Subject: [tarantool-patches] [PATCH v2 0/8] Make transaction autonomous from a fiber internals Date: Thu, 23 May 2019 11:19:32 +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 two major options: 1. To make a transaction and a fiber independent from one another 2. To make a transaction commit asynchronous. The first one detaches transaction from fiber and stores all transaction data into a its own memory region. The second one is intended to allow to have more than one transaction per fiber in fly and it is a prerequisite for a parallel applier. Changes in v2: - Three patches are merged to master - Replicated rows are also copied to txn region - A fiber to process tx_prio endpoint - Engine commit and triggers are changed in order - Minor fixes according to review Issue: https://github.com/tarantool/tarantool/issues/1254 Branch: https://github.com/tarantool/tarantool/tree/g.kirichenko/gh-1254-remove-fiber-from-txn Georgy Kirichenko (8): 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 Remove fiber from a journal_entry structure Commit engine before all triggers Offload tx_prio processing to a fiber Enable asyncronous wal writes Introduce asynchronous txn commit src/box/applier.cc | 36 +++++-- src/box/box.cc | 160 ++++++++++++++++++++++++----- src/box/call.c | 16 ++- src/box/index.cc | 10 +- src/box/journal.c | 23 ++++- src/box/journal.h | 47 ++++++++- src/box/memtx_engine.c | 11 +- src/box/memtx_space.c | 8 +- src/box/request.c | 2 +- src/box/sql.c | 2 +- src/box/txn.c | 221 ++++++++++++++++++++++++----------------- src/box/txn.h | 30 +++--- src/box/vinyl.c | 12 +-- src/box/vy_log.c | 2 +- src/box/vy_scheduler.c | 16 +-- src/box/vy_stmt.c | 4 +- src/box/wal.c | 79 +++++++++++---- src/box/xrow.c | 14 +-- src/box/xrow.h | 12 ++- 19 files changed, 501 insertions(+), 204 deletions(-) -- 2.21.0