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 setThisMember(MemberImpl thisMember) { this.thisMember = thisMember; this.thisAddressString = "[" + thisMember.getAddress().getHost() + "]:" + thisMember.getAddress().getPort() + " "; }
public void onMemberLeft(MemberImpl member) { Address address = member.getAddress(); for (EventServiceSegment segment : segments.values()) { segment.onMemberLeft(address); } }
public void setThisMember(MemberImpl thisMember) { this.thisMember = thisMember; this.thisAddressString = "[" + thisMember.getAddress().getHost() + "]:" + thisMember.getAddress().getPort() + " "; }
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); } }
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)); }
private Set<Member> collectMembersToAsk(MemberMap localMemberMap) { Set<Member> membersToAsk = new HashSet<Member>(); for (MemberImpl member : localMemberMap.getMembers()) { if (member.localMember() || suspectedMembers.contains(member.getAddress())) { continue; } membersToAsk.add(member); } return membersToAsk; }
private Set<Member> collectMembersToAsk(MemberMap localMemberMap) { Set<Member> membersToAsk = new HashSet<Member>(); for (MemberImpl member : localMemberMap.getMembers()) { if (member.localMember() || suspectedMembers.contains(member.getAddress())) { continue; } membersToAsk.add(member); } return membersToAsk; }
/** * Creates a singleton {@code MemberMap} including only specified member. * * @param member sole member in map * @return singleton {@code MemberMap} */ static MemberMap singleton(MemberImpl member) { return new MemberMap(SINGLETON_MEMBER_LIST_VERSION, singletonMap(member.getAddress(), member), singletonMap(member.getUuid(), member)); }
/** * Creates a singleton {@code MemberMap} including only specified member. * * @param member sole member in map * @return singleton {@code MemberMap} */ static MemberMap singleton(MemberImpl member) { return new MemberMap(SINGLETON_MEMBER_LIST_VERSION, singletonMap(member.getAddress(), member), singletonMap(member.getUuid(), member)); }
@Override public void run0() { heartbeatPerMember.remove(leftMember.getAddress()); for (Invocation invocation : invocationRegistry) { if (hasTargetLeft(invocation)) { onTargetLoss(invocation); } else { onPotentialBackupLoss(invocation); } } }
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()); } }
void onMemberRemove(MemberImpl member) { Address deadAddress = member.getAddress(); shutdownRequestedAddresses.remove(deadAddress); MigrationInfo activeMigration = activeMigrationInfo; if (activeMigration != null) { if (deadAddress.equals(activeMigration.getSource()) || deadAddress.equals(activeMigration.getDestination())) { activeMigration.setStatus(MigrationStatus.INVALID); } } }
private boolean shouldClaimMastership(MemberMap memberMap) { if (clusterService.isMaster()) { return false; } for (MemberImpl m : memberMap.headMemberSet(clusterService.getLocalMember(), false)) { if (!isMemberSuspected(m.getAddress())) { return false; } } return true; }
private void createInvocations(Collection<MemberImpl> members, List<Future<Boolean>> futures) { InternalOperationService operationService = nodeEngine.getOperationService(); for (MemberImpl member : members) { DestroyQueryCacheOperation operation = new DestroyQueryCacheOperation(parameters.mapName, parameters.cacheName); operation.setCallerUuid(endpoint.getUuid()); Address address = member.getAddress(); InvocationBuilder invocationBuilder = operationService.createInvocationBuilder(SERVICE_NAME, operation, address); Future future = invocationBuilder.invoke(); futures.add(future); } }
private URL newGetTaskUrl() throws IOException { GroupConfig groupConfig = instance.getConfig().getGroupConfig(); Address localAddress = instance.node.getClusterService().getLocalMember().getAddress(); String urlString = cleanupUrl(managementCenterUrl) + "getTask.do?member=" + localAddress.getHost() + ":" + localAddress.getPort() + "&cluster=" + encode(groupConfig.getName(), "UTF-8"); return new URL(urlString); }
@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; }
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 public <T> void submitToMember(Callable<T> task, Member member, ExecutionCallback<T> callback) { checkNotShutdown(); NodeEngine nodeEngine = getNodeEngine(); Data taskData = nodeEngine.toData(task); String uuid = newUnsecureUuidString(); MemberCallableTaskOperation op = new MemberCallableTaskOperation(name, uuid, taskData); OperationService operationService = nodeEngine.getOperationService(); Address address = ((MemberImpl) member).getAddress(); operationService .createInvocationBuilder(DistributedExecutorService.SERVICE_NAME, op, address) .setExecutionCallback((ExecutionCallback) callback).invoke(); }