MCPcopy Create free account
hub / github.com/Tencent/phxqueue / ProposeCleanLock

Method ProposeCleanLock

phxqueue/lock/cleanthread.cpp:312–359  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

310//}
311
312comm::RetCode CleanThread::ProposeCleanLock(const int paxos_group_id,
313 const vector<proto::LockKeyInfo> &lock_key_infos) {
314 // TODO: clean one by one
315 //vector<phxqueue_proto::LockKeyInfo> lock_key_infos2;
316 //int max_clean_lock_num{impl_->lock->GetLockOption()->max_clean_lock_num};
317 //lock_key_infos2.reserve(max_clean_lock_num);
318 //for (auto &&lock_key_info : lock_key_infos) {
319 // // TODO: use move?
320 // lock_key_infos2.push_back(lock_key_info);
321 // if (lock_key_infos2.size() >= max_clean_lock_num) {
322 // phxqueue_proto::LockPaxosArgs args;
323
324 // // 1. make args
325 // for (auto &&lock_key_info : lock_key_infos2) {
326 // phxqueue_proto::LockKeyInfo *new_lock_key_info{args.mutable_clean_lock_req()->add_lock_key_infos()};
327 // new_lock_key_info->set_version(lock_key_info.version());
328 // new_lock_key_info->set_lock_key(lock_key_info.lock_key());
329 // }
330
331 // // 2. serialize args to paxos value
332 // string buf;
333 // args.SerializeToString(&buf);
334
335 // // 3. send to paxos
336 // LockContext lc;
337 // phxpaxos::SMCtx sm_ctx(LockSM::ID, &lc);
338 // uint64_t instance_id{0};
339 // int paxos_ret{impl_->lock->GetNode()->Propose(paxos_group_id, buf, instance_id, &sm_ctx)};
340 // if (phxpaxos::PaxosTryCommitRet_OK != paxos_ret) {
341 // QLErr("paxos_group_id %d Propose err %d buf.size %zu", paxos_group_id, paxos_ret, buf.size());
342 // // TODO:
343 // //OssAttrInc(mgr_->oss_attr_id(), 107u, 1u);
344
345 // continue;
346 // } else {
347 // QLInfo("paxos_group_id %d Propose ok instance_id %llu buf.size %zu",
348 // paxos_group_id, instance_id, buf.size());
349 // // TODO:
350 // //OssAttrInc(mgr_->oss_attr_id(), 106u, 1u);
351 // }
352
353 // // 4. reset
354 // lock_key_infos2.clear();
355 // }
356 //}
357
358 return comm::RetCode::RET_OK;
359}
360
361
362} // namespace lock

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected