Skip to content

Instantly share code, notes, and snippets.

@afeinberg
Created October 21, 2009 02:51
Show Gist options
  • Save afeinberg/214803 to your computer and use it in GitHub Desktop.
Save afeinberg/214803 to your computer and use it in GitHub Desktop.
diff --git a/src/java/voldemort/store/stats/StatTrackingStore.java b/src/java/voldemort/store/stats/StatTrackingStore.java
index 7b62e2d..d1b62cb 100644
--- a/src/java/voldemort/store/stats/StatTrackingStore.java
+++ b/src/java/voldemort/store/stats/StatTrackingStore.java
@@ -24,6 +24,7 @@ import voldemort.annotations.jmx.JmxGetter;
import voldemort.annotations.jmx.JmxOperation;
import voldemort.store.DelegatingStore;
import voldemort.store.Store;
+import voldemort.versioning.ObsoleteVersionException;
import voldemort.versioning.Version;
import voldemort.versioning.Versioned;
@@ -87,6 +88,8 @@ public class StatTrackingStore<K, V> extends DelegatingStore<K, V> {
long start = System.nanoTime();
try {
super.put(key, value);
+ } catch (ObsoleteVersionException e) {
+ stats.recordTime(Tracked.OBSOLETE, System.nanoTime() - start);
} catch(VoldemortException e) {
stats.recordTime(Tracked.EXCEPTION, System.nanoTime() - start);
throw e;
@@ -159,6 +162,12 @@ public class StatTrackingStore<K, V> extends DelegatingStore<K, V> {
return stats.getThroughput(Tracked.DELETE);
}
+ @JmxGetter(name = "numberOfObsoleteVersions",
+ description = "Number of ObsoleteVersionExceptions since the last reset.")
+ public long getNumberOfObsoleteVersions() {
+ return stats.getCount(Tracked.OBSOLETE);
+ }
+
@JmxGetter(name = "numberOfExceptions", description = "The number of exceptions since the last reset.")
public long getNumberOfExceptions() {
return stats.getCount(Tracked.EXCEPTION);
diff --git a/src/java/voldemort/store/stats/Tracked.java b/src/java/voldemort/store/stats/Tracked.java
index 52cd1ab..ce5fe09 100644
--- a/src/java/voldemort/store/stats/Tracked.java
+++ b/src/java/voldemort/store/stats/Tracked.java
@@ -5,7 +5,8 @@ public enum Tracked {
GET_ALL("getAll"),
PUT("put"),
DELETE("delete"),
- EXCEPTION("exception");
+ EXCEPTION("exception"),
+ OBSOLETE("obsolete");
private final String name;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment