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

Add provider position field to ws_meta and view

Provider position is needed in coordinated recovery
between application and provider. Pass the position
info from provider to application to allow making
it durable.
This commit is contained in:
Teemu Ollakka
2022-03-22 17:43:52 +02:00
parent 51e162d6f4
commit 7498ed424a
13 changed files with 123 additions and 86 deletions

View File

@ -70,6 +70,7 @@ namespace wsrep
, capabilities_()
, own_index_(-1)
, protocol_version_(0)
, provider_position_()
, members_()
{ }
view(const wsrep::gtid& state_id,
@ -78,13 +79,15 @@ namespace wsrep
int capabilities,
ssize_t own_index,
int protocol_version,
const std::vector<wsrep::view::member>& members)
const std::vector<wsrep::view::member>& members,
int64_t provider_position)
: state_id_(state_id)
, view_seqno_(view_seqno)
, status_(status)
, capabilities_(capabilities)
, own_index_(own_index)
, protocol_version_(protocol_version)
, provider_position_(provider_position)
, members_(members)
{ }
@ -111,6 +114,9 @@ namespace wsrep
int protocol_version() const
{ return protocol_version_; }
int64_t provider_position() const
{ return provider_position_; }
const std::vector<member>& members() const
{ return members_; }
@ -147,6 +153,8 @@ namespace wsrep
int capabilities_;
ssize_t own_index_;
int protocol_version_;
/** Field reserved for provider to report its internal position. */
int64_t provider_position_;
std::vector<wsrep::view::member> members_;
};