1
0
mirror of https://github.com/codership/wsrep-lib.git synced 2025-07-28 20:02:00 +03:00

Fixes to SR rollback:

* Enable codepath to BF abort high priority SR applier
* Pass ws_handle, ws_meta to high priority service rollback
  call to allow total ordering of rollback process
This commit is contained in:
Teemu Ollakka
2018-07-12 18:00:52 +03:00
parent 3f4e5dea3b
commit 22d7a31d81
7 changed files with 55 additions and 15 deletions

View File

@ -46,9 +46,10 @@ int db::high_priority_service::apply_toi(
throw wsrep::not_implemented_error();
}
int db::high_priority_service::commit(const wsrep::ws_handle&,
const wsrep::ws_meta&)
int db::high_priority_service::commit(const wsrep::ws_handle& ws_handle,
const wsrep::ws_meta& ws_meta)
{
client_.client_state_.prepare_for_ordering(ws_handle, ws_meta, true);
int ret(client_.client_state_.before_commit());
if (ret == 0) client_.se_trx_.commit();
ret = ret || client_.client_state_.ordered_commit();
@ -56,8 +57,10 @@ int db::high_priority_service::commit(const wsrep::ws_handle&,
return ret;
}
int db::high_priority_service::rollback()
int db::high_priority_service::rollback(const wsrep::ws_handle& ws_handle,
const wsrep::ws_meta& ws_meta)
{
client_.client_state_.prepare_for_ordering(ws_handle, ws_meta, false);
int ret(client_.client_state_.before_rollback());
assert(ret == 0);
client_.se_trx_.rollback();