@Override public IdentifiedDataSerializable createNew(Integer arg) { return new MembersViewMetadata(); } };
@Override public IdentifiedDataSerializable createNew(Integer arg) { return new MembersViewMetadata(); } };
MembersViewMetadata createLocalMembersViewMetadata() { return new MembersViewMetadata(node.getThisAddress(), clusterService.getThisUuid(), clusterService.getMasterAddress(), getMemberListVersion()); }
MembersViewMetadata createLocalMembersViewMetadata() { return new MembersViewMetadata(node.getThisAddress(), clusterService.getThisUuid(), clusterService.getMasterAddress(), getMemberListVersion()); }
private boolean checkMembershipIntersectionSetEmpty(SplitBrainJoinMessage joinMessage) { Collection<Address> targetMemberAddresses = joinMessage.getMemberAddresses(); Address joinMessageAddress = joinMessage.getAddress(); if (targetMemberAddresses.contains(node.getThisAddress())) { // Join request is coming from master of the split and it thinks that I am its member. // This is partial split case and we want to convert it to a full split. // So it should remove me from its cluster. MembersViewMetadata membersViewMetadata = new MembersViewMetadata(joinMessageAddress, joinMessage.getUuid(), joinMessageAddress, joinMessage.getMemberListVersion()); clusterService.sendExplicitSuspicion(membersViewMetadata); logger.info(node.getThisAddress() + " CANNOT merge to " + joinMessageAddress + ", because it thinks this-node as its member."); return false; } for (Address address : clusterService.getMemberAddresses()) { if (targetMemberAddresses.contains(address)) { logger.info(node.getThisAddress() + " CANNOT merge to " + joinMessageAddress + ", because it thinks " + address + " is its member. " + "But " + address + " is member of this cluster."); return false; } } return true; }
private boolean checkMembershipIntersectionSetEmpty(SplitBrainJoinMessage joinMessage) { Collection<Address> targetMemberAddresses = joinMessage.getMemberAddresses(); Address joinMessageAddress = joinMessage.getAddress(); if (targetMemberAddresses.contains(node.getThisAddress())) { // Join request is coming from master of the split and it thinks that I am its member. // This is partial split case and we want to convert it to a full split. // So it should remove me from its cluster. MembersViewMetadata membersViewMetadata = new MembersViewMetadata(joinMessageAddress, joinMessage.getUuid(), joinMessageAddress, joinMessage.getMemberListVersion()); clusterService.sendExplicitSuspicion(membersViewMetadata); logger.info(node.getThisAddress() + " CANNOT merge to " + joinMessageAddress + ", because it thinks this-node as its member."); return false; } for (Address address : clusterService.getMemberAddresses()) { if (targetMemberAddresses.contains(address)) { logger.info(node.getThisAddress() + " CANNOT merge to " + joinMessageAddress + ", because it thinks " + address + " is its member. " + "But " + address + " is member of this cluster."); return false; } } return true; }
public boolean updateMembers(MembersView membersView, Address callerAddress, String callerUuid, String targetUuid) { lock.lock(); try { if (!isJoined()) { logger.warning("Not updating members received from caller: " + callerAddress + " because node is not joined! "); return false; } if (!checkValidMaster(callerAddress)) { logger.warning("Not updating members because caller: " + callerAddress + " is not known master: " + getMasterAddress()); MembersViewMetadata callerMembersViewMetadata = new MembersViewMetadata(callerAddress, callerUuid, callerAddress, membersView.getVersion()); if (!clusterJoinManager.isMastershipClaimInProgress()) { sendExplicitSuspicion(callerMembersViewMetadata); } return false; } checkMemberUpdateContainsLocalMember(membersView, targetUuid); if (!shouldProcessMemberUpdate(membersView)) { return false; } membershipManager.updateMembers(membersView); return true; } finally { lock.unlock(); } }
public boolean updateMembers(MembersView membersView, Address callerAddress, String callerUuid, String targetUuid) { lock.lock(); try { if (!isJoined()) { logger.warning("Not updating members received from caller: " + callerAddress + " because node is not joined! "); return false; } if (!checkValidMaster(callerAddress)) { logger.warning("Not updating members because caller: " + callerAddress + " is not known master: " + getMasterAddress()); MembersViewMetadata callerMembersViewMetadata = new MembersViewMetadata(callerAddress, callerUuid, callerAddress, membersView.getVersion()); if (!clusterJoinManager.isMastershipClaimInProgress()) { sendExplicitSuspicion(callerMembersViewMetadata); } return false; } checkMemberUpdateContainsLocalMember(membersView, targetUuid); if (!shouldProcessMemberUpdate(membersView)) { return false; } membershipManager.updateMembers(membersView); return true; } finally { lock.unlock(); } }
+ getMasterAddress()); MembersViewMetadata membersViewMetadata = new MembersViewMetadata(callerAddress, callerUuid, callerAddress, membersView.getVersion()); sendExplicitSuspicion(membersViewMetadata);
+ getMasterAddress()); MembersViewMetadata membersViewMetadata = new MembersViewMetadata(callerAddress, callerUuid, callerAddress, membersView.getVersion()); sendExplicitSuspicion(membersViewMetadata);