public boolean isLiteMember() { return getLocalMember().isLiteMember(); }
public boolean isLiteMember() { return getLocalMember().isLiteMember(); }
void onMemberAdded(MemberImpl addedMember) { if (addedMember.isLiteMember()) { return; } updateQuorumValues(); scheduleScaleUp(config.getInstanceConfig().getScaleUpDelayMillis()); }
public MemberInfo(MemberImpl member) { this(member.getAddress(), member.getUuid(), member.getAttributes(), member.isLiteMember(), member.getVersion(), member.getMemberListJoinVersion()); }
public MemberInfo(MemberImpl member) { this(member.getAddress(), member.getUuid(), member.getAttributes(), member.isLiteMember(), member.getVersion(), member.getMemberListJoinVersion()); }
MemberImpl promoteAndGetLocalMember() { MemberImpl member = getLocalMember(); assert member.isLiteMember() : "Local member is not lite member!"; assert lock.isHeldByCurrentThread() : "Called without holding cluster service lock!"; localMember = new MemberImpl(member.getAddress(), member.getVersion(), true, member.getUuid(), member.getAttributes(), false, member.getMemberListJoinVersion(), node.hazelcastInstance); node.loggingService.setThisMember(localMember); return localMember; }
MemberImpl promoteAndGetLocalMember() { MemberImpl member = getLocalMember(); assert member.isLiteMember() : "Local member is not lite member!"; assert lock.isHeldByCurrentThread() : "Called without holding cluster service lock!"; localMember = new MemberImpl(member.getAddress(), member.getVersion(), true, member.getUuid(), member.getAttributes(), false, member.getMemberListJoinVersion(), node.hazelcastInstance); node.loggingService.setThisMember(localMember); return localMember; }
private void resetLocalMemberUuid() { assert lock.isHeldByCurrentThread() : "Called without holding cluster service lock!"; assert !isJoined() : "Cannot reset local member UUID when joined."; Address address = getThisAddress(); String newUuid = UuidUtil.createMemberUuid(address); logger.warning("Resetting local member UUID. Previous: " + localMember.getUuid() + ", new: " + newUuid); MemberImpl memberWithNewUuid = new MemberImpl(address, localMember.getVersion(), true, newUuid, localMember.getAttributes(), localMember.isLiteMember(), localMember.getMemberListJoinVersion(), node.hazelcastInstance); localMember = memberWithNewUuid; node.loggingService.setThisMember(localMember); }
private void resetLocalMemberUuid() { assert lock.isHeldByCurrentThread() : "Called without holding cluster service lock!"; assert !isJoined() : "Cannot reset local member UUID when joined."; Address address = getThisAddress(); String newUuid = UuidUtil.createMemberUuid(address); logger.warning("Resetting local member UUID. Previous: " + localMember.getUuid() + ", new: " + newUuid); MemberImpl memberWithNewUuid = new MemberImpl(address, localMember.getVersion(), true, newUuid, localMember.getAttributes(), localMember.isLiteMember(), localMember.getMemberListJoinVersion(), node.hazelcastInstance); localMember = memberWithNewUuid; node.loggingService.setThisMember(localMember); }
@Override public void promoteLocalLiteMember() { MemberImpl member = getLocalMember(); if (!member.isLiteMember()) { throw new IllegalStateException(member + " is not a lite member!"); } MemberImpl master = getMasterMember(); PromoteLiteMemberOp op = new PromoteLiteMemberOp(); op.setCallerUuid(member.getUuid()); InternalCompletableFuture<MembersView> future = nodeEngine.getOperationService().invokeOnTarget(SERVICE_NAME, op, master.getAddress()); MembersView view = future.join(); lock.lock(); try { if (!member.getAddress().equals(master.getAddress())) { updateMembers(view, master.getAddress(), master.getUuid(), getThisUuid()); } MemberImpl localMemberInMemberList = membershipManager.getMember(member.getAddress()); if (localMemberInMemberList.isLiteMember()) { throw new IllegalStateException("Cannot promote to data member! Previous master was: " + master.getAddress() + ", Current master is: " + getMasterAddress()); } } finally { lock.unlock(); } }
@Override public void promoteLocalLiteMember() { MemberImpl member = getLocalMember(); if (!member.isLiteMember()) { throw new IllegalStateException(member + " is not a lite member!"); } MemberImpl master = getMasterMember(); PromoteLiteMemberOp op = new PromoteLiteMemberOp(); op.setCallerUuid(member.getUuid()); InternalCompletableFuture<MembersView> future = nodeEngine.getOperationService().invokeOnTarget(SERVICE_NAME, op, master.getAddress()); MembersView view = future.join(); lock.lock(); try { if (!member.getAddress().equals(master.getAddress())) { updateMembers(view, master.getAddress(), master.getUuid(), getThisUuid()); } MemberImpl localMemberInMemberList = membershipManager.getMember(member.getAddress()); if (localMemberInMemberList.isLiteMember()) { throw new IllegalStateException("Cannot promote to data member! Previous master was: " + master.getAddress() + ", Current master is: " + getMasterAddress()); } } finally { lock.unlock(); } }
public JoinRequest createJoinRequest(boolean withCredentials) { final Credentials credentials = (withCredentials && securityContext != null) ? securityContext.getCredentialsFactory().newCredentials() : null; final Set<String> excludedMemberUuids = nodeExtension.getInternalHotRestartService().getExcludedMemberUuids(); MemberImpl localMember = getLocalMember(); return new JoinRequest(Packet.VERSION, buildInfo.getBuildNumber(), version, address, localMember.getUuid(), localMember.isLiteMember(), createConfigCheck(), credentials, localMember.getAttributes(), excludedMemberUuids); }
public JoinRequest createJoinRequest(boolean withCredentials) { final Credentials credentials = (withCredentials && securityContext != null) ? securityContext.getCredentialsFactory().newCredentials() : null; final Set<String> excludedMemberUuids = nodeExtension.getInternalHotRestartService().getExcludedMemberUuids(); MemberImpl localMember = getLocalMember(); return new JoinRequest(Packet.VERSION, buildInfo.getBuildNumber(), version, address, localMember.getUuid(), localMember.isLiteMember(), createConfigCheck(), credentials, localMember.getAttributes(), excludedMemberUuids); }
public SplitBrainJoinMessage createSplitBrainJoinMessage() { MemberImpl localMember = getLocalMember(); boolean liteMember = localMember.isLiteMember(); Collection<Address> memberAddresses = clusterService.getMemberAddresses(); int dataMemberCount = clusterService.getSize(DATA_MEMBER_SELECTOR); Version clusterVersion = clusterService.getClusterVersion(); int memberListVersion = clusterService.getMembershipManager().getMemberListVersion(); return new SplitBrainJoinMessage(Packet.VERSION, buildInfo.getBuildNumber(), version, address, localMember.getUuid(), liteMember, createConfigCheck(), memberAddresses, dataMemberCount, clusterVersion, memberListVersion); }
public SplitBrainJoinMessage createSplitBrainJoinMessage() { MemberImpl localMember = getLocalMember(); boolean liteMember = localMember.isLiteMember(); Collection<Address> memberAddresses = clusterService.getMemberAddresses(); int dataMemberCount = clusterService.getSize(DATA_MEMBER_SELECTOR); Version clusterVersion = clusterService.getClusterVersion(); int memberListVersion = clusterService.getMembershipManager().getMemberListVersion(); return new SplitBrainJoinMessage(Packet.VERSION, buildInfo.getBuildNumber(), version, address, localMember.getUuid(), liteMember, createConfigCheck(), memberAddresses, dataMemberCount, clusterVersion, memberListVersion); }
if (!member.isLiteMember()) { if (logger.isFineEnabled()) { logger.fine(member + " is not lite member, no promotion is required.");
if (!member.isLiteMember()) { if (logger.isFineEnabled()) { logger.fine(member + " is not lite member, no promotion is required.");
private MemberImpl createNewMemberImplIfChanged(MemberInfo newMemberInfo, MemberImpl member) { if (member.isLiteMember() && !newMemberInfo.isLiteMember()) { // lite member promoted logger.info(member + " is promoted to normal member."); if (member.localMember()) { member = clusterService.promoteAndGetLocalMember(); } else { member = createMember(newMemberInfo, member.getAttributes()); } } else if (member.getMemberListJoinVersion() != newMemberInfo.getMemberListJoinVersion()) { if (member.getMemberListJoinVersion() != NA_MEMBER_LIST_JOIN_VERSION) { if (logger.isFineEnabled()) { logger.fine("Member list join version of " + member + " is changed to " + newMemberInfo.getMemberListJoinVersion() + " from " + member.getMemberListJoinVersion()); } } if (member.localMember()) { setLocalMemberListJoinVersion(newMemberInfo.getMemberListJoinVersion()); member = clusterService.getLocalMember(); } else { member = createMember(newMemberInfo, member.getAttributes()); } } return member; }
private MemberImpl createNewMemberImplIfChanged(MemberInfo newMemberInfo, MemberImpl member) { if (member.isLiteMember() && !newMemberInfo.isLiteMember()) { // lite member promoted logger.info(member + " is promoted to normal member."); if (member.localMember()) { member = clusterService.promoteAndGetLocalMember(); } else { member = createMember(newMemberInfo, member.getAttributes()); } } else if (member.getMemberListJoinVersion() != newMemberInfo.getMemberListJoinVersion()) { if (member.getMemberListJoinVersion() != NA_MEMBER_LIST_JOIN_VERSION) { if (logger.isFineEnabled()) { logger.fine("Member list join version of " + member + " is changed to " + newMemberInfo.getMemberListJoinVersion() + " from " + member.getMemberListJoinVersion()); } } if (member.localMember()) { setLocalMemberListJoinVersion(newMemberInfo.getMemberListJoinVersion()); member = clusterService.getLocalMember(); } else { member = createMember(newMemberInfo, member.getAttributes()); } } return member; }