Skip to content

Fix the notify about commit logic in Column Shards #26463

@kirillvasilenko

Description

@kirillvasilenko

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

Labels

No labels
No labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions