From: Georgy Kirichenko <georgy@tarantool.org> To: tarantool-patches@freelists.org Cc: Georgy Kirichenko <georgy@tarantool.org> Subject: [tarantool-patches] [PATCH v5 0/7] Parallel applier Date: Sat, 22 Jun 2019 00:48:14 +0300 [thread overview] Message-ID: <cover.1561153472.git.georgy@tarantool.org> (raw) This patch set introduces parallel applier processing on top of asynchronous transaction feature with corresponding fixes that are essential for the patch set. This patch set is focused on three major options: 1. To make a transaction and fiber engines independent from one another. 2. To make a transaction commit asynchronous. 3. To allow applier write transaction in parallel. Changes in v5: - fiber_gc after each txn_rollback - Autocommit patch fixes according to review - replicaset.applier.on_{commit/rollback} triggers to coordinate appliers - Extract refactoring into a separate patch - Minor fixes according to review Changes in v4: - Rebase against latest master - Move helper commits to the head of the patch set - Squash asynchronous wal and asynchronous transaction commits - Make txn responsible for fiber yields - Make journal asynchronous and simplify its interface - Don't implement txn_wait method - Minor fixes according to review 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 Branch: https://github.com/tarantool/tarantool/tree/g.kirichenko/gh-1254-parallel-applier Issue: https://github.com/tarantool/tarantool/issues/1254 Georgy Kirichenko (7): txn: unref statement at txn_free txn: get rid of autocommit from a txn structure txn: get rid of fiber_gc from txn_rollback wal: introduce a journal entry finalization callback txn: introduce asynchronous txn commit applier: apply transaction in parallel test: fix flaky test src/box/alter.cc | 6 + src/box/applier.cc | 236 +++++++++++++++---- src/box/applier.h | 7 + src/box/box.cc | 78 ++++--- src/box/call.c | 22 +- src/box/index.cc | 10 +- src/box/journal.c | 11 +- src/box/journal.h | 35 ++- src/box/memtx_engine.c | 11 +- src/box/memtx_space.c | 6 +- src/box/replication.cc | 7 + src/box/replication.h | 11 + src/box/sql.c | 2 +- src/box/txn.c | 311 ++++++++++++++++---------- src/box/txn.h | 39 ++-- src/box/vy_log.c | 3 +- src/box/vy_scheduler.c | 16 +- src/box/wal.c | 48 ++-- src/lib/core/latch.h | 10 + test/replication/sync.result | 7 +- test/replication/sync.test.lua | 4 +- test/replication/transaction.result | 16 +- test/replication/transaction.test.lua | 7 +- 23 files changed, 630 insertions(+), 273 deletions(-) -- 2.22.0
next reply other threads:[~2019-06-21 21:48 UTC|newest] Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-06-21 21:48 Georgy Kirichenko [this message] 2019-06-21 21:48 ` [tarantool-patches] [PATCH v5 1/7] txn: unref statement at txn_free Georgy Kirichenko 2019-06-21 21:48 ` [tarantool-patches] [PATCH v5 2/7] txn: get rid of autocommit from a txn structure Georgy Kirichenko 2019-06-21 21:48 ` [tarantool-patches] [PATCH v5 3/7] txn: get rid of fiber_gc from txn_rollback Georgy Kirichenko 2019-06-21 21:48 ` [tarantool-patches] [PATCH v5 4/7] wal: introduce a journal entry finalization callback Georgy Kirichenko 2019-06-21 21:48 ` [tarantool-patches] [PATCH v5 5/7] txn: introduce asynchronous txn commit Georgy Kirichenko 2019-06-21 21:48 ` [tarantool-patches] [PATCH v5 6/7] applier: apply transaction in parallel Georgy Kirichenko 2019-06-21 21:48 ` [tarantool-patches] [PATCH v5 7/7] test: fix flaky test Georgy Kirichenko 2019-06-25 16:08 ` [tarantool-patches] [PATCH v5 0/7] Parallel applier Vladimir Davydov
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=cover.1561153472.git.georgy@tarantool.org \ --to=georgy@tarantool.org \ --cc=tarantool-patches@freelists.org \ --subject='Re: [tarantool-patches] [PATCH v5 0/7] Parallel applier' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox