-
Notifications
You must be signed in to change notification settings - Fork 376
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Sync transaction rolls back async and local ones #7903
Comments
P.S. This issue emerged from #7592. Yet I've decided to start a new one as it concerns the synchro queue owner, and the previous one was about local transactions on the read-only replica. |
If there are both sync and async spaces, it's most reasonable to suppose that those transactions do interleave. And under conditions of quorum loss an async transaction only has a chance to be committed right after the rollback and before the next sync tx arrives. Catching that moment seems to me nearly impossible. As a result, making a synchronous transaction in fact is a well-documented denial-of-service attack. |
We don't commit local / async transactions right away, because they might touch the same data synchronous transactions touch. For example,
Actually, when mvcc is used, the second transaction will be rolled back by conflict even if we don't wait for sync transaction. So it seems we can let local transactions bypass limbo. At least when mvcc is turned on. I don't think we should do so for async (not local) transactions though. |
This is by design and we do not have plans to change it. |
Tarantool verison
In general, all. I've tested
Tarantool 2.11.0-entrypoint-671-gdec0e0221
.Bug description
The loss of
replication_synchro_quorum
results in transactions rollback, including async and local transactions.Steps to reproduce
Actual behavior
Expected behavior
I believe neither local nor async transactions shouldn't be affected.
The text was updated successfully, but these errors were encountered: