in platform/consensus/execution/geo_global_executor.cpp [47:73]
void GeoGlobalExecutor::Execute(std::unique_ptr<Request> request) {
BatchUserRequest batch_request;
if (!batch_request.ParseFromString(request->data())) {
LOG(ERROR) << "[GeoGlobalExecutor] parse data fail!";
return;
}
if (request->data().empty()) {
LOG(ERROR) << "[GeoGlobalExecutor] request->data() is empty ";
return;
}
if (global_stats_) {
global_stats_->IncTotalGeoRequest(batch_request.user_requests_size());
}
if (global_transaction_manager_) {
auto batch_response =
global_transaction_manager_->ExecuteBatch(batch_request);
if (batch_response != nullptr &&
request->region_info().region_id() == my_region_) {
batch_response->set_createtime(batch_request.createtime());
batch_response->set_local_id(batch_request.local_id());
batch_response->set_proxy_id(batch_request.proxy_id());
batch_response->set_seq(batch_request.seq());
resp_queue_.Push(std::move(batch_response));
}
}
}