Loading...
Searching...
No Matches
resdb::ConsensusManagerPBFT Class Reference

#include <consensus_manager_pbft.h>

Inheritance diagram for resdb::ConsensusManagerPBFT:
resdb::ConsensusManager resdb::ServiceInterface resdb::ConsensusManagerGeoPBFT

Public Member Functions

 ConsensusManagerPBFT (const ResDBConfig &config, std::unique_ptr< TransactionManager > executor, std::unique_ptr< CustomQuery > query_executor=nullptr)
 
virtual ~ConsensusManagerPBFT ()=default
 
int ConsensusCommit (std::unique_ptr< Context > context, std::unique_ptr< Request > request) override
 
std::vector< ReplicaInfo > GetReplicas () override
 
uint32_t GetPrimary () override
 
uint32_t GetVersion () override
 
void SetPrimary (uint32_t primary, uint64_t version) override
 
void Start () override
 
void SetupPerformanceDataFunc (std::function< std::string()> func)
 
void SetPreVerifyFunc (std::function< bool(const Request &)>)
 
void SetNeedCommitQC (bool need_qc)
 
- Public Member Functions inherited from resdb::ConsensusManager
 ConsensusManager (const ResDBConfig &config)
 
virtual ~ConsensusManager ()
 
virtual int Process (std::unique_ptr< Context > context, std::unique_ptr< DataInfo > request_info)
 
bool IsReady () const
 
void Stop ()
 
- Public Member Functions inherited from resdb::ServiceInterface
 ServiceInterface ()
 
virtual ~ServiceInterface ()=default
 
virtual bool IsRunning () const
 
virtual void SetRunning (bool is_running)
 

Protected Member Functions

int InternalConsensusCommit (std::unique_ptr< Context > context, std::unique_ptr< Request > request)
 
void AddPendingRequest (std::unique_ptr< Context > context, std::unique_ptr< Request > request)
 
void AddComplainedRequest (std::unique_ptr< Context > context, std::unique_ptr< Request > request)
 
absl::StatusOr< std::pair< std::unique_ptr< Context >, std::unique_ptr< Request > > > PopPendingRequest ()
 
absl::StatusOr< std::pair< std::unique_ptr< Context >, std::unique_ptr< Request > > > PopComplainedRequest ()
 
- Protected Member Functions inherited from resdb::ConsensusManager
virtual void BroadCast (const Request &request)
 
virtual void SendMessage (const google::protobuf::Message &message, int64_t node_id)
 
virtual int Dispatch (std::unique_ptr< Context > context, std::unique_ptr< Request > request)
 
int ProcessClientCert (std::unique_ptr< Context > context, std::unique_ptr< Request > request)
 
int ProcessHeartBeat (std::unique_ptr< Context > context, std::unique_ptr< Request > request)
 
virtual std::unique_ptr< ReplicaCommunicator > GetReplicaClient (const std::vector< ReplicaInfo > &replicas, bool is_use_long_conn=false)
 
std::vector< ReplicaInfo > GetAllReplicas ()
 
virtual std::vector< ReplicaInfo > GetClientReplicas ()
 
virtual void AddNewReplica (const ReplicaInfo &info)
 
void AddNewClient (const ReplicaInfo &info)
 
ReplicaCommunicator * GetBroadCastClient ()
 
void UpdateBroadCastClient ()
 
SignatureVerifier * GetSignatureVerifier ()
 

Protected Attributes

std::unique_ptr< SystemInfo > system_info_
 
std::unique_ptr< CheckPointManager > checkpoint_manager_
 
std::unique_ptr< MessageManager > message_manager_
 
std::unique_ptr< Commitment > commitment_
 
std::unique_ptr< Query > query_
 
std::unique_ptr< ResponseManager > response_manager_
 
std::unique_ptr< PerformanceManager > performance_manager_
 
std::unique_ptr< ViewChangeManager > view_change_manager_
 
std::unique_ptr< Recovery > recovery_
 
Stats * global_stats_
 
std::queue< std::pair< std::unique_ptr< Context >, std::unique_ptr< Request > > > request_pending_
 
std::queue< std::pair< std::unique_ptr< Context >, std::unique_ptr< Request > > > request_complained_
 
std::mutex mutex_
 
- Protected Attributes inherited from resdb::ConsensusManager
ResDBConfig config_
 
std::unique_ptr< SignatureVerifier > verifier_
 

Detailed Description

Definition at line 36 of file consensus_manager_pbft.h.

Constructor & Destructor Documentation

◆ ConsensusManagerPBFT()

resdb::ConsensusManagerPBFT::ConsensusManagerPBFT ( const ResDBConfig &  config,
std::unique_ptr< TransactionManager >  executor,
std::unique_ptr< CustomQuery >  query_executor = nullptr 
)

Definition at line 29 of file consensus_manager_pbft.cpp.

◆ ~ConsensusManagerPBFT()

virtual resdb::ConsensusManagerPBFT::~ConsensusManagerPBFT ( )
virtualdefault

Member Function Documentation

◆ AddComplainedRequest()

void resdb::ConsensusManagerPBFT::AddComplainedRequest ( std::unique_ptr< Context >  context,
std::unique_ptr< Request >  request 
)
protected

Definition at line 107 of file consensus_manager_pbft.cpp.

◆ AddPendingRequest()

void resdb::ConsensusManagerPBFT::AddPendingRequest ( std::unique_ptr< Context >  context,
std::unique_ptr< Request >  request 
)
protected

Definition at line 101 of file consensus_manager_pbft.cpp.

◆ ConsensusCommit()

int resdb::ConsensusManagerPBFT::ConsensusCommit ( std::unique_ptr< Context >  context,
std::unique_ptr< Request >  request 
)
overridevirtual

Reimplemented from resdb::ConsensusManager.

Definition at line 139 of file consensus_manager_pbft.cpp.

◆ GetPrimary()

uint32_t resdb::ConsensusManagerPBFT::GetPrimary ( )
overridevirtual

Reimplemented from resdb::ConsensusManager.

Definition at line 86 of file consensus_manager_pbft.cpp.

◆ GetReplicas()

std::vector< ReplicaInfo > resdb::ConsensusManagerPBFT::GetReplicas ( )
overridevirtual

Implements resdb::ConsensusManager.

Definition at line 82 of file consensus_manager_pbft.cpp.

◆ GetVersion()

uint32_t resdb::ConsensusManagerPBFT::GetVersion ( )
overridevirtual

Reimplemented from resdb::ConsensusManager.

Definition at line 90 of file consensus_manager_pbft.cpp.

◆ InternalConsensusCommit()

int resdb::ConsensusManagerPBFT::InternalConsensusCommit ( std::unique_ptr< Context >  context,
std::unique_ptr< Request >  request 
)
protected

Definition at line 186 of file consensus_manager_pbft.cpp.

◆ PopComplainedRequest()

absl::StatusOr< std::pair< std::unique_ptr< Context >, std::unique_ptr< Request > > > resdb::ConsensusManagerPBFT::PopComplainedRequest ( )
protected

Definition at line 127 of file consensus_manager_pbft.cpp.

◆ PopPendingRequest()

absl::StatusOr< std::pair< std::unique_ptr< Context >, std::unique_ptr< Request > > > resdb::ConsensusManagerPBFT::PopPendingRequest ( )
protected

Definition at line 115 of file consensus_manager_pbft.cpp.

◆ SetNeedCommitQC()

void resdb::ConsensusManagerPBFT::SetNeedCommitQC ( bool  need_qc)

Definition at line 76 of file consensus_manager_pbft.cpp.

◆ SetPreVerifyFunc()

void resdb::ConsensusManagerPBFT::SetPreVerifyFunc ( std::function< bool(const Request &)>  func)

Definition at line 260 of file consensus_manager_pbft.cpp.

◆ SetPrimary()

void resdb::ConsensusManagerPBFT::SetPrimary ( uint32_t  primary,
uint64_t  version 
)
overridevirtual

Reimplemented from resdb::ConsensusManager.

Definition at line 94 of file consensus_manager_pbft.cpp.

◆ SetupPerformanceDataFunc()

void resdb::ConsensusManagerPBFT::SetupPerformanceDataFunc ( std::function< std::string()>  func)

Definition at line 255 of file consensus_manager_pbft.cpp.

◆ Start()

void resdb::ConsensusManagerPBFT::Start ( )
overridevirtual

Reimplemented from resdb::ConsensusManager.

Definition at line 80 of file consensus_manager_pbft.cpp.

Member Data Documentation

◆ checkpoint_manager_

std::unique_ptr<CheckPointManager> resdb::ConsensusManagerPBFT::checkpoint_manager_
protected

Definition at line 72 of file consensus_manager_pbft.h.

◆ commitment_

std::unique_ptr<Commitment> resdb::ConsensusManagerPBFT::commitment_
protected

Definition at line 74 of file consensus_manager_pbft.h.

◆ global_stats_

Stats* resdb::ConsensusManagerPBFT::global_stats_
protected

Definition at line 80 of file consensus_manager_pbft.h.

◆ message_manager_

std::unique_ptr<MessageManager> resdb::ConsensusManagerPBFT::message_manager_
protected

Definition at line 73 of file consensus_manager_pbft.h.

◆ mutex_

std::mutex resdb::ConsensusManagerPBFT::mutex_
protected

Definition at line 85 of file consensus_manager_pbft.h.

◆ performance_manager_

std::unique_ptr<PerformanceManager> resdb::ConsensusManagerPBFT::performance_manager_
protected

Definition at line 77 of file consensus_manager_pbft.h.

◆ query_

std::unique_ptr<Query> resdb::ConsensusManagerPBFT::query_
protected

Definition at line 75 of file consensus_manager_pbft.h.

◆ recovery_

std::unique_ptr<Recovery> resdb::ConsensusManagerPBFT::recovery_
protected

Definition at line 79 of file consensus_manager_pbft.h.

◆ request_complained_

std::queue<std::pair<std::unique_ptr<Context>, std::unique_ptr<Request> > > resdb::ConsensusManagerPBFT::request_complained_
protected

Definition at line 84 of file consensus_manager_pbft.h.

◆ request_pending_

std::queue<std::pair<std::unique_ptr<Context>, std::unique_ptr<Request> > > resdb::ConsensusManagerPBFT::request_pending_
protected

Definition at line 82 of file consensus_manager_pbft.h.

◆ response_manager_

std::unique_ptr<ResponseManager> resdb::ConsensusManagerPBFT::response_manager_
protected

Definition at line 76 of file consensus_manager_pbft.h.

◆ system_info_

std::unique_ptr<SystemInfo> resdb::ConsensusManagerPBFT::system_info_
protected

Definition at line 71 of file consensus_manager_pbft.h.

◆ view_change_manager_

std::unique_ptr<ViewChangeManager> resdb::ConsensusManagerPBFT::view_change_manager_
protected

Definition at line 78 of file consensus_manager_pbft.h.