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

tarantool / tarantool / 10405809061
88%

Build:
DEFAULT BRANCH: master
Ran 15 Aug 2024 03:06PM UTC
Jobs 1
Files 514
Run time 2min
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

15 Aug 2024 02:56PM UTC coverage: 87.184% (+0.02%) from 87.162%
10405809061

push

github

sergepetrenko
box: enable synchro replication for system spaces when limbo is claimed

Mixing asynchronous and synchronous replication can lead to a split-brain
state, when the new limbo owner doesn't have all the asynchronous
transactions of the former owner. By default, the system spaces remain
asynchronous even when all the user-defined spaces are synchronous.

To fix this, let's enable synchronous replication for system spaces when
the synchronous queue is claimed.

We need to do it early on in `txn_limbo_req_prepare` rather than in
`txn_limbo_read_promote` , because the latter is called only after the
`IPROTO_PROMOTE` WAL write succeeds. While the `IPROTO_PROMOTE` WAL write
is in progress, the user will be able to perform some asynchronous
operations on system spaces, and these operations will be written to the
journal after the `IPROTO_PROMOTE` WAL write. This will lead to
asynchronous operations on system spaces inside the “synchronous” part of
the journal. Taking action in `txn_limbo_req_prepare` will ensure that no
changes to systems spaces can be made during limbo ownership acquisition.

There can be 4 cases for limbo ownership change, the actions are taken on
all instances of the replicaset:
|---------------|---------------|------------------------------|
|   Old owner   |   New owner   |           Action             |
|---------------|---------------|------------------------------|
|      nil      |      nil      |          no action           |
|---------------|---------------|------------------------------|
|      nil      | some instance |  enable synchro replication  |
|---------------|---------------|------------------------------|
| some instance |      nil      |  disable synchro replication |
|---------------|---------------|------------------------------|
| some instance | some instance |          no action           |
|---------------|---------------|------------------------------|

We do not enable synchronous replication for the following sy... (continued)

68272 of 121549 branches covered (56.17%)

49 of 51 new or added lines in 2 files covered. (96.08%)

66 existing lines in 24 files now uncovered.

100915 of 115749 relevant lines covered (87.18%)

2457193.21 hits per line

Jobs
ID Job ID Ran Files Coverage
1 10405809061.1 15 Aug 2024 03:06PM UTC 0
87.18
GitHub Action Run
Source Files on build 10405809061
Detailed source file information is not available for this build.
  • Back to Repo
  • 371fa0dc on github
  • Prev Build on master (#10403543527)
  • Next Build on master (#10405817590)
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