@Override public void onEvent(GridEvent evt) { assert evt instanceof GridDiscoveryEvent; synchronized (qryMux) { uids.remove(((GridDiscoveryEvent)evt).eventNode().id()); if (uids.isEmpty()) qryMux.notifyAll(); } } };
/** * @param evt Discovery event. */ public void onDiscoveryEvent(GridDiscoveryEvent evt) { if (log.isDebugEnabled()) log.debug("Processing discovery event: " + evt); if (evt.type() == GridEventType.EVT_NODE_FAILED || evt.type() == EVT_NODE_LEFT) onNodeLeft(evt.eventNode().id()); synchronized (this) { lastSnapshot = new GridDiscoveryTopologySnapshot(evt.topologyVersion(), evt.topologyNodes()); notifyAll(); } }
GridDiscoveryEvent evt = new GridDiscoveryEvent(); evt.node(ctx.discovery().localNode()); evt.eventNode(node); evt.type(type); evt.topologySnapshot(topVer, new ArrayList<>( F.viewReadOnly(topSnapshot, new C1<GridNode, GridNode>() { @Override public GridNode apply(GridNode e) { evt.message("Metrics were updated: " + node); evt.message("Node joined: " + node); evt.message("Node left: " + node); evt.message("Node failed: " + node); evt.message("Node segmented: " + node); evt.message("Node reconnected: " + node);
/** {@inheritDoc} */ @Override public GridDiscoveryTopologySnapshot topologySnapshot() throws GridException { get(); if (topSnapshot.get() == null) topSnapshot.compareAndSet(null, new GridDiscoveryTopologySnapshot(discoEvt.topologyVersion(), discoEvt.topologyNodes())); return topSnapshot.get(); }
@SuppressWarnings("fallthrough") @Override public void onEvent(GridEvent evt) { assert evt instanceof GridDiscoveryEvent; GridDiscoveryEvent discoEvt = (GridDiscoveryEvent)evt; UUID evtNodeId = discoEvt.eventNode().id(); switch (discoEvt.type()) { case EVT_NODE_JOINED: GridNode node = getSpiContext().node(evtNodeId); if (node != null) { nodeQueue.offer(node); sndMsgMap.putIfAbsent(node.id(), new MessageInfo()); rcvMsgMap.putIfAbsent(node.id(), new MessageInfo()); } break; case EVT_NODE_LEFT: case EVT_NODE_FAILED: Iterator<GridNode> iter = nodeQueue.iterator(); while (iter.hasNext()) { GridNode nextNode = iter.next(); if (nextNode.id().equals(evtNodeId)) iter.remove(); } sndMsgMap.remove(evtNodeId); rcvMsgMap.remove(evtNodeId); break; default: assert false : "Unexpected event: " + evt; } } },
GridNode loc = cctx.localNode(); assert e.type() == EVT_NODE_JOINED || e.type() == EVT_NODE_LEFT || e.type() == EVT_NODE_FAILED; final GridNode n = e.eventNode(); f.onDiscoveryEvent(e); if (e.type() == EVT_NODE_LEFT || e.type() == EVT_NODE_FAILED) { assert cctx.discovery().node(n.id()) == null; assert e.type() != EVT_NODE_JOINED || n.order() > loc.order() : "Node joined with smaller-than-local " + "order [newOrder=" + n.order() + ", locOrder=" + loc.order() + ']'; boolean set = topVer.setIfGreater(e.topologyVersion()); GridDhtPartitionExchangeId exchId = exchangeId(n.id(), e.topologyVersion(), e.type()); if (e.type() == EVT_NODE_LEFT || e.type() == EVT_NODE_FAILED) { for (GridDhtAssignmentFetchFuture<K, V> fut : pendingAssignmentFetchFuts.values()) fut.onNodeLeft(e.eventNode().id());
@Override public void onEvent(GridEvent evt) { assert evt.type() == EVT_NODE_METRICS_UPDATED; GridDiscoveryEvent discoEvt = (GridDiscoveryEvent)evt; GridNode node = cctx.discovery().node(discoEvt.node().id()); if (node != null && !node.id().equals(cctx.nodeId())) onReceived(discoEvt.eventNode().id(), node.metrics().getLastDataVersion()); } };
@Override public void onEvent(GridEvent evt) { GridDiscoveryEvent discoEvt = (GridDiscoveryEvent)evt; for (String cacheName : nearOrClientCaches) { if (ctx.discovery().cacheAffinityNodes(cacheName, discoEvt.topologyVersion()).isEmpty()) { if (ctx.event().isRecordable(GridEventType.EVT_CACHE_DATA_LOST)) { ctx.event().record(new GridCacheEvent(cacheName, ctx.discovery().localNode(), discoEvt.eventNode(), "All data nodes left", GridEventType.EVT_CACHE_DATA_LOST, 0, false, null, null, null, null, false, null, false, null, null, null)); } } } } }, GridEventType.EVT_NODE_LEFT, GridEventType.EVT_NODE_FAILED);
long minNodeOrder = Long.MAX_VALUE; Collection<GridNode> nodes = discoEvt.topologyNodes();
/** {@inheritDoc} */ @Override public void onEvent(GridEvent evt) { assert evt.type() == EVT_NODE_JOINED || evt.type() == EVT_NODE_LEFT || evt.type() == EVT_NODE_FAILED; GridDiscoveryEvent discoEvt = (GridDiscoveryEvent)evt; if (discoEvt.topologyVersion() >= awaitVer) onDone(discoEvt.topologyVersion()); } }
/** {@inheritDoc} */ @Override public String shortDisplay() { return name() + ": id8=" + U.id8(evtNode.id()) + ", ip=" + F.first(evtNode.addresses()); }
/** * @param evt Discovery event. */ @SuppressWarnings( {"unchecked"}) public void onDiscoveryEvent(GridDiscoveryEvent evt) { topCntr.incrementAndGet(); int type = evt.type(); for (GridFuture<?> f : futures()) { if (isMini(f)) { MiniFuture mini = (MiniFuture)f; mini.onDiscoveryEvent(); if (type == EVT_NODE_LEFT || type == EVT_NODE_FAILED) { if (mini.node().id().equals(evt.eventNode().id())) { mini.onResult(new GridTopologyException("Node left grid (will retry): " + evt.eventNode().id())); break; } } } } }
/** * Time coordinator thread constructor. * * @param evt Discovery event on which this node became a coordinator. */ protected TimeCoordinator(GridDiscoveryEvent evt) { super(ctx.gridName(), "grid-time-coordinator", log); lastSnapshot = new GridDiscoveryTopologySnapshot(evt.topologyVersion(), evt.topologyNodes()); }
long minNodeOrder = Long.MAX_VALUE; Collection<GridNode> nodes = discoEvt.topologyNodes();
@Override public void onEvent(GridEvent evt) { int evtType = evt.type(); assert evtType == EVT_NODE_FAILED || evtType == EVT_NODE_LEFT || evtType == EVT_NODE_JOINED; if (affMap.isEmpty()) return; // Skip empty affinity map. final GridDiscoveryEvent discoEvt = (GridDiscoveryEvent)evt; // Clean up affinity functions if such cache no more exists. if (evtType == EVT_NODE_FAILED || evtType == EVT_NODE_LEFT) { final Collection<String> caches = new HashSet<>(); for (GridNode gridNode : ctx.discovery().allNodes()) caches.addAll(U.cacheNames(gridNode)); final Collection<AffinityAssignmentKey> rmv = new GridLeanSet<>(); for (AffinityAssignmentKey key : affMap.keySet()) { if (!caches.contains(key.cacheName) || key.topVer < discoEvt.topologyVersion() - 1) rmv.add(key); } ctx.timeout().addTimeoutObject(new GridTimeoutObjectAdapter( GridUuid.fromUuid(ctx.localNodeId()), AFFINITY_MAP_CLEAN_UP_DELAY) { @Override public void onTimeout() { affMap.keySet().removeAll(rmv); } }); } } };
@Override public void onEvent(GridEvent evt) { GridDiscoveryEvent discoEvt = (GridDiscoveryEvent)evt; for (GridStreamerStageExecutionFuture fut : stageFuts.values()) fut.onNodeLeft(discoEvt.eventNode().id()); } }, EVT_NODE_LEFT, EVT_NODE_FAILED);