void Learner :: SendNowInstanceID(const uint64_t llInstanceID, const nodeid_t iSendNodeID) { BP->GetLearnerBP()->SendNowInstanceID(); PaxosMsg oPaxosMsg; oPaxosMsg.set_instanceid(llInstanceID); oPaxosMsg.set_nodeid(m_poConfig->GetMyNodeID()); oPaxosMsg.set_msgtype(MsgType_PaxosLearner_SendNowInstanceID); oPaxosMsg.set_nowinstanceid(GetInstanceID()); oPaxosMsg.set_minchoseninstanceid(m_poCheckpointMgr->GetMinChosenInstanceID()); if ((GetInstanceID() - llInstanceID) > 50) { //instanceid too close not need to send vsm/master checkpoint. string sSystemVariablesCPBuffer; int ret = m_poConfig->GetSystemVSM()->GetCheckpointBuffer(sSystemVariablesCPBuffer); if (ret == 0) { oPaxosMsg.set_systemvariables(sSystemVariablesCPBuffer); } string sMasterVariablesCPBuffer; if (m_poConfig->GetMasterSM() != nullptr) { int ret = m_poConfig->GetMasterSM()->GetCheckpointBuffer(sMasterVariablesCPBuffer); if (ret == 0) { oPaxosMsg.set_mastervariables(sMasterVariablesCPBuffer); } } } SendMessage(iSendNodeID, oPaxosMsg); }