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 29B142E1F4 for ; Sun, 9 Jun 2019 16:44:51 -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 NjEi7A7Oxj9r for ; Sun, 9 Jun 2019 16:44:50 -0400 (EDT) Received: from smtp39.i.mail.ru (smtp39.i.mail.ru [94.100.177.99]) (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 4E7822E1A7 for ; Sun, 9 Jun 2019 16:44:50 -0400 (EDT) From: Georgy Kirichenko Subject: [tarantool-patches] [PATCH v3 00/14] Parallel applier Date: Sun, 9 Jun 2019 23:44:29 +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 introduces parallel applier processing on top of asynchronous transaction feature with corresponding fixes essential for the patch. This patch set is focused on three major options: 1. To make a transaction and a fiber independent from one another. 2. To make a transaction commit asynchronous. 3. To allow applier write transaction in parallel. Changes in v3: - Add a parallel applier implementation - Store transaction related data such as ddl trigger to a transaction memory region - Fix privileges defining - Minor fixes according to review 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 Georgy Kirichenko (14): txn: Fire a trigger after a transaction finalization ddl: synchronize privileges cache with actual data state. txn: transaction memory allocation ddl: place alter structures onto a txn memory region txn: get rid of autocommit from a txn structure txn: get rid of fiber_gc from txn_rollback wal: remove fiber from a journal_entry structure wal: enable asyncronous wal writes wal: a dedicated wal scheduling fiber core: latch_unlock_external routine txn: introduce asynchronous txn commit txn: handle fiber stop event at transaction level applier: apply transaction in parallel test: fix flaky test src/box/alter.cc | 47 ++- src/box/applier.cc | 395 ++++++++++++++++++-------- src/box/applier.h | 4 + src/box/box.cc | 131 +++++++-- src/box/call.c | 22 +- src/box/index.cc | 10 +- src/box/journal.c | 34 ++- src/box/journal.h | 51 +++- src/box/memtx_engine.c | 16 +- src/box/memtx_space.c | 8 +- src/box/sql.c | 2 +- src/box/txn.c | 294 +++++++++++-------- src/box/txn.h | 45 ++- src/box/vinyl.c | 18 +- src/box/vy_log.c | 2 +- src/box/vy_scheduler.c | 16 +- src/box/wal.c | 137 +++++++-- src/lib/core/latch.h | 13 +- test/box/ddl.result | 37 +++ test/box/ddl.test.lua | 15 + test/replication/sync.result | 7 +- test/replication/sync.test.lua | 4 +- test/replication/transaction.result | 16 +- test/replication/transaction.test.lua | 7 +- 24 files changed, 939 insertions(+), 392 deletions(-) -- 2.21.0