/** * Resolves node hash. * * @param node Cluster node; * @return Node hash. */ public Object resolveNodeHash(ClusterNode node) { return node.consistentId(); }
/** {@inheritDoc} */ @Override public int compare(ClusterNode n1, ClusterNode n2) { Object id1 = n1.consistentId(); Object id2 = n2.consistentId(); if (id1 instanceof Comparable && id2 instanceof Comparable && id1.getClass().equals(id2.getClass())) return ((Comparable)id1).compareTo(id2); return id1.toString().compareTo(id2.toString()); } }
/** * @param presentedNodes Nodes present in cluster. * @return {@code True} if current topology satisfies baseline. */ public boolean isSatisfied(@NotNull Collection<ClusterNode> presentedNodes) { if (presentedNodes.size() < nodeMap.size()) return false; Set<Object> presentedNodeIds = new HashSet<>(); for (ClusterNode node : presentedNodes) presentedNodeIds.add(node.consistentId()); return presentedNodeIds.containsAll(nodeMap.keySet()); }
/** * Resolves node hash. * * @param node Cluster node; * @return Node hash. */ public Object resolveNodeHash(ClusterNode node) { return node.consistentId(); }
/** */ @Override public boolean apply(ClusterNode node) { return !name.equals(node.consistentId()); } }
/** {@inheritDoc} */ @Override public boolean apply(ClusterNode node) { return !node.consistentId().equals(consId0); } }
/** * @param node Node. * @param discoveryDataClusterState Discovery data cluster state. * @return {@code True} if node is included in BaselineTopology. */ public static boolean baselineNode(ClusterNode node, DiscoveryDataClusterState discoveryDataClusterState) { return discoveryDataClusterState.baselineTopology().consistentIds().contains(node.consistentId()); }
/** {@inheritDoc} */ @Override public boolean apply(ClusterNode node) { return !consistentId.equals(node.consistentId()); } }
/** * @return Current server nodes. */ private Map<String, BaselineNode> currentServers() { Map<String, BaselineNode> nodes = new HashMap<>(); for (ClusterNode node : ignite.cluster().forServers().nodes()) nodes.put(node.consistentId().toString(), node); return nodes; }
/** * Create data transfer object for baseline node. * * @param node Baseline node. */ public VisorClusterNode(ClusterNode node) { consistentId = String.valueOf(node.consistentId()); addrs = node.addresses(); hostNames = node.hostNames(); attrs = node.attributes(); }
/** {@inheritDoc} */ @Override public int getTotalBaselineNodes() { if (!node.isClient() && !node.isDaemon()) { List<? extends BaselineNode> baselineNodes = discoMgr.baselineNodes(discoMgr.topologyVersionEx()); if (baselineNodes != null) for (BaselineNode baselineNode : baselineNodes) if (baselineNode.consistentId().equals(node.consistentId())) return 1; } return 0; }
/** {@inheritDoc} */ @Override public ComputeJobResultPolicy result(ComputeJobResult res, List<ComputeJobResult> rcvd) { ComputeJobResultPolicy superRes = super.result(res, rcvd); // Deny failover. if (superRes == ComputeJobResultPolicy.FAILOVER) { superRes = ComputeJobResultPolicy.WAIT; log.warning("VerifyBackupPartitionsJob failed on node " + "[consistentId=" + res.getNode().consistentId() + "]", res.getException()); } return superRes; }
/** {@inheritDoc} */ @Override public ComputeJobResultPolicy result(ComputeJobResult res, List<ComputeJobResult> rcvd) { ComputeJobResultPolicy superRes = super.result(res, rcvd); // Deny failover. if (superRes == ComputeJobResultPolicy.FAILOVER) { superRes = ComputeJobResultPolicy.WAIT; log.warning("RetrieveConflictValuesJob failed on node " + "[consistentId=" + res.getNode().consistentId() + "]", res.getException()); } return superRes; }
/** {@inheritDoc} */ @Override public ComputeJobResultPolicy result(ComputeJobResult res, List<ComputeJobResult> rcvd) { ComputeJobResultPolicy superRes = super.result(res, rcvd); // Deny failover. if (superRes == ComputeJobResultPolicy.FAILOVER) { superRes = ComputeJobResultPolicy.WAIT; log.warning("CollectPartitionEntryHashesJob failed on node " + "[consistentId=" + res.getNode().consistentId() + "]", res.getException()); } return superRes; }
/** * @return {@code true} if local node is in baseline and {@code false} otherwise. */ private boolean isLocalNodeInBaseline() { BaselineTopology topology = cctx.discovery().discoCache().state().baselineTopology(); return topology != null && topology.consistentIds().contains(cctx.localNode().consistentId()); }
/** {@inheritDoc} */ @Override public boolean test(Ignite ignite) { return PRIMARY_NODE.equals(ignite.cluster().localNode().consistentId()); } }
/** {@inheritDoc} */ @Override public boolean test(Ignite ignite) { return BACKUP_NODE.equals(ignite.cluster().localNode().consistentId()); } }
/** * Consistent ID is not configured neither in the {@link IgniteConfiguration} nor via the JVM property. * * @throws Exception if failed. */ @Test public void testConsistentIdNotConfigured() throws Exception { Ignite ignite = startGrid(0); assertNull(ignite.configuration().getConsistentId()); assertTrue(ADDR_WITH_PORT_PATTERN.matcher(ignite.cluster().localNode().consistentId().toString()).find()); info("Consistent ID: " + ignite.cluster().localNode().consistentId()); }
/** */ private void prepareDynamicCaches(IgniteEx ig) { ig.getOrCreateCache(new CacheConfiguration<>(DYNAMIC_CACHE_NAME_1) .setGroupName(GROUP_WITH_STATIC_CACHES) .setAffinity(new RendezvousAffinityFunction(false, 32)) .setNodeFilter(nodeFilter) ); ig.getOrCreateCache(new CacheConfiguration<>(DYNAMIC_CACHE_NAME_2) .setGroupName(GROUP_WITH_DYNAMIC_CACHES) .setAffinity(new RendezvousAffinityFunction(false, 16)) .setNodeFilter((IgnitePredicate<ClusterNode>)node -> node.consistentId().toString().contains(NODE_1_CONS_ID)) ); }
/** * @throws Exception If failed. */ @Test public void testBaselineAdd() throws Exception { int sz = gridCount(); assertBaseline(content(null, GridRestCommand.BASELINE_CURRENT_STATE), sz, sz); startGrid(sz); assertBaseline(content(null, GridRestCommand.BASELINE_CURRENT_STATE), sz, sz + 1); assertBaseline(content(null, GridRestCommand.BASELINE_ADD, "consistentId1", grid(sz).localNode().consistentId().toString()), sz + 1, sz + 1); stopGrid(sz); }