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

Vladislav Shpilevoy v.shpilevoy at tarantool.org
Fri May 29 01:54:04 MSK 2020


Thanks   for   the   patch,
But   I   have  a  comment!
It   is   a   nice  crutch,
Yet we need one more moment.

The patch basically sacrifices transaction rows order
and WAL correctness for the sake of replication. It
does not look right. Why can't we leave WAL as is, and
tweak all these things in relay? It looks really wrong
to change statements order. Especially taking into
account this is needed *only* for replication. For example,
consider FKs.

A local space has a FOREIGN KEY reference to a global
space. To make it work, we need to insert into the global
space first, and then into the local space. When you change
the order, the local insert goes first, and violates the
foreign key. So if we will check FKs on recovery (when we
will have FKs in box), this patch will break them.

Alternative to relay - append a dummy NOP statement in the
end of the transaction, which would be global. But this is
also a crutch. I think the TSNs figuring out should be done
in relay. It could keep track of the current transaction,
change TSNs and is_commit when necessary.


More information about the Tarantool-patches mailing list