[Tarantool-patches] [PATCH v2 2/2] wal: reorder tx rows so that a tx ends on a global row

Konstantin Osipov kostja.osipov at gmail.com
Tue May 26 14:41:34 MSK 2020


* Serge Petrenko <sergepetrenko at tarantool.org> [20/05/26 12:42]:
> 
> 25.05.2020 19:34, Konstantin Osipov пишет:
> > * Serge Petrenko <sergepetrenko at tarantool.org> [20/05/25 14:00]:
> > 
> > While I think it's an acceptable strategy for a bugfix, I still
> > think relaying has to be fixed to be transactional, the current
> > xstream api is a huge legacy we're stuck with since Tarantool 1.3!
> > 
> > It saddens me a great deal the relay patch may be shuffled into
> > the desk once the problem is not as urgent.
> Hi! Thanks for your  answer.
> I understand your concern with transactional relay rework. However, this
> approach faces some non-trivial problems we discussed verbally. That's why
> I chose a more simple solution.
> 
> 
> I have a question regarding this patch. Do you think I should reorder the tx
> rows
> so that the last row is a global one? Maybe it'd be better to just set
> is_commit
> flag on the last global row? This breaks tx boundaries in local WAL, but
> preserves
> them as is in replication and in other instances' WALs. I don't think we'll
> need tx
> boundariesin local WAL anyway, but still breaking the invariant that the
> last tx
> row has an is_commit flagset to true is scary.

We will eventually need tx boundaries everywhere, it's just a
rakes waiting to be stepped on that we added transaction
boundaries but did not enforce them everywhere.

If you set is_commit flag on the last global row, you will exclude
local rows from the transaction locally. 
Reordering, but more specifically, simply moving the last global
xrow to the end of the transaction list, is safer IMHO.


-- 
Konstantin Osipov, Moscow, Russia


More information about the Tarantool-patches mailing list