mirror of
https://github.com/codership/wsrep-lib.git
synced 2025-08-08 02:02:57 +03:00
Removed SR store implementation detail from wsrep-lib
The following was moved to application side implementation: - Removed sr_store from streaming context. - Removed sr_state from transaction. - Removed get_binlog_cache() from client_service interface. Other: - Add SR applier reference to append_fragment_and_commit() to make it available for application. - Add separate interface call to rollback SR transactions on disconnect. Rolling back SR transactions due to rollback fragment and rolling back SR transactions due to disconnect have different behaviors. Have separate calls for these different cases for clarity. - Remove non-const transaction accessor, not needed anymore because SR state has been moved to application side. - Remove unneeded set_fragments_from_table().
This commit is contained in:
@@ -90,11 +90,6 @@ namespace db
|
||||
void debug_sync(const char*) override { }
|
||||
void debug_crash(const char*) override { }
|
||||
|
||||
void *get_binlog_cache() override
|
||||
{
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
int fragment_cache_remove_transaction(
|
||||
const wsrep::id&,
|
||||
wsrep::transaction_id) override
|
||||
|
@@ -88,8 +88,7 @@ int db::high_priority_service::commit(const wsrep::ws_handle& ws_handle,
|
||||
}
|
||||
|
||||
int db::high_priority_service::rollback(const wsrep::ws_handle& ws_handle,
|
||||
const wsrep::ws_meta& ws_meta,
|
||||
bool)
|
||||
const wsrep::ws_meta& ws_meta)
|
||||
{
|
||||
client_.client_state_.prepare_for_ordering(ws_handle, ws_meta, false);
|
||||
int ret(client_.client_state_.before_rollback());
|
||||
@@ -100,6 +99,17 @@ int db::high_priority_service::rollback(const wsrep::ws_handle& ws_handle,
|
||||
return ret;
|
||||
}
|
||||
|
||||
int db::high_priority_service::rollback_sr_on_disconnect()
|
||||
{
|
||||
|
||||
auto ret = client_.client_state_.before_rollback();
|
||||
assert(ret == 0);
|
||||
client_.se_trx_.rollback();
|
||||
ret = client_.client_state_.after_rollback();
|
||||
assert(ret == 0);
|
||||
return ret;
|
||||
}
|
||||
|
||||
void db::high_priority_service::adopt_apply_error(wsrep::mutable_buffer& err)
|
||||
{
|
||||
client_.client_state_.adopt_apply_error(err);
|
||||
|
@@ -39,17 +39,17 @@ namespace db
|
||||
const wsrep::const_buffer&,
|
||||
wsrep::mutable_buffer&) override;
|
||||
int append_fragment_and_commit(
|
||||
wsrep::high_priority_service&,
|
||||
const wsrep::ws_handle&,
|
||||
const wsrep::ws_meta&,
|
||||
const wsrep::const_buffer&,
|
||||
int,
|
||||
const wsrep::xid&) override
|
||||
{ return 0; }
|
||||
int remove_fragments(const wsrep::ws_meta&) override
|
||||
{ return 0; }
|
||||
int commit(const wsrep::ws_handle&, const wsrep::ws_meta&) override;
|
||||
int rollback(const wsrep::ws_handle&, const wsrep::ws_meta&,
|
||||
bool skip_rollback = false) override;
|
||||
int rollback(const wsrep::ws_handle&, const wsrep::ws_meta&) override;
|
||||
int rollback_sr_on_disconnect() override;
|
||||
int apply_toi(const wsrep::ws_meta&, const wsrep::const_buffer&,
|
||||
wsrep::mutable_buffer&) override;
|
||||
int apply_nbo_begin(const wsrep::ws_meta&, const wsrep::const_buffer&,
|
||||
|
@@ -35,17 +35,12 @@ namespace db
|
||||
wsrep::transaction_id,
|
||||
int,
|
||||
const wsrep::const_buffer&,
|
||||
int,
|
||||
size_t,
|
||||
const wsrep::xid&,
|
||||
void *) override
|
||||
const wsrep::xid&) override
|
||||
{ throw wsrep::not_implemented_error(); }
|
||||
int update_fragment_meta(const wsrep::ws_meta&) override
|
||||
{ throw wsrep::not_implemented_error(); }
|
||||
int remove_fragments() override
|
||||
{ throw wsrep::not_implemented_error(); }
|
||||
int set_fragments_from_table() override
|
||||
{ return 0; }
|
||||
int commit(const wsrep::ws_handle&, const wsrep::ws_meta&) override
|
||||
{ throw wsrep::not_implemented_error(); }
|
||||
int rollback(const wsrep::ws_handle&, const wsrep::ws_meta&)
|
||||
|
Reference in New Issue
Block a user