private static Duration nanosSince(long start, long now) { return succinctNanos(now - start); }
@VisibleForTesting TableWriterInfo getInfo() { return new TableWriterInfo( pageSinkPeakMemoryUsage.get(), succinctNanos(statisticsTiming.getWallNanos()), succinctNanos(statisticsTiming.getCpuNanos()), succinctNanos(pageSink.getValidationCpuNanos())); }
@VisibleForTesting TableFinishInfo getInfo() { return new TableFinishInfo( outputMetadata, succinctNanos(statisticsTiming.getWallNanos()), succinctNanos(statisticsTiming.getCpuNanos())); }
public Duration getElapsedTime() { if (endNanos.get() != null) { return succinctNanos(endNanos.get() - createNanos); } return nanosSince(createNanos, tickerNanos()); }
@Override public String getInfo() { double pct = (100.0 * getCalls() / numQuantas); return String.format("intr %3s%% done (wall: %9s, per quanta: %8s, between quanta: %8s)", (int) (pct > 100.00 ? 100.0 : pct), succinctNanos(wallTimeNanos), succinctNanos(perQuantaNanos), succinctNanos(betweenQuantaNanos)); } }
@Override public TableWriterInfo mergeWith(TableWriterInfo other) { return new TableWriterInfo( Math.max(pageSinkPeakMemoryUsage, other.pageSinkPeakMemoryUsage), succinctNanos(statisticsWallTime.roundTo(NANOSECONDS) + other.statisticsWallTime.roundTo(NANOSECONDS)), succinctNanos(statisticsCpuTime.roundTo(NANOSECONDS) + other.statisticsCpuTime.roundTo(NANOSECONDS)), succinctNanos(validationCpuTime.roundTo(NANOSECONDS) + other.validationCpuTime.roundTo(NANOSECONDS))); }
@Override public String getInfo() { double pct = (100.0 * getCompletedProcessNanos() / super.scheduledTimeNanos); return String.format("leaf %3s%% done (total: %8s, per quanta: %8s)", (int) (pct > 100.00 ? 100.0 : pct), succinctNanos(super.scheduledTimeNanos), succinctNanos(perQuantaNanos)); } }
String message = "%s splits have been continuously active for more than %s seconds\n"; for (RunningSplitInfo splitInfo : runningSplitInfos) { Duration duration = Duration.succinctNanos(ticker.read() - splitInfo.getStartTime()); if (duration.compareTo(LONG_SPLIT_WARNING_THRESHOLD) >= 0) { maxActiveSplitCount++;
if (succinctNanos(System.nanoTime() - lastRefresh.get()).compareTo(maxRefreshInterval) > 0) { lastRefresh.set(0);
private static String formatNanos(List<Long> list) { LongSummaryStatistics stats = list.stream().mapToLong(Long::new).summaryStatistics(); return String.format("Min: %8s Max: %8s Avg: %8s Sum: %8s", succinctNanos(stats.getMin() == Long.MAX_VALUE ? 0 : stats.getMin()), succinctNanos(stats.getMax() == Long.MIN_VALUE ? 0 : stats.getMax()), succinctNanos((long) stats.getAverage()), succinctNanos(stats.getSum())); } }
@Managed public long getRunAwaySplitCount() { int count = 0; for (RunningSplitInfo splitInfo : runningSplitInfos) { Duration duration = Duration.succinctNanos(ticker.read() - splitInfo.getStartTime()); if (duration.compareTo(LONG_SPLIT_WARNING_THRESHOLD) > 0) { count++; } } return count; }
succinctNanos(addInputTiming.getWallNanos()), succinctNanos(addInputTiming.getCpuNanos()), succinctBytes(rawInputDataSize.getTotalCount()), succinctBytes(inputDataSize.getTotalCount()), succinctNanos(getOutputTiming.getWallNanos()), succinctNanos(getOutputTiming.getCpuNanos()), succinctBytes(outputDataSize.getTotalCount()), outputPositions.getTotalCount(), succinctNanos(blockedWallNanos.get()), succinctNanos(finishTiming.getWallNanos()), succinctNanos(finishTiming.getCpuNanos()),
succinctBytes(driverMemoryContext.getRevocableMemory()), succinctBytes(driverMemoryContext.getSystemMemory()), succinctNanos(totalScheduledTime), succinctNanos(totalCpuTime), succinctNanos(totalBlockedTime), blockedMonitor != null, builder.build(),
elapsedTime.snapshot(), succinctNanos(totalScheduledTime), succinctNanos(totalCpuTime), succinctNanos(totalBlockedTime), fullyBlocked, blockedReasons,
succinctBytes(totalMemoryReservation), succinctNanos(totalCpuTime), succinctNanos(totalScheduledTime),
private void splitFinished(PrioritizedSplitRunner split) { completedSplitsPerLevel.incrementAndGet(split.getPriority().getLevel()); synchronized (this) { allSplits.remove(split); long wallNanos = System.nanoTime() - split.getCreatedNanos(); splitWallTime.add(Duration.succinctNanos(wallNanos)); if (intermediateSplits.remove(split)) { intermediateSplitWallTime.add(wallNanos); intermediateSplitScheduledTime.add(split.getScheduledNanos()); intermediateSplitWaitTime.add(split.getWaitNanos()); intermediateSplitCpuTime.add(split.getCpuTimeNanos()); } else { leafSplitWallTime.add(wallNanos); leafSplitScheduledTime.add(split.getScheduledNanos()); leafSplitWaitTime.add(split.getWaitNanos()); leafSplitCpuTime.add(split.getCpuTimeNanos()); } TaskHandle taskHandle = split.getTaskHandle(); taskHandle.splitComplete(split); scheduleTaskIfNecessary(taskHandle); addNewEntrants(); } // call destroy outside of synchronized block as it is expensive and doesn't need a lock on the task executor split.destroy(); }
succinctNanos(addInputWall), succinctNanos(addInputCpu), succinctBytes(rawInputDataSize), succinctBytes(inputDataSize), succinctNanos(getOutputWall), succinctNanos(getOutputCpu), succinctBytes(outputDataSize), outputPositions, succinctNanos(blockedWall), succinctNanos(finishWall), succinctNanos(finishCpu),
@Override public String getInfo() { double pct = (100.0 * getCompletedProcessNanos() / super.scheduledTimeNanos); return String.format("leaf %3s%% done (total: %8s, per quanta: %8s)", (int) (pct > 100.00 ? 100.0 : pct), succinctNanos(super.scheduledTimeNanos), succinctNanos(perQuantaNanos)); } }
@Managed public long getRunAwaySplitCount() { int count = 0; for (RunningSplitInfo splitInfo : runningSplitInfos) { Duration duration = Duration.succinctNanos(ticker.read() - splitInfo.getStartTime()); if (duration.compareTo(LONG_SPLIT_WARNING_THRESHOLD) > 0) { count++; } } return count; }
@Test public void testSuccinctFactories() { assertEquals(succinctNanos(123), new Duration(123, NANOSECONDS)); assertEquals(succinctNanos(123456), new Duration(123.456, MICROSECONDS)); assertEquals(succinctNanos(SECONDS.toNanos(300)), new Duration(5, MINUTES)); assertEquals(succinctDuration(123, NANOSECONDS), new Duration(123, NANOSECONDS)); assertEquals(succinctDuration(123456, NANOSECONDS), new Duration(123.456, MICROSECONDS)); assertEquals(succinctDuration(300, SECONDS), new Duration(5, MINUTES)); }