forked from codership/wsrep-lib
-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Refactored checks for transaction state before certification
Moved the check for transaction state before certification step into separate method abort_or_interrupted() which will check the state and adjust state and client_state error status accordingly. Moved the check for abort_or_interrupted() to happen before the state is changed to certifying and write set data is appended. This makes the check atomic and reduces the probability of race conditions. After this check we rely on provider side transaction state management and error reporting until the certification step is over. Change to public API: Pass client_state mutex wrappend in unique_lock object to client_service::interrupted() call. This way the DBMS side has a control to the lock object in case it needs to unlock it temporarily. The underlying mutex will always be locked when the lock object is passed via interrupted() call. Other: Allow server_state change from donor to connected. This may happen if the joiner crashes during SST and the provider reports it before the DBMS side SST mechanism detects the error.
- Loading branch information
Showing
6 changed files
with
56 additions
and
41 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