private static void putMember(Map<Address, MemberImpl> addressMap, Map<String, MemberImpl> uuidMap, MemberImpl member) { MemberImpl current = addressMap.put(member.getAddress(), member); if (current != null) { throw new IllegalArgumentException("Replacing existing member with address: " + member); } current = uuidMap.put(member.getUuid(), member); if (current != null) { throw new IllegalArgumentException("Replacing existing member with UUID: " + member); } }
public void onMemberLeft(MemberImpl leftMember) { for (WaitSet waitSet : waitSetMap.values()) { waitSet.invalidateAll(leftMember.getUuid()); } }
private boolean hasParticipant(String uuid) { // a member is a participant when it is a master member (that's we) or it's in the execution plan return nodeEngine.getLocalMember().getUuid().equals(uuid) || executionPlanMap != null && executionPlanMap.keySet().stream().anyMatch(mi -> mi.getUuid().equals(uuid)); }
private void addToMissingMembers(MemberImpl... members) { Map<Object, MemberImpl> m = new HashMap<Object, MemberImpl>(missingMembersRef.get()); if (isHotRestartEnabled()) { for (MemberImpl member : members) { m.put(member.getUuid(), member); } } else { for (MemberImpl member : members) { m.put(member.getAddress(), member); } } missingMembersRef.set(unmodifiableMap(m)); }
@Override public void memberRemoved(MembershipServiceEvent event) { onOwnerDisconnected(event.getMember().getUuid()); }
@Override protected Object newMapListener() { String uuid = nodeEngine.getLocalMember().getUuid(); long correlationId = clientMessage.getCorrelationId(); return new Pre38NearCacheInvalidationListener(endpoint, uuid, correlationId); }
@Override protected Object newMapListener() { String uuid = nodeEngine.getLocalMember().getUuid(); long correlationId = clientMessage.getCorrelationId(); return new NearCacheInvalidationListener(endpoint, uuid, correlationId); }
@Override public void run() throws Exception { ClusterServiceImpl service = getService(); String thisUuid = service.getLocalMember().getUuid(); if (!targetUuid.equals(thisUuid)) { throw new IllegalStateException("Rejecting mastership claim, since target UUID[" + targetUuid + "] is not matching local member UUID[" + thisUuid + "]."); } membersView = service.handleMastershipClaim(getCallerAddress(), getCallerUuid()); }
private boolean hasTargetLeft(Invocation invocation) { Member targetMember = invocation.getTargetMember(); if (targetMember == null) { Address invTarget = invocation.getTargetAddress(); return leftMember.getAddress().equals(invTarget); } else { return leftMember.getUuid().equals(targetMember.getUuid()); } }
@Override public void memberRemoved(MembershipServiceEvent event) { jobExecutionService.onMemberLeave(event.getMember().getAddress()); jobCoordinationService.onMemberLeave(event.getMember().getUuid()); }
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; }
@Override protected Object call() { CacheService cacheService = getService(CacheService.SERVICE_NAME); CacheContext cacheContext = cacheService.getOrCreateCacheContext(parameters.name); NearCacheInvalidationListener listener = new NearCacheInvalidationListener(endpoint, cacheContext, nodeEngine.getLocalMember().getUuid(), clientMessage.getCorrelationId()); String registrationId = cacheService.addInvalidationListener(parameters.name, listener, parameters.localOnly); endpoint.addListenerDestroyAction(CacheService.SERVICE_NAME, parameters.name, registrationId); return registrationId; }
@Override protected Object call() { CacheService cacheService = getService(CacheService.SERVICE_NAME); CacheContext cacheContext = cacheService.getOrCreateCacheContext(parameters.name); NearCacheInvalidationListener listener = new NearCacheInvalidationListener(endpoint, cacheContext, nodeEngine.getLocalMember().getUuid(), clientMessage.getCorrelationId()); String registrationId = cacheService.addInvalidationListener(parameters.name, listener, parameters.localOnly); endpoint.addListenerDestroyAction(CacheService.SERVICE_NAME, parameters.name, registrationId); return registrationId; }
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 protected Object call() { CacheService cacheService = getService(CacheService.SERVICE_NAME); CacheContext cacheContext = cacheService.getOrCreateCacheContext(parameters.name); String uuid = nodeEngine.getLocalMember().getUuid(); long correlationId = clientMessage.getCorrelationId(); Pre38NearCacheInvalidationListener listener = new Pre38NearCacheInvalidationListener(endpoint, cacheContext, uuid, correlationId); String registrationId = cacheService.addInvalidationListener(parameters.name, listener, parameters.localOnly); endpoint.addListenerDestroyAction(CacheService.SERVICE_NAME, parameters.name, registrationId); return registrationId; }
private Operation createConsumerOperation(int partitionId, Queue<Accumulator> accumulators) { PublisherContext publisherContext = context.getPublisherContext(); NodeEngineImpl nodeEngine = (NodeEngineImpl) publisherContext.getNodeEngine(); Operation operation = new AccumulatorConsumerOperation(accumulators, MAX_PROCESSABLE_ACCUMULATOR_COUNT); operation .setNodeEngine(nodeEngine) .setCallerUuid(nodeEngine.getLocalMember().getUuid()) .setPartitionId(partitionId) .setValidateTarget(false) .setService(nodeEngine.getService(MapService.SERVICE_NAME)); return operation; }
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 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); }