30 const ResDBConfig& config, std::unique_ptr<TransactionManager> executor,
31 std::unique_ptr<CustomQuery> query_executor)
35 config, GetBroadCastClient(), GetSignatureVerifier())),
41 GetSignatureVerifier())),
43 std::move(query_executor))),
44 response_manager_(
config_.IsPerformanceRunning()
49 performance_manager_(
config_.IsPerformanceRunning()
56 system_info_.get(), GetBroadCastClient(), GetSignatureVerifier())),
60 LOG(INFO) <<
"is running is performance mode:"
67 [&](
const SystemInfoData&
data) {
71 [&](std::unique_ptr<Context> context, std::unique_ptr<Request> request) {
140 std::unique_ptr<Request> request) {
146 recovery_->AddRequest(context.get(), request.get());
150 switch (request->type()) {
151 case Request::TYPE_NEW_TXNS:
152 case Request::TYPE_PRE_PREPARE:
153 case Request::TYPE_PREPARE:
154 case Request::TYPE_COMMIT:
161 if (!new_request.ok()) {
165 std::move((*new_request).second));
174 if (!new_request.ok()) {
179 std::move((*new_request).second));
187 std::unique_ptr<Context> context, std::unique_ptr<Request> request) {
191 switch (request->type()) {
192 case Request::TYPE_CLIENT_REQUEST:
198 case Request::TYPE_RESPONSE:
205 case Request::TYPE_NEW_TXNS: {
206 uint64_t proxy_id = request->proxy_id();
207 std::string hash = request->hash();
208 int ret =
commitment_->ProcessNewRequest(std::move(context),
211 std::pair<std::unique_ptr<Context>, std::unique_ptr<Request>>
214 std::lock_guard<std::mutex> lk(
commitment_->rc_mutex_);
217 std::move(
commitment_->request_complained_.front());
221 std::move(request_complained.second));
226 case Request::TYPE_PRE_PREPARE:
227 return commitment_->ProcessProposeMsg(std::move(context),
229 case Request::TYPE_PREPARE:
230 return commitment_->ProcessPrepareMsg(std::move(context),
232 case Request::TYPE_COMMIT:
233 return commitment_->ProcessCommitMsg(std::move(context),
235 case Request::TYPE_CHECKPOINT:
238 case Request::TYPE_VIEWCHANGE:
241 case Request::TYPE_NEWVIEW:
244 case Request::TYPE_QUERY:
245 return query_->ProcessQuery(std::move(context), std::move(request));
246 case Request::TYPE_REPLICA_STATE:
247 return query_->ProcessGetReplicaState(std::move(context),
249 case Request::TYPE_CUSTOM_QUERY:
250 return query_->ProcessCustomQuery(std::move(context), std::move(request));