1
0
mirror of https://github.com/codership/wsrep-lib.git synced 2025-07-21 12:22:06 +03:00

Initial RSU implementation.

This commit is contained in:
Teemu Ollakka
2018-07-03 12:37:22 +03:00
parent c552d944ed
commit 4e8dfca3f1
6 changed files with 87 additions and 12 deletions

View File

@ -81,10 +81,12 @@ namespace wsrep
/** High priority mode */
m_high_priority,
/** Client is in total order isolation mode */
m_toi
m_toi,
/** Client is executing rolling schema upgrade */
m_rsu
};
static const int mode_max_ = m_toi + 1;
static const int n_modes_ = m_rsu + 1;
/**
* Client state enumeration.
*
@ -443,6 +445,19 @@ namespace wsrep
*/
int leave_toi();
/**
* Begin rolling schema upgrade operation.
*
* @param timeout Timeout in seconds to wait for committing
* connections to finish.
*/
int begin_rsu(int timeout);
/**
* End rolling schema upgrade operation.
*/
int end_rsu();
/**
* Begin non-blocking operation.
*/
@ -691,6 +706,7 @@ namespace wsrep
case wsrep::client_state::m_replicating: return "replicating";
case wsrep::client_state::m_high_priority: return "high priority";
case wsrep::client_state::m_toi: return "toi";
case wsrep::client_state::m_rsu: return "rsu";
}
return "unknown";
}

View File

@ -125,6 +125,15 @@ namespace wsrep
const wsrep::gtid& gtid,
bool bypass) = 0;
/**
* Wait until committing transactions have completed.
* Prior calling this method the server should have been
* desynced from the group to disallow further transactions
* to start committing.
*/
virtual int wait_committing_transactions(int timeout) = 0;
/**
* Provide a server level debug sync point for a caller.
*/