| 525 | } |
| 526 | |
| 527 | void RemoteTabletNode::CompactTablet(google::protobuf::RpcController* controller, |
| 528 | const CompactTabletRequest* request, |
| 529 | CompactTabletResponse* response, |
| 530 | google::protobuf::Closure* done) { |
| 531 | uint64_t id = request->sequence_id(); |
| 532 | LOG(INFO) << "accept RPC (CompactTablet) id: " << id |
| 533 | << ", src: " << tera::utils::GetRemoteAddress(controller); |
| 534 | compact_pending_counter.Inc(); |
| 535 | ThreadPool::Task callback = |
| 536 | std::bind(&RemoteTabletNode::DoCompactTablet, this, controller, request, response, done); |
| 537 | // Reject all manual compact request when slowdown mode triggered. |
| 538 | if (TsWriteFlowController::Instance().InSlowdownMode()) { |
| 539 | LOG(WARNING) << "compact fail: " << request->tablet_name() |
| 540 | << " due to slowdown write mode triggered."; |
| 541 | response->set_sequence_id(request->sequence_id()); |
| 542 | response->set_status(kFlowControlLimited); |
| 543 | |
| 544 | done->Run(); |
| 545 | return; |
| 546 | } |
| 547 | compact_thread_pool_->AddTask(callback); |
| 548 | } |
| 549 | |
| 550 | void RemoteTabletNode::Update(google::protobuf::RpcController* controller, |
| 551 | const UpdateRequest* request, UpdateResponse* response, |
no test coverage detected