Skip to content
This repository has been archived by the owner on Jun 23, 2020. It is now read-only.

Commit

Permalink
Added server-put tracking to progress bar.
Browse files Browse the repository at this point in the history
  • Loading branch information
jayjwylie committed Mar 20, 2013
1 parent 104c927 commit 9d3fb7e
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 11 deletions.
3 changes: 3 additions & 0 deletions src/java/log4j.properties
Expand Up @@ -19,3 +19,6 @@ log4j.logger.voldemort.utils=INFO
log4j.logger.voldemort.client.rebalance=INFO
log4j.logger.voldemort.server=INFO
log4j.logger.krati=WARN

# log4j.logger.voldemort.utils.ConsistencyFix=TRACE
# log4j.logger.voldemort.utils.ConsistencyFixWorker=DEBUG
35 changes: 25 additions & 10 deletions src/java/voldemort/utils/ConsistencyFix.java
Expand Up @@ -491,14 +491,16 @@ public void run() {
public class Stats {

final long progressBar;
long count;
long fixCount;
long putCount;
long failures;
long lastTimeMs;
final long startTimeMs;

Stats(long progressBar) {
this.progressBar = progressBar;
this.count = 0;
this.fixCount = 0;
this.putCount = 0;
this.failures = 0;
this.lastTimeMs = System.currentTimeMillis();
this.startTimeMs = lastTimeMs;
Expand All @@ -511,16 +513,27 @@ private synchronized String getPrettyQPS(long count, long ms) {
return df.format(qps);
}

public synchronized void incrementCount() {
count++;
if(count % progressBar == 0) {
public synchronized void incrementFixCount() {
fixCount++;
if(fixCount % progressBar == 0) {
long nowTimeMs = System.currentTimeMillis();
logger.info("Bad keys attempted to be processed count = " + count + " ("
+ getPrettyQPS(progressBar, lastTimeMs - nowTimeMs) + " keys/second)");
StringBuilder sb = new StringBuilder();
sb.append("\nConsistencyFix Progress Bar\n");
sb.append("\tBad keys processed : " + fixCount
+ " (during this progress bar period)\n");
sb.append("\tBad key processing rate : "
+ getPrettyQPS(progressBar, nowTimeMs - lastTimeMs)
+ " bad keys/second)\n");
sb.append("\tServer-puts issued : " + putCount + " (since fixer started)\n");
logger.info(sb.toString());
lastTimeMs = nowTimeMs;
}
}

public synchronized void incrementPutCount() {
putCount++;
}

public synchronized void incrementFailures() {
failures++;
if(failures % progressBar == 0) {
Expand All @@ -533,12 +546,14 @@ public synchronized String summary() {
summary.append("\n\n");
summary.append("Consistency Fix Summary\n");
summary.append("-----------------------\n");
summary.append("Total keys processed: " + count + "\n");
summary.append("Total bad keys processed: " + fixCount + "\n");
summary.append("Total server-puts issued: " + putCount + "\n");
summary.append("Total keys processed that were not corrected: " + failures + "\n");
long nowTimeMs = System.currentTimeMillis();

long nowTimeMs = System.currentTimeMillis();
summary.append("Keys per second processed: "
+ getPrettyQPS(count, nowTimeMs - startTimeMs) + "\n");
+ getPrettyQPS(fixCount, nowTimeMs - startTimeMs) + "\n");

return summary.toString();
}
}
Expand Down
3 changes: 2 additions & 1 deletion src/java/voldemort/utils/ConsistencyFixWorker.java
Expand Up @@ -88,7 +88,7 @@ public void run() {
logger.trace("About to process key " + keyInHexFormat + " (" + myName() + ")");
Status status = doConsistencyFix(keyInHexFormat);
logger.trace("Finished processing key " + keyInHexFormat + " (" + myName() + ")");
consistencyFix.getStats().incrementCount();
consistencyFix.getStats().incrementFixCount();

if(status != Status.SUCCESS) {
try {
Expand Down Expand Up @@ -340,6 +340,7 @@ public Status doRepairPut(final List<NodeValue<ByteArray, byte[]>> toReadRepair)
consistencyFix.maybePutThrottle(nodeKeyValue.getNodeId());
consistencyFix.getAdminClient().storeOps.putNodeKeyValue(consistencyFix.getStoreName(),
nodeKeyValue);
consistencyFix.getStats().incrementPutCount();
} catch(ObsoleteVersionException ove) {
// TODO: Add OVE catches to some statistics?
// NOOP. Treat OVE as success.
Expand Down

0 comments on commit 9d3fb7e

Please sign in to comment.