-
Notifications
You must be signed in to change notification settings - Fork 727
Description
The "notify about commit" logic does the following:
given:
- tx1 writes 1=1, not commit yet, the new portion is visible as uncommitted for reads
- tx2 wants to read everything, sees the uncommitted portion by tx1, remembers that there might be conflict. It will know for sure whether there is a conflict or not only when it actually reads the portion
- tx2 goes to read everything (it happens in separate actors to the column shard tablet), it reads very very long time
- tx2 during the actual read, understands that there is a conflict for sure between tx1 and tx2, it will be able to "register" this conflict only when the actual read is finished and the column shard processes the result
- meanwhile, the tx1 commits successfully and disappears completely from the shard
- tx2 finishes the read, gets back to the column shard and wants to register the conflict. But there is no tx2 anymore. So tx2 has to understand somehow whether tx1 committed successfully and tx2 must break itself, or tx1 aborted and tx2 may proceed.
The "notify about commit" logic lets tx2 understand whether tx1 has committed or not.
Currently, this logic does not work completely due to various bugs.
Metadata
Metadata
Assignees
Labels
No labels