*
* @throws Exception
* if anything unexpected happens.
*/
public synchronized void printResults() throws Exception {
ClientStats stats = fullStatsContext.fetch().getStats();
// 1. Voting Board statistics, Voting results and performance statistics
String display = "\n" + HORIZONTAL_RULE + " Voting Results\n"
+ HORIZONTAL_RULE + "\nA total of %d votes were received during the benchmark...\n"
+ " - %,9d Accepted\n"
+ " - %,9d Rejected (Invalid Contestant)\n"
+ " - %,9d Rejected (Maximum Vote Count Reached)\n"
+ " - %,9d Failed (Transaction Error)\n\n";
System.out.printf(display, totalVotes.get(),
acceptedVotes.get(), badContestantVotes.get(),
badVoteCountVotes.get(), failedVotes.get());
// 2. Voting results
final PreparedStatement resultsCS = client
.prepareCall("{call Results}");
ResultSet result = resultsCS.executeQuery();
String winner = "";
long winnerVoteCount = 0;
System.out.println("Contestant Name\t\tVotes Received");
while (result.next()) {
if (result.getLong(3) > winnerVoteCount) {
winnerVoteCount = result.getLong(3);
winner = result.getString(1);
}
System.out.printf("%s\t\t%,14d\n", result.getString(1),
result.getLong(3));
}
System.out.printf("\nThe Winner is: %s\n\n", winner);
// 3. Performance statistics
System.out.print(HORIZONTAL_RULE);
System.out.println(" Client Workload Statistics");
System.out.println(HORIZONTAL_RULE);
System.out.printf("Average throughput: %,9d txns/sec\n",
stats.getTxnThroughput());
System.out.printf("Average latency: %,9.2f ms\n",
stats.getAverageLatency());
System.out.printf("10th percentile latency: %,9.2f ms\n",
stats.kPercentileLatencyAsDouble(.1));
System.out.printf("25th percentile latency: %,9.2f ms\n",
stats.kPercentileLatencyAsDouble(.25));
System.out.printf("50th percentile latency: %,9.2f ms\n",
stats.kPercentileLatencyAsDouble(.5));
System.out.printf("75th percentile latency: %,9.2f ms\n",
stats.kPercentileLatencyAsDouble(.75));
System.out.printf("90th percentile latency: %,9.2f ms\n",
stats.kPercentileLatencyAsDouble(.9));
System.out.printf("95th percentile latency: %,9.2f ms\n",
stats.kPercentileLatencyAsDouble(.95));
System.out.printf("99th percentile latency: %,9.2f ms\n",
stats.kPercentileLatencyAsDouble(.99));
System.out.printf("99.5th percentile latency: %,9.2f ms\n",
stats.kPercentileLatencyAsDouble(.995));
System.out.printf("99.9th percentile latency: %,9.2f ms\n",
stats.kPercentileLatencyAsDouble(.999));
System.out.print("\n" + HORIZONTAL_RULE);
System.out.println(" System Server Statistics");
System.out.println(HORIZONTAL_RULE);
System.out.printf("Reported Internal Avg Latency: %,9.2f ms\n",
stats.getAverageInternalLatency());
System.out.print("\n" + HORIZONTAL_RULE);
System.out.println(" Latency Histogram");
System.out.println(HORIZONTAL_RULE);
System.out.println(stats.latencyHistoReport());
// 4. Write stats to file if requested
((IVoltDBConnection)client).writeSummaryCSV(stats, config.statsfile);
}