com.addthis.hydra.data.query.Query.uuid()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(9.1k)|赞(0)|评价(0)|浏览(260)

本文整理了Java中com.addthis.hydra.data.query.Query.uuid方法的一些代码示例,展示了Query.uuid的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Query.uuid方法的具体详情如下:
包路径:com.addthis.hydra.data.query.Query
类名称:Query
方法名:uuid

Query.uuid介绍

暂无

代码示例

代码示例来源:origin: addthis/hydra

  1. static void sendTimeout(QueryEntry entry, long timeout) {
  2. String message = "[timeout.watcher] timeout: " + timeout +
  3. " has been exceeded, canceling query: " + entry.query.uuid();
  4. if (!entry.tryFailure(new TimeoutException(message))) {
  5. log.warn("QUERY TIMEOUT FAILURE: query: {}", entry.query.uuid());
  6. }
  7. }
  8. }

代码示例来源:origin: addthis/hydra

  1. @Override
  2. public void cancel(String message) {
  3. log.warn(query.uuid() + " cancel called on handle " + consumer + " message: " + message);
  4. if (engine != null) {
  5. interrupt();
  6. }
  7. }
  8. }

代码示例来源:origin: addthis/hydra

  1. @Override
  2. public void run() {
  3. try {
  4. long currentTime = System.currentTimeMillis();
  5. for (QueryEntry queryEntry : running.values()) {
  6. if (queryEntry.waitTime <= 0) {
  7. continue;
  8. }
  9. long queryDuration = currentTime - queryEntry.startTime;
  10. // wait time is in seconds
  11. double queryDurationInSeconds = queryDuration / 1000.0;
  12. if (queryDurationInSeconds < queryEntry.waitTime) {
  13. log.info("query: {} running for: {} timeout is: {}",
  14. queryEntry.query.uuid(), queryDurationInSeconds, queryEntry.waitTime);
  15. } else {
  16. log.warn("QUERY TIMEOUT query: {} running for: {} timeout is: {}",
  17. queryEntry.query.uuid(), queryDurationInSeconds, queryEntry.waitTime);
  18. // sanity check duration
  19. if (queryDurationInSeconds > (2 * queryEntry.waitTime)) {
  20. log.warn("query: {} query duration was insane, resetting to waitTime for logging. startTime: {}",
  21. queryEntry.query.uuid(), queryEntry.startTime);
  22. }
  23. sendTimeout(queryEntry, queryEntry.waitTime);
  24. }
  25. }
  26. } catch (Throwable ex) {
  27. log.error("error while running timeout watcher; swallowing to keep thread alive", ex);
  28. }
  29. }

代码示例来源:origin: addthis/hydra

  1. Handle(Query query, DataChannelOutput consumer) {
  2. setName("EngineSource " + query.uuid());
  3. this.query = query;
  4. this.consumer = consumer;
  5. start();
  6. }

代码示例来源:origin: addthis/hydra

  1. void checkForStragglersMeans() {
  2. int totalTasks = sourceAggregator.totalTasks;
  3. int numRemaining = totalTasks - sourceAggregator.completed;
  4. int tasksDoneCutoff = Math.max(1, (int) Math.ceil(AggregateConfig.stragglerCheckHostPercentage * totalTasks));
  5. long elapsedTime = JitterClock.globalTime() - sourceAggregator.startTime;
  6. double timeCutoff = AggregateConfig.stragglerCheckMeanRuntimeFactor * getMeanRuntime();
  7. if (numRemaining == 0) {
  8. if (MeshSourceAggregator.log.isDebugEnabled() || sourceAggregator.query.isTraced()) {
  9. Query.traceLog.info("Straggler checker for {} detected query done. Exiting.",
  10. sourceAggregator.query.uuid());
  11. }
  12. } else if ((numRemaining <= tasksDoneCutoff) && (elapsedTime > timeCutoff)) {
  13. handleStragglers();
  14. }
  15. }

代码示例来源:origin: addthis/hydra

  1. /**
  2. * Part 2 - ENGINE CACHE
  3. * Get a QueryEngine for our query -- check the cache for a suitable candidate, otherwise make one.
  4. * Most of this logic is handled by the QueryEngineCache.get() function.
  5. */
  6. protected QueryEngine getEngine() throws Exception {
  7. final long engineGetStartTime = System.currentTimeMillis();
  8. // Use the canonical path stored in the canonicalDirString to create a QueryEngine. By that way
  9. // if the alias changes new queries will use the latest available
  10. // database and the old engines will be automatically closed after their TTL expires.
  11. QueryEngine engine = MeshQuerySource.queryEngineCache.getAndLease(goldDirString);
  12. final long engineGetDuration = System.currentTimeMillis() - engineGetStartTime;
  13. MeshQuerySource.engineGetTimer.update(engineGetDuration, TimeUnit.MILLISECONDS);
  14. if (engine == null) //Cache returned null -- this doesn't mean cache miss. It means something went fairly wrong
  15. {
  16. log.warn("[QueryReference] Unable to retrieve queryEngine for query: {}, key: {} after waiting: {}ms",
  17. query.uuid(), goldDirString, engineGetDuration);
  18. throw new DataChannelError("Unable to retrieve queryEngine for query: " + query.uuid() +
  19. ", key: " + goldDirString + " after waiting: " + engineGetDuration + "ms");
  20. } //else we got an engine so we're good -- maybe this logic should be in the cache get
  21. if ((engineGetDuration > MeshQuerySource.slowQueryThreshold) || log.isDebugEnabled() || query.isTraced()) {
  22. Query.traceLog.info(
  23. "[QueryReference] Retrieved queryEngine for query: {}, key:{} after waiting: {}ms. slow={}",
  24. query.uuid(), goldDirString, engineGetDuration,
  25. engineGetDuration > MeshQuerySource.slowQueryThreshold);
  26. }
  27. return engine;
  28. }

代码示例来源:origin: addthis/hydra

  1. protected void writeQuery(final ChannelHandlerContext ctx, Query msg, ChannelPromise promise)
  2. throws Exception {
  3. this.requestPromise = promise;
  4. this.queryUser = new DataChannelOutputToNettyBridge(ctx, promise);
  5. this.query = msg;
  6. query.queryPromise = queryPromise;
  7. // create a processor chain based in query ops terminating the query user
  8. this.opProcessorConsumer = query.newProcessor(queryUser, opPromise);
  9. queryEntry = new QueryEntry(query, opsLog, this, aggregator);
  10. // Check if the uuid is repeated, then make a new one
  11. if (queryTracker.running.putIfAbsent(query.uuid(), queryEntry) != null) {
  12. throw new QueryException("Query uuid somehow already in use : " + query.uuid());
  13. }
  14. log.debug("Executing.... {} {}", query.uuid(), queryEntry);
  15. ctx.pipeline().remove(this);
  16. opPromise.addListener(this);
  17. queryPromise.addListener(this);
  18. requestPromise.addListener(this);
  19. ctx.write(opProcessorConsumer, queryPromise);
  20. }

代码示例来源:origin: addthis/hydra

  1. void checkForStragglersStdDev() {
  2. Query query = sourceAggregator.query;
  3. int totalTasks = sourceAggregator.totalTasks;
  4. int numRemaining = totalTasks - sourceAggregator.completed;
  5. int tasksDoneCutoff = Math.max(1, (int) Math.ceil(AggregateConfig.stragglerCheckHostPercentage * totalTasks));
  6. long elapsedTime = JitterClock.globalTime() - sourceAggregator.startTime;
  7. if (numRemaining == 0) {
  8. if (MeshSourceAggregator.log.isDebugEnabled() || query.isTraced()) {
  9. Query.traceLog.info("Straggler checker for {} detected query done. Exiting.", query.uuid());
  10. }
  11. } else if ((numRemaining <= tasksDoneCutoff) &&
  12. (elapsedTime > getStdDevsAwayRuntime(AggregateConfig.MULTIPLE_STD_DEVS))) {
  13. if (MeshSourceAggregator.log.isTraceEnabled()) {
  14. MeshSourceAggregator.log.trace("Running stragglers for query: {}", query.uuid());
  15. MeshSourceAggregator.log.trace(
  16. "numRemaining: {} taskDoneCutoff: {} deltaTime: {} {} stdDevsAway: {} Mean runtime: {}",
  17. numRemaining, tasksDoneCutoff, elapsedTime, AggregateConfig.MULTIPLE_STD_DEVS,
  18. getStdDevsAwayRuntime(AggregateConfig.MULTIPLE_STD_DEVS), getMeanRuntime());
  19. }
  20. handleStragglers();
  21. }
  22. }

代码示例来源:origin: addthis/hydra

  1. /**
  2. * Part 3 - SEARCH
  3. * Run the search -- most of this logic is in QueryEngine.search(). We only take care of logging times and
  4. * passing the sendComplete message along.
  5. */
  6. protected void search() {
  7. final long searchStartTime = System.currentTimeMillis();
  8. finalEng.search(query, queryOpProcessor, bridge.getQueryPromise());
  9. queryOpProcessor.sendComplete();
  10. final long searchDuration = System.currentTimeMillis() - searchStartTime;
  11. if (log.isDebugEnabled() || query.isTraced()) {
  12. Query.traceLog.info("[QueryReference] search complete {} in {}ms directory: {} slow={} rowsIn: {}",
  13. query.uuid(), searchDuration, goldDirString,
  14. searchDuration > MeshQuerySource.slowQueryThreshold, queryOpProcessor.getInputRows());
  15. }
  16. MeshQuerySource.queryTimes.update(searchDuration, TimeUnit.MILLISECONDS);
  17. }
  18. }

代码示例来源:origin: addthis/hydra

  1. @Override public void run() {
  2. engine = null;
  3. try {
  4. engineGate.acquire(1);
  5. engineGateHistogram.update(engineGate.availablePermits());
  6. engine = getEngineLease();
  7. engine.search(query, consumer,
  8. new DefaultChannelProgressivePromise(null, ImmediateEventExecutor.INSTANCE));
  9. consumer.sendComplete();
  10. } catch (QueryException e) {
  11. log.warn("query exception " + query.uuid() + " " + e + " " + consumer);
  12. consumer.sourceError(e);
  13. } catch (Exception e) {
  14. log.warn("query error " + query.uuid() + " " + e + " " + consumer, e);
  15. consumer.sourceError(new QueryException(e));
  16. } finally {
  17. engineGate.release();
  18. engineGateHistogram.update(engineGate.availablePermits());
  19. if (engine != null) {
  20. try {
  21. engine.release();
  22. } catch (Throwable t) {
  23. log.warn("[dispatch] error during db release of " + engine + " : " + t, t);
  24. }
  25. }
  26. }
  27. }

代码示例来源:origin: addthis/hydra

  1. public void handleStragglers() {
  2. for (QueryTaskSource taskSource : sourceAggregator.taskSources) {
  3. if (taskSource.oneHasResponded() || (taskSource.options.length == 0)) {
  4. continue;
  5. }
  6. for (QueryTaskSourceOption option : taskSource.options) {
  7. if (!option.isActive()) {
  8. if (option.tryActivate(sourceAggregator.meshy, sourceAggregator.queryOptions)) {
  9. AggregateConfig.totalStragglerCheckerRequests.inc();
  10. if (MeshSourceAggregator.log.isDebugEnabled() || sourceAggregator.query.isTraced()) {
  11. Query.traceLog.info("Straggler detected for {} sending duplicate query to host: {}",
  12. sourceAggregator.query.uuid(), option.queryReference.getHostUUID());
  13. }
  14. break;
  15. }
  16. }
  17. }
  18. }
  19. }
  20. }

代码示例来源:origin: addthis/hydra

  1. .put("time", System.currentTimeMillis())
  2. .put("job.id", query.getJob())
  3. .put("query.id", query.uuid())
  4. .put("sender", query.getParameter("sender"))
  5. .put("format", format)

代码示例来源:origin: addthis/hydra

  1. QueryEntry runE = queryTracker.running.remove(query.uuid());
  2. if (runE == null) {
  3. log.warn("failed to remove running for {}", query.uuid());
  4. if (taskSourceInfos == null) {
  5. log.warn("Failed to get detailed status for completed query {}; defaulting to brief",
  6. query.uuid());
  7. } else {
  8. int exactLines = 0;
  9. event.setValue(typeField, ValueFactory.create("complete"));
  10. queryTracker.recentlyCompleted.put(query.uuid(), entryInfo);
  11. queryTracker.queryMeter.update(entryInfo.runTime, TimeUnit.MILLISECONDS);
  12. queryTracker.eventLog.send(event);

相关文章