22#include <glog/logging.h>
27 const ReplicaInfo& self_info,
28 ResConfigData config_data)
29 :
ResDBConfig(config_data, self_info, KeyInfo(), CertificateInfo()) {
34 const ReplicaInfo& self_info,
35 const KeyInfo& private_key,
36 const CertificateInfo& public_key_cert_info)
37 :
ResDBConfig(ResConfigData(), self_info, private_key,
38 public_key_cert_info) {
43 const ReplicaInfo& self_info,
44 const KeyInfo& private_key,
45 const CertificateInfo& public_key_cert_info)
46 : config_data_(config_data),
48 private_key_(private_key),
49 public_key_cert_info_(public_key_cert_info) {
50 for (
const auto& region : config_data.region()) {
51 if (region.region_id() == config_data.self_region_id()) {
52 LOG(INFO) <<
"get region info:" << region.DebugString();
53 for (
const auto& replica : region.replica_info()) {
54 replicas_.push_back(replica);
56 LOG(INFO) <<
"get region config server size:"
57 << region.replica_info_size();
61 if (config_data_.view_change_timeout_ms() == 0) {
62 config_data_.set_view_change_timeout_ms(viewchange_commit_timeout_ms_);
64 if (config_data_.client_batch_num() == 0) {
65 config_data_.set_client_batch_num(client_batch_num_);
67 if (config_data_.worker_num() == 0) {
68 config_data_.set_worker_num(worker_num_);
70 if (config_data_.input_worker_num() == 0) {
71 config_data_.set_input_worker_num(input_worker_num_);
73 if (config_data_.output_worker_num() == 0) {
74 config_data_.set_output_worker_num(output_worker_num_);
76 if (config_data_.tcp_batch_num() == 0) {
77 config_data_.set_tcp_batch_num(100);
82 config_data_ = config_data;
84 for (
const auto& region : config_data.region()) {
85 if (region.region_id() == config_data.self_region_id()) {
86 LOG(INFO) <<
"get region info:" << region.DebugString();
87 for (
const auto& replica : region.replica_info()) {
88 replicas_.push_back(replica);
90 LOG(INFO) <<
"get region config server size:"
91 << region.replica_info_size();
95 if (config_data_.view_change_timeout_ms() == 0) {
96 config_data_.set_view_change_timeout_ms(viewchange_commit_timeout_ms_);
103 return public_key_cert_info_;
117 int f = (replicas_.size() - 1) / 3;
118 return std::max(2 * f + 1, 1);
122 int f = (replicas_.size() - 1) / 3;
123 return std::max(f + 1, 1);
127 int f = (replicas_.size() - 1) / 3;
128 return std::max(f + 1, 1);
132 int f = (replicas_.size() - 1) / 3;
133 return std::max(f, 0);
137 client_timeout_ms_ = timeout_ms;
144 return checkpoint_logging_path_;
148 checkpoint_logging_path_ = path;
152 return checkpoint_water_mark_;
156 checkpoint_water_mark_ = water_mark;
160 is_enable_checkpoint_ = is_enable;
168 hb_enabled_ = enable_heartbeat;
172 return signature_verifier_enabled_;
176 signature_verifier_enabled_ = enable_sv;
181 return is_performance_running_ ||
GetConfigData().is_performance_running();
185 is_performance_running_ = is_performance_running;
189 is_test_mode_ = is_test_mode;
195 if (config_data_.max_process_txn()) {
196 return config_data_.max_process_txn();
198 return max_process_txn_;
202 config_data_.set_max_process_txn(num);
203 max_process_txn_ = num;
207 if (config_data_.max_client_complaint_num()) {
208 return config_data_.max_client_complaint_num();
214 return client_batch_wait_time_ms_;
218 client_batch_wait_time_ms_ = wait_time_ms;
222 return config_data_.client_batch_num();
226 config_data_.set_client_batch_num(num);
232 return config_data_.input_worker_num();
236 return config_data_.output_worker_num();
240 return config_data_.tcp_batch_num();
244 return config_data_.view_change_timeout_ms()
245 ? config_data_.view_change_timeout_ms()
246 : viewchange_commit_timeout_ms_;
250 config_data_.set_view_change_timeout_ms(timeout_ms);
uint32_t GetOutputWorkerNum() const
void SetClientBatchNum(uint32_t num)
void SetViewchangeCommitTimeout(uint64_t timeout_ms)
void SetCheckPointWaterMark(int water_mark)
void SetMaxProcessTxn(uint32_t num)
uint32_t GetWorkerNum() const
int GetMinDataReceiveNum() const
int GetMinClientReceiveNum() const
uint32_t GetInputWorkerNum() const
size_t GetReplicaNum() const
ResConfigData GetConfigData() const
int GetCheckPointWaterMark() const
uint32_t GetMaxProcessTxn() const
uint32_t GetTcpBatchNum() const
void SetClientTimeoutMs(int timeout_ms)
void SetSignatureVerifierEnabled(bool enable_sv)
size_t GetMaxMaliciousReplicaNum() const
int GetMinCheckpointReceiveNum() const
void SetClientBatchWaitTimeMS(uint32_t wait_time_ms)
uint32_t ClientBatchNum() const
CertificateInfo GetPublicKeyCertificateInfo() const
const ReplicaInfo & GetSelfInfo() const
void SetHeartBeatEnabled(bool enable_heartbeat)
bool IsCheckPointEnabled()
void SetCheckPointLoggingPath(const std::string &path)
void RunningPerformance(bool)
std::string GetCheckPointLoggingPath() const
void SetConfigData(const ResConfigData &config_data)
bool SignatureVerifierEnabled()
void EnableCheckPoint(bool is_enable)
uint32_t ClientBatchWaitTimeMS() const
int GetClientTimeoutMs() const
ResDBConfig(const std::vector< ReplicaInfo > &replicas, const ReplicaInfo &self_info, ResConfigData config_data=ResConfigData())
const std::vector< ReplicaInfo > & GetReplicaInfos() const
uint32_t GetMaxClientComplaintNum() const
KeyInfo GetPrivateKey() const
uint32_t GetViewchangeCommitTimeout() const
bool IsPerformanceRunning()