@Override public Collection<Member> getTargets() { return nodeEngine.getClusterService().getMembers(); }
@Override public Operation getPreJoinOperation() { Set<Member> members = nodeEngine.getClusterService().getMembers(); HashSet<String> liveMemberUUIDs = new HashSet<String>(); for (Member member : members) { liveMemberUUIDs.add(member.getUuid()); } Map<String, String> liveMappings = new HashMap<String, String>(ownershipMappings); liveMappings.values().retainAll(liveMemberUUIDs); return liveMappings.isEmpty() ? null : new OnJoinClientOperation(liveMappings); }
@Override public Operation getPreJoinOperation() { Set<Member> members = nodeEngine.getClusterService().getMembers(); HashSet<String> liveMemberUUIDs = new HashSet<String>(); for (Member member : members) { liveMemberUUIDs.add(member.getUuid()); } Map<String, String> liveMappings = new HashMap<String, String>(ownershipMappings); liveMappings.values().retainAll(liveMemberUUIDs); return liveMappings.isEmpty() ? null : new OnJoinClientOperation(liveMappings); }
void checkCompatibility() { if (nodeEngine.getClusterService().getClusterVersion().isLessThan(Versions.V3_11)) { throw new UnsupportedOperationException("Setting MaxIdle is available when cluster version is 3.11 or higher"); } } }
void onMemberLeft(MemberImpl member) { // Member list version at the time of member removal. Since version is read after member removal, // this is guaranteed to be greater than version in invocations whose target was left member. int memberListVersion = nodeEngine.getClusterService().getMemberListVersion(); // postpone notifying invocations since real response may arrive in the mean time. scheduler.execute(new OnMemberLeftTask(member, memberListVersion)); }
void onMemberLeft(MemberImpl member) { // Member list version at the time of member removal. Since version is read after member removal, // this is guaranteed to be greater than version in invocations whose target was left member. int memberListVersion = nodeEngine.getClusterService().getMemberListVersion(); // postpone notifying invocations since real response may arrive in the mean time. scheduler.execute(new OnMemberLeftTask(member, memberListVersion)); }
@Override public Member getOwner() { // triggers initial partition assignment final Address address = partitionService.getPartitionOwner(partitionId); if (address == null) { return null; } return nodeEngine.getClusterService().getMember(address); }
@Override public Operation getPostJoinOperation() { ClusterService clusterService = nodeEngine.getClusterService(); // Send post join registration operation only if this is the newly joining member. // Master will send registrations with pre-join operation. return clusterService.isMaster() ? null : getOnJoinRegistrationOperation(); }
@Override public Member getOwner() { // triggers initial partition assignment final Address address = partitionService.getPartitionOwner(partitionId); if (address == null) { return null; } return nodeEngine.getClusterService().getMember(address); }
private MembersView getMembersView() { ClusterServiceImpl clusterService = (ClusterServiceImpl) nodeEngine.getClusterService(); return clusterService.getMembershipManager().getMembersView(); }
@Override public void run() { Version clusterVersion = nodeEngine.getClusterService().getClusterVersion(); // RU_COMPAT_3_11 if (clusterVersion.isGreaterOrEqual(Versions.V3_12)) { publishCompletedMigrations(); } } }
@Override public void run() { ClusterService clusterService = nodeEngine.getClusterService(); Collection<Member> members = clusterService.getMembers(MemberSelectors.DATA_MEMBER_SELECTOR); for (QuorumImpl quorum : quorums.values()) { quorum.onHeartbeat(member, timestamp); quorum.update(members); } } }
/** Verifies that the cluster is active. */ private void verifyClusterState() { NodeEngineImpl nodeEngine = (NodeEngineImpl) getNodeEngine(); ClusterState clusterState = nodeEngine.getClusterService().getClusterState(); if (!clusterState.isMigrationAllowed()) { throw new IllegalStateException("Cluster state does not allow migrations! " + clusterState); } }
@Override public void run() { ClusterService clusterService = nodeEngine.getClusterService(); Collection<Member> members = clusterService.getMembers(MemberSelectors.DATA_MEMBER_SELECTOR); for (QuorumImpl quorum : quorums.values()) { quorum.onHeartbeat(member, timestamp); quorum.update(members); } } }
@Override public void run() { ClusterService clusterService = nodeEngine.getClusterService(); Collection<Member> members = clusterService.getMembers(MemberSelectors.DATA_MEMBER_SELECTOR); for (QuorumImpl quorum : quorums.values()) { quorum.onPing(member, successful); quorum.update(members); } } }
@Override protected void beforeProcess() { super.beforeProcess(); if (nodeEngine.getClusterService().getClusterVersion().isLessThan(Versions.V3_11)) { throw new UnsupportedOperationException("Modifying TTL is available when cluster version is 3.11 or higher"); } }
private void assertIsMaster(String error) { if (!isMaster()) { throw new JetException(error + ". Master address: " + nodeEngine.getClusterService().getMasterAddress()); } }
@Override public String getQuorumName(final String name) { // RU_COMPAT_3_9 if (nodeEngine.getClusterService().getClusterVersion().isLessThan(Versions.V3_10)) { return null; } Object quorumName = getOrPutSynchronized(quorumConfigCache, name, quorumConfigCacheMutexFactory, quorumConfigConstructor); return quorumName == NULL_OBJECT ? null : (String) quorumName; }
private void retrieveAllMemberOwnedScheduled(Map<Member, List<ScheduledTaskHandler>> accumulator) { try { InvokeOnMembers invokeOnMembers = new InvokeOnMembers(nodeEngine, getServiceName(), new GetAllScheduledOnMemberOperationFactory(parameters.schedulerName), nodeEngine.getClusterService().getMembers()); accumulateTaskHandlersAsUrnValues(accumulator, invokeOnMembers.invoke()); } catch (Exception e) { throw rethrow(e); } }
private void retrieveAllMemberOwnedScheduled(Map<Member, List<ScheduledTaskHandler>> accumulator) { try { InvokeOnMembers invokeOnMembers = new InvokeOnMembers(nodeEngine, getServiceName(), new GetAllScheduledOnMemberOperationFactory(parameters.schedulerName), nodeEngine.getClusterService().getMembers()); accumulateTaskHandlersAsUrnValues(accumulator, invokeOnMembers.invoke()); } catch (Exception e) { throw rethrow(e); } }