Tarantool development patches archive
 help / color / mirror / Atom feed
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

  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