public void doFinalReport() { await(); doPeriodReport(false); test.processCacheStats(); clusterTestCount.addAndGet(nodeTestCount.intValue()); clusterReads.addAndGet(processor.getRead()); clusterWrites.addAndGet(processor.getWrite()); // * 100 to get better average as it will convert to Long if (getConfiguration().isStandalone()) { clusterLatency.addAndGet( (long) cumulativeLatencyStats.getTotal() * 100 / testCountAtLastReport); } await(); long totalNode = nodeTestCount.get(); long totalCluster = clusterTestCount.get(); long totalRead = clusterReads.get(); long totalWrite = clusterWrites.get(); log.info("------- FINAL REPORT -------- "); long testDuration = (actualTestEndTime - testStartTime) / 1000; log.info(String.format("Node TPS: %.1f", (double) totalNode / testDuration)); log.info(String.format("Cluster TPS: %.1f", (double) totalCluster / testDuration)); log.info("------- Cache Stats -------- "); log.info(String.format("Cluster Cache Read TPS: %.1f", (double) totalRead / testDuration)); log.info(String.format("Cluster Cache Write TPS: %.1f", (double) totalWrite / testDuration)); log.info( String.format( "Cluster Cache Total TPS: %.1f", (double) (totalRead + totalWrite) / testDuration)); if (getConfiguration().isStandalone()) { log.info( String.format( "Cluster Avg Latency: %.1f", (double) clusterLatency.get() / (configuration.getNodesNum() * 100))); log.info(String.format("Warmup Cache TPS: %d", clusterCacheWarmup.get())); log.info( String.format( "Warmup Cluster TPS: %d , Time taken for clusterCoherent: %d", clusterWarmup.get(), bulkLoadCompleteTime)); } int totalWrites = test.getWritesCount(); if (totalWrites > 0) { log.info( String.format( "Node Total Write operations: %d (%.1f %%)", totalWrites, (totalWrites * 100.0 / totalNode))); } int exceptions = nonstopCacheExceptionCount.get(); if (exceptions > 0) { log.info( String.format( "Node NonstopCache Exception Count: %d (%.1f %%)", exceptions, (exceptions * 100.0 / totalNode))); } }