void createAndSetReturnFuture() { this.returnFuture = SettableFuture.create(); if (getWmContext() != null) { getWmContext().setReturnEventFuture(returnFuture); } }
public void endEvent(final WmTezSession sessionState) { this.wmTezSessionInfo = new WmTezSessionInfo(sessionState); this.eventEndTimestamp = System.currentTimeMillis(); this.elapsedTime = eventEndTimestamp - eventStartTimestamp; WmContext wmContext = sessionState.getWmContext(); if (wmContext != null) { wmContext.addWMEvent(this); LOG.info("Added WMEvent: {}", this); } }
void updateTriggers(final WmTezSession session) { WmContext wmContext = session.getWmContext(); String poolName = session.getPoolName(); PoolState poolState = pools.get(poolName); if (wmContext != null && poolState != null) { wmContext.addTriggers(poolState.getTriggers()); LOG.info("Subscribed to counters: {}", wmContext.getSubscribedCounters()); } }
session.getWmContext(), session.extractHiveResources());
private void returnSessionOnFailedReuse( GetRequest req, WmThreadSyncWork syncWork, HashSet<String> poolsToRedistribute) { WmTezSession session = req.sessionToReuse; if (session == null) return; req.sessionToReuse = null; session.setQueryId(null); if (poolsToRedistribute != null) { RemoveSessionResult rr = checkAndRemoveSessionFromItsPool( session, poolsToRedistribute, true, true); // The session cannot have been killed just now; this happens after all the kills in // the current iteration, so we would have cleared sessionToReuse when killing this. boolean isOk = (rr == RemoveSessionResult.OK); assert isOk || rr == RemoveSessionResult.IGNORE; if (!isOk) return; } WmEvent wmEvent = new WmEvent(WmEvent.EventType.RETURN); if (!tezAmPool.returnSessionAsync(session)) { syncWork.toDestroyNoRestart.add(session); } else { if (session.getWmContext() != null && session.getWmContext().isQueryCompleted()) { session.resolveReturnFuture(); } wmEvent.endEvent(session); } }
syncWork.toDestroyNoRestart.add(sessionToReturn); } else { if (sessionToReturn.getWmContext() != null && sessionToReturn.getWmContext().isQueryCompleted()) { sessionToReturn.resolveReturnFuture(); syncWork.toDestroyNoRestart.add(ctx.session); } else { if (ctx.session.getWmContext() != null && ctx.session.getWmContext().isQueryCompleted()) { ctx.session.resolveReturnFuture();
private void updateSessionAllocationWithEvent(WmTezSession session, double allocation) { WmEvent event = null; WmContext ctx = session.getWmContext(); if (ctx != null && session.hasClusterFraction() && !DoubleMath.fuzzyEquals(session.getClusterFraction(), allocation, 0.0001f)) { event = new WmEvent(EventType.UPDATE); } session.setClusterFraction(allocation); if (event != null) { event.endEvent(session); } }