From: Konstantin Osipov <kostja.osipov@gmail.com> To: Cyrill Gorcunov <gorcunov@gmail.com> Cc: tml <tarantool-patches@dev.tarantool.org> Subject: Re: [Tarantool-patches] [PATCH v15 11/11] box/journal: redesign journal operations Date: Fri, 20 Mar 2020 16:09:05 +0300 [thread overview] Message-ID: <20200320130905.GA29536@atlas> (raw) In-Reply-To: <20200320111224.GE8326@uranus> * Cyrill Gorcunov <gorcunov@gmail.com> [20/03/20 14:15]: > On Fri, Mar 20, 2020 at 01:58:42PM +0300, Konstantin Osipov wrote: > > * Cyrill Gorcunov <gorcunov@gmail.com> [20/03/20 13:34]: > > > > > > > > > > - if (txn_write_to_wal(req) != 0) > > > > > + fiber_set_txn(fiber(), NULL); > > > > > + if (journal_write(req) != 0) { > > > > > + fiber_set_txn(fiber(), txn); > > > > > > > > I wonder why do you need to clear/set txn in txn_commit()? > > > > Forgive me for being really painful about it, but why not use > > different complete callbacks for sync and async wal writes?-) > > Under the hood they will still call txn_complete(), but one will > > assert, and another will not? > > Hmm. If I remember correctly we've been planning to use callbacks > only for async writes. Actually I can introduce callback helper > for sync writes as well but this ruines the whole idea, no? But aren't you using the same callback for sync and async now? And if you are not using callback for sync, why do you need to manipulate with txn in sync? I'm lost, I accept it. > > I can easily hide this bit test inside txn_complete itself and > for sync write there will be plain txn_complete call, like > > txn_commit > ... > journal_write(); > ... > txn_complete(); My point is simple: can we avoid the whole mess of clearing and restoring fiber txn for sync write calls? > > ie the whole idea was to not use callbacks for sync write, no? -- Konstantin Osipov, Moscow, Russia
next prev parent reply other threads:[~2020-03-20 13:09 UTC|newest] Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-03-20 8:19 [Tarantool-patches] [PATCH v15 00/11] journal redesign sync and async writes Cyrill Gorcunov 2020-03-20 8:19 ` [Tarantool-patches] [PATCH v15 01/11] box: recovery_journal_create -- set journal here Cyrill Gorcunov 2020-03-20 8:19 ` [Tarantool-patches] [PATCH v15 02/11] box: recovery_journal -- declare it as static Cyrill Gorcunov 2020-03-20 8:19 ` [Tarantool-patches] [PATCH v15 03/11] box/txn: move fiber_set_txn to header Cyrill Gorcunov 2020-03-20 10:13 ` Konstantin Osipov 2020-03-20 10:17 ` Cyrill Gorcunov 2020-03-20 10:23 ` Konstantin Osipov 2020-03-20 8:19 ` [Tarantool-patches] [PATCH v15 04/11] box/txn: rename txn_write to txn_commit_async Cyrill Gorcunov 2020-03-20 8:19 ` [Tarantool-patches] [PATCH v15 05/11] box/txn: move setup of txn start to txn_prepare Cyrill Gorcunov 2020-03-20 8:19 ` [Tarantool-patches] [PATCH v15 06/11] box/txn: add txn_commit_nop helper Cyrill Gorcunov 2020-03-20 8:19 ` [Tarantool-patches] [PATCH v15 07/11] box/txn: rename txn_entry_complete_cb to txn_complete_async Cyrill Gorcunov 2020-03-20 8:19 ` [Tarantool-patches] [PATCH v15 08/11] box/txn: unweave txn_commit from txn_commit_async Cyrill Gorcunov 2020-03-20 8:34 ` Oleg Babin 2020-03-20 8:46 ` Cyrill Gorcunov 2020-03-20 8:59 ` Cyrill Gorcunov 2020-03-20 8:19 ` [Tarantool-patches] [PATCH v15 09/11] box/txn: clear fiber storage right before journal write Cyrill Gorcunov 2020-03-20 8:19 ` [Tarantool-patches] [PATCH v15 10/11] box/txn: move journal allocation into separate routine Cyrill Gorcunov 2020-03-20 8:19 ` [Tarantool-patches] [PATCH v15 11/11] box/journal: redesign journal operations Cyrill Gorcunov 2020-03-20 10:22 ` Konstantin Osipov 2020-03-20 10:29 ` Cyrill Gorcunov 2020-03-20 10:58 ` Konstantin Osipov 2020-03-20 11:12 ` Cyrill Gorcunov 2020-03-20 13:09 ` Konstantin Osipov [this message] 2020-03-20 13:33 ` Cyrill Gorcunov 2020-03-20 13:02 ` [Tarantool-patches] [PATCH v16 " Cyrill Gorcunov 2020-03-20 13:34 ` Konstantin Osipov 2020-03-20 13:58 ` [Tarantool-patches] [PATCH v15 00/11] journal redesign sync and async writes Kirill Yukhin 2020-03-21 19:51 ` Konstantin Osipov 2020-04-08 11:12 ` Kirill Yukhin
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=20200320130905.GA29536@atlas \ --to=kostja.osipov@gmail.com \ --cc=gorcunov@gmail.com \ --cc=tarantool-patches@dev.tarantool.org \ --subject='Re: [Tarantool-patches] [PATCH v15 11/11] box/journal: redesign journal operations' \ /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