mirror of
https://github.com/codership/wsrep-lib.git
synced 2025-06-30 18:01:53 +03:00
Recover current view from state after SST.
When member joins the group and needs to receive an SST it won't receive the corresponding menbership view event because the SST happens after the event and will already include the effects of all events ordered before it. The view then must be recovered from the received state. Minor renames and cleanups. References codership/wsrep-lib#18
This commit is contained in:
@ -26,6 +26,7 @@
|
||||
|
||||
db::server_service::server_service(db::server& server)
|
||||
: server_(server)
|
||||
, logged_view_()
|
||||
{ }
|
||||
|
||||
wsrep::storage_service* db::server_service::storage_service(
|
||||
@ -106,9 +107,25 @@ void db::server_service::log_dummy_write_set(
|
||||
}
|
||||
|
||||
void db::server_service::log_view(wsrep::high_priority_service*,
|
||||
const wsrep::view&)
|
||||
const wsrep::view& v)
|
||||
{
|
||||
wsrep::log_info() << "View";
|
||||
wsrep::log_info() << "View:\n" << v;
|
||||
logged_view_ = v;
|
||||
}
|
||||
wsrep::view db::server_service::get_view(wsrep::client_service&,
|
||||
const wsrep::id& own_id)
|
||||
{
|
||||
int const my_idx(logged_view_.member_index(own_id));
|
||||
wsrep::view my_view(
|
||||
logged_view_.state_id(),
|
||||
logged_view_.view_seqno(),
|
||||
logged_view_.status(),
|
||||
logged_view_.capabilities(),
|
||||
my_idx,
|
||||
logged_view_.protocol_version(),
|
||||
logged_view_.members()
|
||||
);
|
||||
return my_view;
|
||||
}
|
||||
|
||||
void db::server_service::log_state_change(
|
||||
|
Reference in New Issue
Block a user