public synchronized void logStats() { Map<String, DurationAggregator> hankTimerDurationAggregators = new TreeMap<String, DurationAggregator>(); for (Map.Entry<Domain, List<PartitionUpdateTaskStatistics>> entry1 : domainToPartitionUpdateTaskStatistics.entrySet()) { Domain domain = entry1.getKey(); List<PartitionUpdateTaskStatistics> partitionUpdateTaskStatisticsList = entry1.getValue(); for (PartitionUpdateTaskStatistics partitionUpdateTaskStatistics : partitionUpdateTaskStatisticsList) { for (Map.Entry<String, Long> entry2 : partitionUpdateTaskStatistics.getDurationsMs().entrySet()) { String name = domain.getName() + " - " + entry2.getKey(); Long duration = entry2.getValue(); DurationAggregator aggregator = hankTimerDurationAggregators.get(name); if (aggregator == null) { aggregator = new DurationAggregator(name); hankTimerDurationAggregators.put(name, aggregator); } aggregator.add(duration); } } } for (DurationAggregator aggregator : hankTimerDurationAggregators.values()) { aggregator.logStats(); } } }
long cueballTimeMs = timer.getDurationMs(); statistics.getDurationsMs().put("Curly merge", curlyTimeMs);
cacheVersionsNeededToUpdate(currentVersion, cachedBases, cachedDeltas, updatePlan); long fetchTimeMs = timer.getDurationMs(); statistics.getDurationsMs().put("Update data fetch", fetchTimeMs); statistics.getDurationsMs().put("Update execution", executionTimeMs); LOG.info("Update in " + localPartitionRoot + " to " + updatingToVersion + ": fetched data in " + FormatUtils.formatSecondsDuration(fetchTimeMs / 1000)
compressionCodec); statistics.getDurationsMs().put("Cueball merge", timer.getDurationMs());
statistics.getDurationsMs().put("Curly compaction", timer.getDurationMs());