@Override public void onEvent(GridEvent evt) { assert evt.type() == EVT_NODE_FAILED || evt.type() == EVT_NODE_LEFT; GridDiscoveryEvent discoEvt = (GridDiscoveryEvent)evt; if (ggfsCtx.ggfsNode(discoEvt.eventNode())) { for (WriteCompletionFuture future : pendingWrites.values()) { future.onError(discoEvt.eventNode().id(), new GridTopologyException("Node left grid before write completed: " + evt.node().id())); } } } }, EVT_NODE_LEFT, EVT_NODE_FAILED);
/** {@inheritDoc} */ @Override public boolean equals(Object o) { assert id != null; return this == o || o instanceof GridEventAdapter && id.equals(((GridEvent)o).id()); }
@Override public boolean apply(GridEvent e) { // Detects that events were lost. if (!lastFound.get() && (lastOrder == e.localOrder())) lastFound.set(true); // Retains events by lastOrder, period and type. return e.localOrder() > lastOrder && e.timestamp() > notOlderThan && (all ? F.contains(VISOR_ALL_EVTS, e.type()) : F.contains(VISOR_NON_TASK_EVTS, e.type())); } };
GridEvent maxEvt = Collections.max(evts, EVENTS_ORDER_COMPARATOR); nl.put(evtOrderKey, maxEvt.localOrder()); int tid = e.type(); GridUuid id = e.id(); String name = e.name(); UUID nid = e.node().id(); long t = e.timestamp(); String msg = e.message(); String shortDisplay = e.shortDisplay();
switch (evt.type()) { case EVT_NODE_JOINED: if (reqs != null) { assert false : "Unexpected event received: " + evt.shortDisplay();
@Override public int compare(GridEvent o1, GridEvent o2) { return Long.compare(o1.localOrder(), o2.localOrder()); } };
/** * Method cleans up all events that either outnumber queue size * or exceeds time-to-live value. It does none if someone else * cleans up queue (lock is locked) or if there are queue readers * (readersNum > 0). */ private void cleanupQueue() { long now = U.currentTimeMillis(); long queueOversize = evts.sizex() - expireCnt; for (int i = 0; i < queueOversize && evts.sizex() > expireCnt; i++) { GridEvent expired = evts.poll(); if (log.isDebugEnabled()) log.debug("Event expired by count: " + expired); } while (true) { ConcurrentLinkedDeque8.Node<GridEvent> node = evts.peekx(); if (node == null) // Queue is empty. break; GridEvent evt = node.item(); if (evt == null) // Competing with another thread. continue; if (now - evt.timestamp() < expireAgeMs) break; if (evts.unlinkx(node) && log.isDebugEnabled()) log.debug("Event expired by age: " + node.item()); } }
int tid = e.type(); GridUuid id = e.id(); String name = e.name(); UUID nid = e.node().id(); long t = e.timestamp(); String msg = e.message(); String shortDisplay = e.shortDisplay(); maxOrder = Math.max(maxOrder, e.localOrder());
@Override public void onEvent(GridEvent evt) { assert evt.type() == EVT_NODE_LEFT || evt.type() == EVT_NODE_FAILED || evt.type() == EVT_NODE_JOINED; GridDiscoveryEvent discoEvt = (GridDiscoveryEvent)evt; if (evt.type() == EVT_NODE_LEFT || evt.type() == EVT_NODE_FAILED) checkLaunchCoordinator(discoEvt); TimeCoordinator timeCoord0 = timeCoord; if (timeCoord0 != null) timeCoord0.onDiscoveryEvent(discoEvt); } }, EVT_NODE_LEFT, EVT_NODE_FAILED, EVT_NODE_JOINED);
@Override public boolean apply(GridEvent event) { return event.localOrder() > startEvtOrder && (arg.typeArgument() == null || F.contains(arg.typeArgument(), event.type())) && event.timestamp() >= startEvtTime && (arg.taskName() == null || filterByTaskName(event, arg.taskName())) && (arg.taskSessionId() == null || filterByTaskSessionId(event, arg.taskSessionId())); } });
@Override public void onEvent(GridEvent evt) { assert evt.type() == EVT_NODE_FAILED || evt.type() == EVT_NODE_LEFT; GridDiscoveryEvent discoEvt = (GridDiscoveryEvent)evt; if (ggfsCtx.ggfsNode(discoEvt.eventNode())) { for (WriteCompletionFuture future : pendingWrites.values()) { future.onError(discoEvt.eventNode().id(), new GridTopologyException("Node left grid before write completed: " + evt.node().id())); } } } }, EVT_NODE_LEFT, EVT_NODE_FAILED);
/** {@inheritDoc} */ @Override public int compareTo(GridEvent o) { return o == null ? 1 : id.compareTo(o.id()); }
@Override public boolean apply(T t) { for (int type : types) { if (type == t.type()) return p.apply(t); } return false; } };
/** * Gets event predicate that returns {@code true} only if node that produced the event * is one of the given. Note that if array of provided nodes is {@code null} or empty * this method returns predicate that evaluates to {@code false} when applying. * * @param nodes Nodes. * @return Event predicate. */ public static GridPredicate<GridEvent> eventNode(@Nullable final Collection<? extends GridNode> nodes) { return isEmpty(nodes) ? F.<GridEvent>alwaysFalse() : new GridPredicate<GridEvent>() { @Override public boolean apply(GridEvent e) { assert e != null; return !forAll(nodes, not(nodeForNodeId(e.node().id()))); } }; }
@Override public void onEvent(GridEvent evt) { if (evt.type() == EVT_TASK_FAILED || evt.type() == EVT_TASK_FINISHED) perTaskBalancers.remove(((GridTaskEvent)evt).taskSessionId()); else if (evt.type() == EVT_JOB_MAPPED) { GridRoundRobinPerTaskLoadBalancer balancer = perTaskBalancers.get(((GridJobEvent)evt).taskSessionId()); if (balancer != null) balancer.onMapped(); } } };
@Override public void onEvent(GridEvent evt) { assert evt.type() == EVT_NODE_FAILED || evt.type() == EVT_NODE_LEFT || evt.type() == EVT_NODE_JOINED; GridDiscoveryEvent discoEvt = (GridDiscoveryEvent)evt; // Notify backup worker on each topology change. if (CU.affinityNode(cctx, discoEvt.eventNode())) backupWorker.addEvent(discoEvt); } },
/** {@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()); } }
/** * @param evt Event to notify about. */ private void notifyListeners(GridEvent evt) { assert evt != null; notifyListeners(lsnrs.get(evt.type()), evt); }