mirror of
https://github.com/codership/wsrep-lib.git
synced 2025-08-08 02:02:57 +03:00
The changes:
* Removed WITH_WSREP_SR_SPEEDUP_REPLAY and DEBUG_SR_SPEEDUP_REPLAY * Added "--wsrep_SR_store=undolog" for enabling SR speedup * Modified MTR tests "galera_sr.GCF-572" and "galera_sr.galera_sr_cc_master" * Improved the code that removes unneeded fragments from binlog_fragment_cache. Now all galera_sr tests succeed when SR speedup is disabled and most galera_sr MTR tests succeed when SR speedup up is enabled. The failing tests are listed in "skipped_tests" file. The following MTR test suite run succeeds: (cd mysql-test; ./mysql-test-run.pl --mysqld="--wsrep_SR_store=undolog" --suite=galera_sr --skip-test-list=../skipped_tests --force)
This commit is contained in:
@@ -217,8 +217,8 @@ namespace wsrep
|
||||
* been enabled.
|
||||
*/
|
||||
virtual void debug_crash(const char* crash_point) = 0;
|
||||
|
||||
#ifdef WITH_WSREP_SR_SPEEDUP
|
||||
|
||||
/**
|
||||
* Return the binlog cache for the currently execution
|
||||
* transaction or a NULL pointer if no such cache exists.
|
||||
|
@@ -98,6 +98,9 @@ namespace wsrep
|
||||
const wsrep::ws_handle& ws_handle,
|
||||
const wsrep::ws_meta& ws_meta,
|
||||
const wsrep::const_buffer& data,
|
||||
#ifdef WITH_WSREP_SR_SPEEDUP
|
||||
int sr_store,
|
||||
#endif /* WITH_WSREP_SR_SPEEDUP */
|
||||
const wsrep::xid& xid) = 0;
|
||||
|
||||
/**
|
||||
|
@@ -65,13 +65,14 @@ namespace wsrep
|
||||
wsrep::transaction_id client_id,
|
||||
int flags,
|
||||
const wsrep::const_buffer& data,
|
||||
#ifdef WITH_WSREP_SR_SPEEDUP_REPLAY
|
||||
#ifdef WITH_WSREP_SR_SPEEDUP
|
||||
int sr_store,
|
||||
size_t offset,
|
||||
const wsrep::xid& xid,
|
||||
void *binlog_cache) = 0;
|
||||
#else
|
||||
const wsrep::xid& xid) = 0;
|
||||
#endif /* WITH_WSREP_SR_SPEEDUP_REPLAY */
|
||||
#endif /* WITH_WSREP_SR_SPEEDUP */
|
||||
/**
|
||||
* Update fragment meta data after certification process.
|
||||
*/
|
||||
@@ -82,8 +83,8 @@ namespace wsrep
|
||||
* adopted a transaction prior this call.
|
||||
*/
|
||||
virtual int remove_fragments() = 0;
|
||||
|
||||
#ifdef WITH_WSREP_SR_SPEEDUP
|
||||
|
||||
int set_fragments_from_table() {return 0;};
|
||||
#endif /* WITH_WSREP_SR_SPEEDUP */
|
||||
|
||||
|
@@ -189,6 +189,17 @@ namespace wsrep
|
||||
unit_counter_ = 0;
|
||||
log_position_ = 0;
|
||||
}
|
||||
#ifdef WITH_WSREP_SR_SPEEDUP
|
||||
void set_sr_store(int store_type)
|
||||
{
|
||||
sr_store_ = store_type;
|
||||
}
|
||||
|
||||
int get_sr_store() const
|
||||
{
|
||||
return (sr_store_);
|
||||
}
|
||||
#endif /* WITH_WSREP_SR_SPEEDUP */
|
||||
private:
|
||||
|
||||
void check_fragment_seqno(wsrep::seqno seqno WSREP_UNUSED)
|
||||
@@ -204,6 +215,9 @@ namespace wsrep
|
||||
size_t fragment_size_;
|
||||
size_t unit_counter_;
|
||||
size_t log_position_;
|
||||
#ifdef WITH_WSREP_SR_SPEEDUP
|
||||
int sr_store_;
|
||||
#endif /* WITH_WSREP_SR_SPEEDUP */
|
||||
};
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user