-
Notifications
You must be signed in to change notification settings - Fork 3.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
60567: kv/kvserver: allow the merge transaction to be pushed r=nvanbenschoten a=ajwerner Historically we have not allowed the merge transaction to be pushed. The reason we disabled this was because of the hazard due to attempting to refresh reads on the RHS of the merge after the SubsumeRequest has been sent. The `SubsumeRequest` effectively freezes the RHS until the merge commits or aborts. In order to side-step this hazard, this change ensures that nothing should prevent the merge transaction from either committing or aborting. ### kv/kvclient: add ManualRefresh support for transactions This commit adds support for client-initiated refreshes of transactions. The implementation is somewhat simplistic in that it hijacks existing logic that occurs during the sending of a request. This makes the implementation more uniform with the rest of the client library at the cost of being somewhat awkward and implicit from a code-reading perspective. The motivation for this change is to provide the necessary tools to allow the merge transaction to get pushed. The adoption follows in the next commit. Fixes #59308. Release note: None Co-authored-by: Andrew Werner <[email protected]>
- Loading branch information
Showing
8 changed files
with
278 additions
and
53 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
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.