diff --git a/core/src/main/java/com/yahoo/ycsb/DBWrapper.java b/core/src/main/java/com/yahoo/ycsb/DBWrapper.java index e904717a4d782030cea0df7f0dec3ba25a069a12..bba76b1f9fe612b7b4e9cb89abb3c1f1f40d350b 100644 --- a/core/src/main/java/com/yahoo/ycsb/DBWrapper.java +++ b/core/src/main/java/com/yahoo/ycsb/DBWrapper.java @@ -35,14 +35,6 @@ public class DBWrapper extends DB DB _db; Measurements _measurements; - // By default we don't track latency numbers for specific error status code. - // We just report latency of all failed operation under one measurement name - // such as [READ-FAILED]. But optionally, user can configure to have either: - // 1) Record and report latency for each and every error status code by - // setting reportLatencyForEachError to true, or - // 2) Record and report latency for a select set of error status codes by - // providing a CSV list of Status codes via the "latencytrackederrors" - // property. boolean reportLatencyForEachError = false; HashSet<String> latencyTrackedErrors = new HashSet<String>(); @@ -79,14 +71,16 @@ public class DBWrapper extends DB this.reportLatencyForEachError = Boolean.parseBoolean(getProperties(). getProperty("reportlatencyforeacherror", "false")); - String latencyTrackedErrors = getProperties().getProperty( - "latencytrackederrors", null); - if (latencyTrackedErrors != null) { - this.latencyTrackedErrors = new HashSet<String>(Arrays.asList( - latencyTrackedErrors.split(","))); + if (!reportLatencyForEachError) { + String latencyTrackedErrors = getProperties().getProperty( + "latencytrackederrors", null); + if (latencyTrackedErrors != null) { + this.latencyTrackedErrors = new HashSet<String>(Arrays.asList( + latencyTrackedErrors.split(","))); + } } - System.out.println("DBWrapper: report latency for each error is " + + System.err.println("DBWrapper: report latency for each error is " + this.reportLatencyForEachError + " and specific error codes to track" + " for latency are: " + this.latencyTrackedErrors.toString()); } diff --git a/workloads/workload_template b/workloads/workload_template index 6aebd64a178d525032214076a2e7c2d15b104485..de0bbae24aa7f4d77083201e182e6919e9095042 100644 --- a/workloads/workload_template +++ b/workloads/workload_template @@ -138,3 +138,21 @@ histogram.buckets=1000 # Granularity for time series (in milliseconds) timeseries.granularity=1000 + +# Latency reporting. +# +# YCSB records latency of failed operations separately from successful ones. +# Latency of all OK operations will be reported under their operation name, +# such as [READ], [UPDATE], etc. +# +# For failed operations: +# By default we don't track latency numbers of specific error status. +# We just report latency of all failed operation under one measurement name +# such as [READ-FAILED]. But optionally, user can configure to have either: +# 1. Record and report latency for each and every error status code by +# setting reportLatencyForEachError to true, or +# 2. Record and report latency for a select set of error status codes by +# providing a CSV list of Status codes via the "latencytrackederrors" +# property. +# reportlatencyforeacherror=false +# latencytrackederrors="<comma separated strings of error codes>"