mirror of
https://github.com/codership/wsrep-lib.git
synced 2025-07-30 07:23:07 +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:
@ -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();
|
||||
|
@ -29,7 +29,7 @@ namespace db
|
||||
int remove_fragments(const wsrep::ws_meta&) override
|
||||
{ return 0; }
|
||||
int commit(const wsrep::ws_handle&, const wsrep::ws_meta&) override;
|
||||
int rollback() override;
|
||||
int rollback(const wsrep::ws_handle&, const wsrep::ws_meta&) override;
|
||||
int apply_toi(const wsrep::ws_meta&, const wsrep::const_buffer&) override;
|
||||
void after_apply() override;
|
||||
void store_globals() override { }
|
||||
|
Reference in New Issue
Block a user