32#include "platform/proto/checkpoint_info.pb.h"
33#include "platform/proto/resdb.pb.h"
49 std::unique_ptr<Request> request);
57 int64_t current_stable_checkpoint) {}
77 void UpdateCheckPointStatus();
78 void UpdateStableCheckPointStatus();
79 void BroadcastCheckPoint(uint64_t seq,
const std::string& hash,
80 const std::vector<std::string>& stable_hashs,
81 const std::vector<uint64_t>& stable_seqs);
93 std::map<std::pair<uint64_t, std::string>, std::set<uint32_t>>
sender_ckpt_;
94 std::map<std::pair<uint64_t, std::string>, std::vector<SignatureInfo>>
96 std::map<std::pair<uint64_t, std::string>, std::vector<std::string>>
102 std::condition_variable
cv_;
virtual ~CheckPointManager()
void SetTimeoutHandler(std::function< void()> timeout_handler)
std::string committable_hash_
uint64_t GetHighestPreparedSeq()
std::map< std::pair< uint64_t, std::string >, std::set< uint32_t > > sender_ckpt_
SignatureVerifier * verifier_
bool IsValidCheckpointProof(const StableCheckPoint &stable_ckpt)
uint64_t GetCommittableSeq()
ResDBTxnAccessor txn_accessor_
std::unique_ptr< ChainState > txn_db_
LockFreeQueue< std::pair< uint64_t, std::string > > stable_hash_queue_
ReplicaCommunicator * replica_communicator_
sem_t * CommitableSeqSignal()
virtual void UpdateStableCheckPointCallback(int64_t current_stable_checkpoint)
StableCheckPoint stable_ckpt_
std::condition_variable cv_
std::map< std::pair< uint64_t, std::string >, std::vector< SignatureInfo > > sign_ckpt_
std::atomic< uint64_t > highest_prepared_seq_
TransactionExecutor * executor_
std::unique_ptr< std::pair< uint64_t, std::string > > PopStableSeqHash()
std::function< void()> timeout_handler_
int ProcessCheckPoint(std::unique_ptr< Context > context, std::unique_ptr< Request > request)
uint64_t GetStableCheckpoint() override
std::thread checkpoint_thread_
StableCheckPoint GetStableCheckpointWithVotes()
std::atomic< bool > stop_
void SetExecutor(TransactionExecutor *executor)
std::atomic< uint64_t > current_stable_seq_
void AddCommitData(std::unique_ptr< Request > request)
uint64_t committable_seq_
void SetHighestPreparedSeq(uint64_t seq)
std::map< std::pair< uint64_t, std::string >, std::vector< std::string > > hash_ckpt_
std::condition_variable signal_
sem_t committable_seq_signal_
LockFreeQueue< Request > data_queue_
std::thread stable_checkpoint_thread_