Merge pull request #66 from caskdata/feature/tephra-112_tx-snapshot-stats
TEPHRA-112 Log basic stats when loading a transaction snapshot
diff --git a/tephra-core/src/main/java/co/cask/tephra/coprocessor/TransactionStateCache.java b/tephra-core/src/main/java/co/cask/tephra/coprocessor/TransactionStateCache.java
index 966c389..2e92209 100644
--- a/tephra-core/src/main/java/co/cask/tephra/coprocessor/TransactionStateCache.java
+++ b/tephra-core/src/main/java/co/cask/tephra/coprocessor/TransactionStateCache.java
@@ -157,6 +157,9 @@
} else {
latestState = currentSnapshot;
LOG.info("Transaction state reloaded with snapshot from " + latestState.getTimestamp());
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Latest transaction snapshot: " + latestState.toString());
+ }
lastRefresh = now;
}
} else {
diff --git a/tephra-core/src/main/java/co/cask/tephra/persist/HDFSTransactionStateStorage.java b/tephra-core/src/main/java/co/cask/tephra/persist/HDFSTransactionStateStorage.java
index efe5803..ea886eb 100644
--- a/tephra-core/src/main/java/co/cask/tephra/persist/HDFSTransactionStateStorage.java
+++ b/tephra-core/src/main/java/co/cask/tephra/persist/HDFSTransactionStateStorage.java
@@ -24,6 +24,7 @@
import com.google.common.base.Function;
import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
+import com.google.common.io.CountingInputStream;
import com.google.common.primitives.Longs;
import com.google.inject.Inject;
import org.apache.hadoop.conf.Configuration;
@@ -161,7 +162,10 @@
}
private TransactionSnapshot readSnapshotInputStream(InputStream in) throws IOException {
- return codecProvider.decode(in);
+ CountingInputStream countingIn = new CountingInputStream(in);
+ TransactionSnapshot snapshot = codecProvider.decode(countingIn);
+ LOG.info("Read encoded transaction snapshot of {} bytes", countingIn.getCount());
+ return snapshot;
}
private TransactionSnapshot readSnapshotFile(Path filePath) throws IOException {