修改UpdateAllNodeHeartBeat,每次根据节点数读取共享盘
This commit is contained in:

committed by
zhang_xubo

parent
dd9c929942
commit
4dd55aff6f
@ -112,14 +112,14 @@ status_t SetVotingDiskNodeData(char *data, uint32 dataLen)
|
|||||||
return CM_SUCCESS;
|
return CM_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
status_t UpdateAllNodeHeartBeat()
|
status_t UpdateAllNodeHeartBeat(uint32 nodeNum)
|
||||||
{
|
{
|
||||||
uint32 dataLen = VOTING_DISK_DATA_SIZE;
|
uint32 dataLen = nodeNum * VOTING_DISK_EACH_NODE_OFFSET;
|
||||||
if (GetVotingDiskNodeData(g_nodeDataBuff, dataLen) != CM_SUCCESS) {
|
if (GetVotingDiskNodeData(g_nodeDataBuff, dataLen) != CM_SUCCESS) {
|
||||||
write_runlog(ERROR, "[%s] get voting disk node data failed.\n", __FUNCTION__);
|
write_runlog(ERROR, "[%s] get voting disk node data failed.\n", __FUNCTION__);
|
||||||
return CM_ERROR;
|
return CM_ERROR;
|
||||||
}
|
}
|
||||||
for (uint32 i = 0; i < VOTING_DISK_MAX_NODE_NUM; i++) {
|
for (uint32 i = 0; i < nodeNum; i++) {
|
||||||
uint32 offset = i * VOTING_DISK_EACH_NODE_OFFSET;
|
uint32 offset = i * VOTING_DISK_EACH_NODE_OFFSET;
|
||||||
VotingDiskNodeInfo *nodeInfo = (VotingDiskNodeInfo*)(g_nodeDataBuff + offset);
|
VotingDiskNodeInfo *nodeInfo = (VotingDiskNodeInfo*)(g_nodeDataBuff + offset);
|
||||||
if (nodeInfo->nodeTime == 0) {
|
if (nodeInfo->nodeTime == 0) {
|
||||||
|
@ -999,7 +999,7 @@ static status_t CheckVotingDisk()
|
|||||||
const uint32 timeout = 6;
|
const uint32 timeout = 6;
|
||||||
uint32 time = timeout;
|
uint32 time = timeout;
|
||||||
while (time > 0) {
|
while (time > 0) {
|
||||||
if (UpdateAllNodeHeartBeat() == CM_SUCCESS) {
|
if (UpdateAllNodeHeartBeat(g_node_num) == CM_SUCCESS) {
|
||||||
return CM_SUCCESS;
|
return CM_SUCCESS;
|
||||||
}
|
}
|
||||||
time--;
|
time--;
|
||||||
|
@ -42,7 +42,7 @@ status_t GetVotingDiskData(char *data, uint32 dataLen, uint32 offset);
|
|||||||
status_t GetVotingDiskSingleNodeInfo(VotingDiskNodeInfo *nodeInfo, uint32 nodeIndex);
|
status_t GetVotingDiskSingleNodeInfo(VotingDiskNodeInfo *nodeInfo, uint32 nodeIndex);
|
||||||
status_t InitVotingDiskHandler(const char *scsiDev, uint32 offset);
|
status_t InitVotingDiskHandler(const char *scsiDev, uint32 offset);
|
||||||
status_t InitVotingDisk(const char *votingDiskPath);
|
status_t InitVotingDisk(const char *votingDiskPath);
|
||||||
status_t UpdateAllNodeHeartBeat();
|
status_t UpdateAllNodeHeartBeat(uint32 nodeNum);
|
||||||
void ResetVotingdiskHeartBeat();
|
void ResetVotingdiskHeartBeat();
|
||||||
VotingDiskStatus GetNodeHeartbeatStat(uint32 nodeIndex, uint32 diskTimeout, int logLevel);
|
VotingDiskStatus GetNodeHeartbeatStat(uint32 nodeIndex, uint32 diskTimeout, int logLevel);
|
||||||
status_t AllocVotingDiskMem();
|
status_t AllocVotingDiskMem();
|
||||||
|
Reference in New Issue
Block a user