MCPcopy Create free account
hub / github.com/4paradigm/OpenMLDB / LoadIndexData

Method LoadIndexData

src/tablet/tablet_impl.cc:4753–4801  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4751}
4752
4753void TabletImpl::LoadIndexData(
4754 RpcController* controller,
4755 const ::fedb::api::LoadIndexDataRequest* request,
4756 ::fedb::api::GeneralResponse* response, Closure* done) {
4757 brpc::ClosureGuard done_guard(done);
4758 std::shared_ptr<::fedb::api::TaskInfo> task_ptr;
4759 if (request->has_task_info() && request->task_info().IsInitialized()) {
4760 if (AddOPTask(request->task_info(),
4761 ::fedb::api::TaskType::kLoadIndexData, task_ptr) < 0) {
4762 response->set_code(-1);
4763 response->set_msg("add task failed");
4764 return;
4765 }
4766 }
4767 do {
4768 uint32_t tid = request->tid();
4769 uint32_t pid = request->pid();
4770 auto table = GetTable(tid, pid);
4771 if (!table) {
4772 PDLOG(WARNING, "table is not exist. tid %u, pid %u", tid, pid);
4773 response->set_code(::fedb::base::ReturnCode::kTableIsNotExist);
4774 response->set_msg("table is not exist");
4775 break;
4776 }
4777 if (table->GetTableStat() != ::fedb::storage::kNormal) {
4778 PDLOG(WARNING,
4779 "table state is %d, cannot load index data. tid %u, pid %u",
4780 table->GetTableStat(), tid, pid);
4781 response->set_code(
4782 ::fedb::base::ReturnCode::kTableStatusIsNotKnormal);
4783 response->set_msg("table status is not kNormal");
4784 break;
4785 }
4786 response->set_code(::fedb::base::ReturnCode::kOk);
4787 response->set_msg("ok");
4788 if (request->partition_num() <= 1) {
4789 PDLOG(INFO, "partition num is %d need not load. tid %u, pid %u",
4790 request->partition_num(), tid, pid);
4791 SetTaskStatus(task_ptr, ::fedb::api::TaskStatus::kDone);
4792 } else {
4793 uint64_t cur_time = ::baidu::common::timer::get_micros() / 1000;
4794 task_pool_.AddTask(
4795 boost::bind(&TabletImpl::LoadIndexDataInternal, this, tid, pid,
4796 0, request->partition_num(), cur_time, task_ptr));
4797 }
4798 return;
4799 } while (0);
4800 SetTaskStatus(task_ptr, ::fedb::api::TaskStatus::kFailed);
4801}
4802
4803void TabletImpl::LoadIndexDataInternal(
4804 uint32_t tid, uint32_t pid, uint32_t cur_pid, uint32_t partition_num,

Callers

nothing calls this directly

Calls 2

GetTableStatMethod · 0.80
AddTaskMethod · 0.80

Tested by

no test coverage detected