• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

tarantool / tarantool / 6455480252
85%
master: 88%

Build:
Build:
LAST BUILD BRANCH: gh-10737
DEFAULT BRANCH: master
Ran 09 Oct 2023 10:45AM UTC
Jobs 1
Files 459
Run time 23s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

09 Oct 2023 10:23AM UTC coverage: 85.225% (+0.005%) from 85.22%
6455480252

push

github

sergepetrenko
box: get rid of dummy NOPs after transactions ending with local rows

In order to preserve transaction boundaries over replication, Tarantool
writes a global NOP row after the last transaction row, if this row
happens to be local. This is done to make sure that the is_commit flag,
which is set only in the last transaction row, reaches the replica. This
wouldn't happen if the last row was local.

This workaround works fine for transactions completely authored by one
instance: when both global and local rows come from operations of a
single master.

However, it's possible to append local rows to a remote master's
transaction on a replica. For example, one can use on_replace triggers
to write to replica's local space on each new transaction coming from
master.

In this case essentially a global NOP entry is added at the end of a
remote master's transaction. This leads to several problems.

First of all, this bumps replica's LSN, which is counter-intuitive,
given that the replica might even be read-only. Besides, in a star
topology this leads to master being unable to connect to the replica
later on due to their vclocks becoming incompatible.

Secondly, even if replication channel between master and replica is
bidirectional, it creates a new row which should be replicated from
replica to master, but at the same time is the last row of the master's
transaction. Once master receives this row, it breaks its connection to
replica due to transaction boundary violation (the last row of the
transaction is received without its beginning).

Adding a NOP row became extraneous since the previous commit, which made
relay find transaction boundaries by itself.

Closes #8958

NO_DOC=bugfix

(cherry picked from commit f5e52b2c2)

59315 of 108218 branches covered (0.0%)

9 of 9 new or added lines in 1 file covered. (100.0%)

90544 of 106241 relevant lines covered (85.23%)

2174618.52 hits per line

Jobs
ID Job ID Ran Files Coverage
1 6455480252.1 09 Oct 2023 10:45AM UTC 0
85.23
GitHub Action Run
Source Files on build 6455480252
Detailed source file information is not available for this build.
  • Back to Repo
  • 4753208c on github
  • Prev Build on release/2.10 (#6395461103)
  • Next Build on release/2.10 (#6479118240)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc