mirror of
https://github.com/codership/wsrep-lib.git
synced 2025-07-28 20:02:00 +03:00
Pass pointer to high priority service as a parameter for log_view()
The pointer will pass applier context to log_view(), where it can be used for stable storage access.
This commit is contained in:
@ -90,7 +90,8 @@ void db::server_service::log_dummy_write_set(
|
|||||||
wsrep::log_info() << "Dummy write set: " << meta.seqno();
|
wsrep::log_info() << "Dummy write set: " << meta.seqno();
|
||||||
}
|
}
|
||||||
|
|
||||||
void db::server_service::log_view(const wsrep::view&)
|
void db::server_service::log_view(wsrep::high_priority_service*,
|
||||||
|
const wsrep::view&)
|
||||||
{
|
{
|
||||||
wsrep::log_info() << "View";
|
wsrep::log_info() << "View";
|
||||||
}
|
}
|
||||||
|
@ -31,7 +31,8 @@ namespace db
|
|||||||
void log_message(enum wsrep::log::level, const char* message);
|
void log_message(enum wsrep::log::level, const char* message);
|
||||||
void log_dummy_write_set(wsrep::client_state&, const wsrep::ws_meta&)
|
void log_dummy_write_set(wsrep::client_state&, const wsrep::ws_meta&)
|
||||||
override;
|
override;
|
||||||
void log_view(const wsrep::view&) override;
|
void log_view(wsrep::high_priority_service*,
|
||||||
|
const wsrep::view&) override;
|
||||||
void log_state_change(enum wsrep::server_state::state,
|
void log_state_change(enum wsrep::server_state::state,
|
||||||
enum wsrep::server_state::state) override;
|
enum wsrep::server_state::state) override;
|
||||||
int wait_committing_transactions(int) override;
|
int wait_committing_transactions(int) override;
|
||||||
|
@ -104,9 +104,16 @@ namespace wsrep
|
|||||||
const wsrep::ws_meta& ws_meta) = 0;
|
const wsrep::ws_meta& ws_meta) = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Log a cluster view change event.
|
* Log a cluster view change event. The method takes
|
||||||
|
* as an argument a pointer to high priority service associated
|
||||||
|
* to an applier thread if one is available.
|
||||||
|
*
|
||||||
|
* @param high_priority_service Pointer to high priority service
|
||||||
|
* @param view Reference to view object
|
||||||
*/
|
*/
|
||||||
virtual void log_view(const wsrep::view&) = 0;
|
virtual void log_view(
|
||||||
|
wsrep::high_priority_service* high_priority_service,
|
||||||
|
const wsrep::view& view) = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Log a state change event.
|
* Log a state change event.
|
||||||
|
@ -172,6 +172,8 @@ static int apply_write_set(wsrep::server_state& server_state,
|
|||||||
wsrep::log_warning() << "Could not find applier context for "
|
wsrep::log_warning() << "Could not find applier context for "
|
||||||
<< ws_meta.server_id()
|
<< ws_meta.server_id()
|
||||||
<< ": " << ws_meta.transaction_id();
|
<< ": " << ws_meta.transaction_id();
|
||||||
|
ret = high_priority_service.log_dummy_write_set(
|
||||||
|
ws_handle, ws_meta);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -208,6 +210,8 @@ static int apply_write_set(wsrep::server_state& server_state,
|
|||||||
<< "Could not find applier context for "
|
<< "Could not find applier context for "
|
||||||
<< ws_meta.server_id()
|
<< ws_meta.server_id()
|
||||||
<< ": " << ws_meta.transaction_id();
|
<< ": " << ws_meta.transaction_id();
|
||||||
|
ret = high_priority_service.log_dummy_write_set(
|
||||||
|
ws_handle, ws_meta);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -564,7 +568,6 @@ void wsrep::server_state::on_view(const wsrep::view& view,
|
|||||||
<< "name: " << i->name();
|
<< "name: " << i->name();
|
||||||
}
|
}
|
||||||
wsrep::log_info() << "=================================================";
|
wsrep::log_info() << "=================================================";
|
||||||
server_service_.log_view(view);
|
|
||||||
current_view_ = view;
|
current_view_ = view;
|
||||||
if (view.status() == wsrep::view::primary)
|
if (view.status() == wsrep::view::primary)
|
||||||
{
|
{
|
||||||
@ -682,6 +685,8 @@ void wsrep::server_state::on_view(const wsrep::view& view,
|
|||||||
state(lock, s_disconnected);
|
state(lock, s_disconnected);
|
||||||
id_ = wsrep::id::undefined();
|
id_ = wsrep::id::undefined();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
server_service_.log_view(high_priority_service, view);
|
||||||
}
|
}
|
||||||
|
|
||||||
void wsrep::server_state::on_sync()
|
void wsrep::server_state::on_sync()
|
||||||
|
@ -123,7 +123,7 @@ namespace wsrep
|
|||||||
WSREP_OVERRIDE
|
WSREP_OVERRIDE
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
void log_view(const wsrep::view&) { }
|
void log_view(wsrep::high_priority_service*, const wsrep::view&) { }
|
||||||
void log_state_change(enum wsrep::server_state::state,
|
void log_state_change(enum wsrep::server_state::state,
|
||||||
enum wsrep::server_state::state)
|
enum wsrep::server_state::state)
|
||||||
{ }
|
{ }
|
||||||
|
Reference in New Issue
Block a user