1
0
mirror of https://github.com/codership/wsrep-lib.git synced 2025-07-28 20:02:00 +03:00

Enhanced dbsim to store view and position in storage engine

Mimic real DBMS implementation by storing view and position
into storage engine.
This commit is contained in:
Teemu Ollakka
2019-01-23 19:10:34 +02:00
parent 632f8c3b14
commit f30d9c06ce
8 changed files with 82 additions and 22 deletions

View File

@ -26,7 +26,6 @@
db::server_service::server_service(db::server& server)
: server_(server)
, logged_view_()
{ }
wsrep::storage_service* db::server_service::storage_service(
@ -110,7 +109,7 @@ void db::server_service::log_view(wsrep::high_priority_service*,
const wsrep::view& v)
{
wsrep::log_info() << "View:\n" << v;
logged_view_ = v;
server_.storage_engine().store_view(v);
}
void db::server_service::recover_streaming_appliers(
@ -126,22 +125,23 @@ void db::server_service::recover_streaming_appliers(
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 stored_view(server_.storage_engine().get_view());
int const my_idx(stored_view.member_index(own_id));
wsrep::view my_view(
logged_view_.state_id(),
logged_view_.view_seqno(),
logged_view_.status(),
logged_view_.capabilities(),
stored_view.state_id(),
stored_view.view_seqno(),
stored_view.status(),
stored_view.capabilities(),
my_idx,
logged_view_.protocol_version(),
logged_view_.members()
stored_view.protocol_version(),
stored_view.members()
);
return my_view;
}
wsrep::gtid db::server_service::get_position(wsrep::client_service&)
{
throw wsrep::not_implemented_error();
return server_.storage_engine().get_position();
}
void db::server_service::log_state_change(