-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
…ther transactions during conflict resolution Summary: Before this commit, any intents of other transactions discovered during conflict resolution would have the same lifetime as the other transaction, even if those intents were part of an aborted subtransaction. This commit modifies the behavior to ignore all aborted intents of other transactions during conflict resolution, in a best-effort manner. The changes we make to support this new behavior are as follows: 1. Send aborted subtransaction metadata to the transaction coordinator during transaction heartbeat 2. Send subtransaction metadata to transaction participant in GetTransactionStatus RPCs 3. Do not conflict with intents from aborted subtransactions in conflict resolution 4. Track whether any intents discovered in a given subtransaction are modification intents. If this is not the case for any subtransactions which are not aborted for a given transaction, and that transaction is committed, ignore it. One important caveat is this now introduces a divergence from postgres behavior which was masked by the behavior we had before this commit. In postgres serializable isolation, any rows which are read implicitly acquire a read lock. Even if that read happened within a subtransaction which is later rolled back, the implicit read lock is tied to the scope of the outer transaction. We are tracking this here: #9587 Test Plan: ybd --java-test 'org.yb.pgsql.TestPgSavepoints' Reviewers: sergei, pjain Reviewed By: sergei, pjain Subscribers: mbautin, zyu, ybase Differential Revision: https://phabricator.dev.yugabyte.com/D17177
- Loading branch information
1 parent
f7f1319
commit 4fb1676
Showing
14 changed files
with
233 additions
and
99 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.