1
0
mirror of https://github.com/codership/wsrep-lib.git synced 2025-04-22 19:22:50 +03:00

Deprecated sst_transferred(), always use sst_received()

This commit is contained in:
Teemu Ollakka 2018-07-03 10:20:36 +03:00
parent e6d78c380d
commit c552d944ed
4 changed files with 18 additions and 35 deletions

View File

@ -36,9 +36,7 @@ void db::simulator::sst(db::server& server,
{ {
wsrep::log_info() << "SST " << server.server_state().id() << " -> " << id; wsrep::log_info() << "SST " << server.server_state().id() << " -> " << id;
} }
i->second->server_state().sst_transferred(gtid); i->second->server_state().sst_received(gtid, 0);
// i->second->server_state().initialized();
// i->second->server_state().sst_received(gtid, 0);
server.server_state().sst_sent(gtid, 0); server.server_state().sst_sent(gtid, 0);
} }

View File

@ -65,8 +65,6 @@ namespace wsrep
* new cluster is bootstrapped and the server has reached * new cluster is bootstrapped and the server has reached
* initialized state. From this call the DBMS should initialize * initialized state. From this call the DBMS should initialize
* environment for the new cluster. * environment for the new cluster.
*
* @param gtid Gtid of the bootstrap position.
*/ */
virtual void bootstrap() = 0; virtual void bootstrap() = 0;

View File

@ -396,18 +396,11 @@ namespace wsrep
*/ */
void sst_sent(const wsrep::gtid& gtid, int error); void sst_sent(const wsrep::gtid& gtid, int error);
/**
* This method should be called on joiner after the
* SST has been transferred but before DBMS has been
* initialized.
*/
void sst_transferred(const wsrep::gtid& gtid);
/** /**
* This method must be called by the joiner after the SST * This method must be called by the joiner after the SST
* transfer has been received and DBMS state has been completely * transfer has been received. If the DBMS state has not been
* initialized. This will signal the provider that it can * initialized, the call will shift the state to initializing
* start applying write sets. * and will wait until the initialization is complete.
* *
* @param gtid GTID provided by the SST transfer * @param gtid GTID provided by the SST transfer
*/ */

View File

@ -349,19 +349,22 @@ void wsrep::server_state::sst_sent(const wsrep::gtid& gtid, int error)
} }
} }
void wsrep::server_state::sst_transferred(const wsrep::gtid& gtid) void wsrep::server_state::sst_received(const wsrep::gtid& gtid, int error)
{ {
wsrep::log_info() << "SST transferred: " << gtid; wsrep::log_info() << "SST received: " << gtid;
wsrep::unique_lock<wsrep::mutex> lock(mutex_); wsrep::unique_lock<wsrep::mutex> lock(mutex_);
sst_gtid_ = gtid; assert(state_ == s_joiner || state_ == s_initialized);
if (server_service_.sst_before_init()) if (server_service_.sst_before_init())
{ {
state(lock, s_initializing); if (init_initialized_ == false)
wait_until_state(lock, s_initialized); {
assert(init_initialized_); state(lock, s_initializing);
wait_until_state(lock, s_initialized);
assert(init_initialized_);
}
state(lock, s_joined); state(lock, s_joined);
lock.unlock(); lock.unlock();
if (provider().sst_received(sst_gtid_, 0)) if (provider().sst_received(gtid, error))
{ {
throw wsrep::runtime_error("SST received failed"); throw wsrep::runtime_error("SST received failed");
} }
@ -369,19 +372,10 @@ void wsrep::server_state::sst_transferred(const wsrep::gtid& gtid)
else else
{ {
state(lock, s_joined); state(lock, s_joined);
} if (provider().sst_received(gtid, error))
} {
throw wsrep::runtime_error("SST received failed");
void wsrep::server_state::sst_received(const wsrep::gtid& gtid, int error) }
{
assert(0);
wsrep::log_info() << "SST received: " << gtid << ": " << error;
wsrep::unique_lock<wsrep::mutex> lock(mutex_);
state(lock, s_joined);
lock.unlock();
if (provider_->sst_received(gtid, error))
{
throw wsrep::runtime_error("SST received failed");
} }
} }