You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jm...@apache.org on 2014/11/04 21:38:12 UTC
[1/3] git commit: Add column update delta histogram
Repository: cassandra
Updated Branches:
refs/heads/cassandra-2.1 c816a7a49 -> 5acc7a9ed
Add column update delta histogram
Patch by Sankalp Kohli, review by jmckenzie for CASSANDRA-7979
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/e0197607
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/e0197607
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/e0197607
Branch: refs/heads/cassandra-2.1
Commit: e019760783e4d4ebf2d3ed60c33e7e63c226fa71
Parents: 7bfb347
Author: Sankalp Kohli <ko...@gmail.com>
Authored: Tue Nov 4 14:00:41 2014 -0600
Committer: Joshua McKenzie <jm...@apache.org>
Committed: Tue Nov 4 14:00:41 2014 -0600
----------------------------------------------------------------------
.../cassandra/db/AtomicSortedColumns.java | 28 +++++++++++++-------
.../apache/cassandra/db/ColumnFamilyStore.java | 4 ++-
src/java/org/apache/cassandra/db/Memtable.java | 13 ++++-----
.../cassandra/metrics/ColumnFamilyMetrics.java | 3 +++
.../cassandra/metrics/KeyspaceMetrics.java | 3 +++
5 files changed, 35 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/e0197607/src/java/org/apache/cassandra/db/AtomicSortedColumns.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/AtomicSortedColumns.java b/src/java/org/apache/cassandra/db/AtomicSortedColumns.java
index cacd3bb..993df5b 100644
--- a/src/java/org/apache/cassandra/db/AtomicSortedColumns.java
+++ b/src/java/org/apache/cassandra/db/AtomicSortedColumns.java
@@ -22,7 +22,6 @@ import java.util.*;
import java.util.concurrent.atomic.AtomicReference;
import com.google.common.base.Function;
-import com.google.common.collect.Iterables;
import edu.stanford.ppl.concurrent.SnapTreeMap;
@@ -30,7 +29,7 @@ import org.apache.cassandra.config.CFMetaData;
import org.apache.cassandra.db.filter.ColumnSlice;
import org.apache.cassandra.db.index.SecondaryIndexManager;
import org.apache.cassandra.db.marshal.AbstractType;
-import org.apache.cassandra.utils.Allocator;
+import org.apache.cassandra.utils.*;
/**
* A thread-safe and atomic ISortedColumns implementation.
@@ -51,6 +50,8 @@ public class AtomicSortedColumns extends ColumnFamily
{
private final AtomicReference<Holder> ref;
+ private static final boolean enableColUpdateTimeDelta = Boolean.parseBoolean(System.getProperty("cassandra.enableColUpdateTimeDelta", "false"));
+
public static final ColumnFamily.Factory<AtomicSortedColumns> factory = new Factory<AtomicSortedColumns>()
{
public AtomicSortedColumns create(CFMetaData metadata, boolean insertReversed)
@@ -155,9 +156,9 @@ public class AtomicSortedColumns extends ColumnFamily
/**
* This is only called by Memtable.resolve, so only AtomicSortedColumns needs to implement it.
*
- * @return the difference in size seen after merging the given columns
+ * @return the difference in size seen after merging the given columns and minimum time delta between timestamps of two reconciled columns.
*/
- public long addAllWithSizeDelta(ColumnFamily cm, Allocator allocator, Function<Column, Column> transformation, SecondaryIndexManager.Updater indexer)
+ public Pair<Long,Long> addAllWithSizeDelta(ColumnFamily cm, Allocator allocator, Function<Column, Column> transformation, SecondaryIndexManager.Updater indexer)
{
/*
* This operation needs to atomicity and isolation. To that end, we
@@ -172,11 +173,13 @@ public class AtomicSortedColumns extends ColumnFamily
*/
Holder current, modified;
long sizeDelta;
+ long timeDelta;
main_loop:
do
{
sizeDelta = 0;
+ timeDelta = Long.MAX_VALUE;
current = ref.get();
DeletionInfo newDelInfo = current.deletionInfo;
if (cm.deletionInfo().mayModify(newDelInfo))
@@ -188,7 +191,13 @@ public class AtomicSortedColumns extends ColumnFamily
for (Column column : cm)
{
- sizeDelta += modified.addColumn(transformation.apply(column), allocator, indexer);
+ final Pair<Integer, Long> pair = modified.addColumn(transformation.apply(column), allocator, indexer);
+ sizeDelta += pair.left;
+
+ //We will store the minimum delta for all columns if enabled
+ if(enableColUpdateTimeDelta)
+ timeDelta = Math.min(pair.right, timeDelta);
+
// bail early if we know we've been beaten
if (ref.get() != current)
continue main_loop;
@@ -198,7 +207,7 @@ public class AtomicSortedColumns extends ColumnFamily
indexer.updateRowLevelIndexes();
- return sizeDelta;
+ return Pair.create(sizeDelta, timeDelta);
}
public boolean replace(Column oldColumn, Column newColumn)
@@ -311,7 +320,7 @@ public class AtomicSortedColumns extends ColumnFamily
return new Holder(new SnapTreeMap<ByteBuffer, Column>(map.comparator()), LIVE);
}
- long addColumn(Column column, Allocator allocator, SecondaryIndexManager.Updater indexer)
+ Pair<Integer, Long> addColumn(Column column, Allocator allocator, SecondaryIndexManager.Updater indexer)
{
ByteBuffer name = column.name();
while (true)
@@ -320,14 +329,15 @@ public class AtomicSortedColumns extends ColumnFamily
if (oldColumn == null)
{
indexer.insert(column);
- return column.dataSize();
+ return Pair.create(column.dataSize(), Long.MAX_VALUE);
}
Column reconciledColumn = column.reconcile(oldColumn, allocator);
if (map.replace(name, oldColumn, reconciledColumn))
{
indexer.update(oldColumn, reconciledColumn);
- return reconciledColumn.dataSize() - oldColumn.dataSize();
+ return Pair.create(reconciledColumn.dataSize() - oldColumn.dataSize(),
+ enableColUpdateTimeDelta? Math.abs(oldColumn.timestamp - column.timestamp): Long.MAX_VALUE );
}
// We failed to replace column due to a concurrent update or a concurrent removal. Keep trying.
// (Currently, concurrent removal should not happen (only updates), but let us support that anyway.)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/e0197607/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
index d0ff951..8a18347 100644
--- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
+++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
@@ -897,9 +897,11 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean
long start = System.nanoTime();
Memtable mt = getMemtableThreadSafe();
- mt.put(key, columnFamily, indexer);
+ final long timeDelta = mt.put(key, columnFamily, indexer);
maybeUpdateRowCache(key);
metric.writeLatency.addNano(System.nanoTime() - start);
+ if(timeDelta < Long.MAX_VALUE)
+ metric.colUpdateTimeDeltaHistogram.update(timeDelta);
mt.maybeUpdateLiveRatio();
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/e0197607/src/java/org/apache/cassandra/db/Memtable.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/Memtable.java b/src/java/org/apache/cassandra/db/Memtable.java
index f9a6719..0d55bb2 100644
--- a/src/java/org/apache/cassandra/db/Memtable.java
+++ b/src/java/org/apache/cassandra/db/Memtable.java
@@ -24,6 +24,7 @@ import java.util.concurrent.atomic.AtomicLong;
import com.google.common.base.Function;
import com.google.common.base.Throwables;
+import org.apache.cassandra.utils.*;
import org.cliffc.high_scale_lib.NonBlockingHashSet;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -39,7 +40,6 @@ import org.apache.cassandra.io.sstable.SSTableMetadata;
import org.apache.cassandra.io.sstable.SSTableReader;
import org.apache.cassandra.io.sstable.SSTableWriter;
import org.apache.cassandra.io.util.DiskAwareRunnable;
-import org.apache.cassandra.utils.Allocator;
import org.github.jamm.MemoryMeter;
public class Memtable
@@ -160,9 +160,9 @@ public class Memtable
* (CFS handles locking to avoid submitting an op
* to a flushing memtable. Any other way is unsafe.)
*/
- void put(DecoratedKey key, ColumnFamily columnFamily, SecondaryIndexManager.Updater indexer)
+ long put(DecoratedKey key, ColumnFamily columnFamily, SecondaryIndexManager.Updater indexer)
{
- resolve(key, columnFamily, indexer);
+ return resolve(key, columnFamily, indexer);
}
public void maybeUpdateLiveRatio()
@@ -202,7 +202,7 @@ public class Memtable
meterExecutor.submit(new MeteringRunnable(cfs));
}
- private void resolve(DecoratedKey key, ColumnFamily cf, SecondaryIndexManager.Updater indexer)
+ private long resolve(DecoratedKey key, ColumnFamily cf, SecondaryIndexManager.Updater indexer)
{
AtomicSortedColumns previous = rows.get(key);
@@ -215,9 +215,10 @@ public class Memtable
previous = empty;
}
- long sizeDelta = previous.addAllWithSizeDelta(cf, allocator, localCopyFunction, indexer);
- currentSize.addAndGet(sizeDelta);
+ final Pair<Long, Long> pair = previous.addAllWithSizeDelta(cf, allocator, localCopyFunction, indexer);
+ currentSize.addAndGet(pair.left);
currentOperations.addAndGet(cf.getColumnCount() + (cf.isMarkedForDelete() ? 1 : 0) + cf.deletionInfo().rangeCount());
+ return pair.right;
}
// for debugging
http://git-wip-us.apache.org/repos/asf/cassandra/blob/e0197607/src/java/org/apache/cassandra/metrics/ColumnFamilyMetrics.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/metrics/ColumnFamilyMetrics.java b/src/java/org/apache/cassandra/metrics/ColumnFamilyMetrics.java
index a3838a0..c2b7d61 100644
--- a/src/java/org/apache/cassandra/metrics/ColumnFamilyMetrics.java
+++ b/src/java/org/apache/cassandra/metrics/ColumnFamilyMetrics.java
@@ -93,6 +93,8 @@ public class ColumnFamilyMetrics
public final ColumnFamilyHistogram tombstoneScannedHistogram;
/** Live cells scanned in queries on this CF */
public final ColumnFamilyHistogram liveScannedHistogram;
+ /** Column update time delta on this CF */
+ public final ColumnFamilyHistogram colUpdateTimeDeltaHistogram;
/** CAS Prepare metrics */
public final LatencyMetrics casPrepare;
/** CAS Propose metrics */
@@ -448,6 +450,7 @@ public class ColumnFamilyMetrics
});
tombstoneScannedHistogram = createColumnFamilyHistogram("TombstoneScannedHistogram", cfs.keyspace.metric.tombstoneScannedHistogram);
liveScannedHistogram = createColumnFamilyHistogram("LiveScannedHistogram", cfs.keyspace.metric.liveScannedHistogram);
+ colUpdateTimeDeltaHistogram = createColumnFamilyHistogram("ColUpdateTimeDeltaHistogram", cfs.keyspace.metric.colUpdateTimeDeltaHistogram);
coordinatorReadLatency = Metrics.newTimer(factory.createMetricName("CoordinatorReadLatency"), TimeUnit.MICROSECONDS, TimeUnit.SECONDS);
coordinatorScanLatency = Metrics.newTimer(factory.createMetricName("CoordinatorScanLatency"), TimeUnit.MICROSECONDS, TimeUnit.SECONDS);
casPrepare = new LatencyMetrics(factory, "CasPrepare", cfs.keyspace.metric.casPrepare);
http://git-wip-us.apache.org/repos/asf/cassandra/blob/e0197607/src/java/org/apache/cassandra/metrics/KeyspaceMetrics.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/metrics/KeyspaceMetrics.java b/src/java/org/apache/cassandra/metrics/KeyspaceMetrics.java
index 7a768b8..0ea982e 100644
--- a/src/java/org/apache/cassandra/metrics/KeyspaceMetrics.java
+++ b/src/java/org/apache/cassandra/metrics/KeyspaceMetrics.java
@@ -62,6 +62,8 @@ public class KeyspaceMetrics
public final Histogram tombstoneScannedHistogram;
/** Live cells scanned in queries on this Keyspace */
public final Histogram liveScannedHistogram;
+ /** Column update time delta on this Keyspace */
+ public final Histogram colUpdateTimeDeltaHistogram;
/** CAS Prepare metric */
public final LatencyMetrics casPrepare;
/** CAS Propose metrics */
@@ -155,6 +157,7 @@ public class KeyspaceMetrics
sstablesPerReadHistogram = Metrics.newHistogram(factory.createMetricName("SSTablesPerReadHistogram"), true);
tombstoneScannedHistogram = Metrics.newHistogram(factory.createMetricName("TombstoneScannedHistogram"), true);
liveScannedHistogram = Metrics.newHistogram(factory.createMetricName("LiveScannedHistogram"), true);
+ colUpdateTimeDeltaHistogram = Metrics.newHistogram(factory.createMetricName("ColUpdateTimeDeltaHistogram"), true);
// add manually since histograms do not use createKeyspaceGauge method
allMetrics.addAll(Lists.newArrayList("SSTablesPerReadHistogram", "TombstoneScannedHistogram", "LiveScannedHistogram"));
[3/3] git commit: Add column update delta histogram (2.1)
Posted by jm...@apache.org.
Add column update delta histogram (2.1)
Patch by Sankalp Kohli, review by jmckenzie for CASSANDRA-7979
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/5acc7a9e
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/5acc7a9e
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/5acc7a9e
Branch: refs/heads/cassandra-2.1
Commit: 5acc7a9ed72f0862cc87927014e8de131826cd23
Parents: f7f4ddb
Author: Sankalp Kohli <ko...@gmail.com>
Authored: Tue Nov 4 14:30:34 2014 -0600
Committer: Joshua McKenzie <jm...@apache.org>
Committed: Tue Nov 4 14:30:34 2014 -0600
----------------------------------------------------------------------
src/java/org/apache/cassandra/db/AtomicBTreeColumns.java | 9 ++++++---
src/java/org/apache/cassandra/db/ColumnFamilyStore.java | 4 +++-
src/java/org/apache/cassandra/db/Memtable.java | 9 +++++----
.../org/apache/cassandra/metrics/ColumnFamilyMetrics.java | 3 +++
4 files changed, 17 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/5acc7a9e/src/java/org/apache/cassandra/db/AtomicBTreeColumns.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/AtomicBTreeColumns.java b/src/java/org/apache/cassandra/db/AtomicBTreeColumns.java
index 7b5e8a8..372ce5c 100644
--- a/src/java/org/apache/cassandra/db/AtomicBTreeColumns.java
+++ b/src/java/org/apache/cassandra/db/AtomicBTreeColumns.java
@@ -35,7 +35,7 @@ import org.apache.cassandra.config.CFMetaData;
import org.apache.cassandra.db.composites.CellName;
import org.apache.cassandra.db.composites.Composite;
import org.apache.cassandra.db.filter.ColumnSlice;
-import org.apache.cassandra.utils.ObjectSizes;
+import org.apache.cassandra.utils.*;
import org.apache.cassandra.utils.btree.BTree;
import org.apache.cassandra.utils.btree.UpdateFunction;
import org.apache.cassandra.utils.concurrent.Locks;
@@ -189,7 +189,7 @@ public class AtomicBTreeColumns extends ColumnFamily
*
* @return the difference in size seen after merging the given columns
*/
- public long addAllWithSizeDelta(final ColumnFamily cm, MemtableAllocator allocator, OpOrder.Group writeOp, Updater indexer)
+ public Pair<Long, Long> addAllWithSizeDelta(final ColumnFamily cm, MemtableAllocator allocator, OpOrder.Group writeOp, Updater indexer)
{
ColumnUpdater updater = new ColumnUpdater(this, cm.metadata, allocator, writeOp, indexer);
DeletionInfo inputDeletionInfoCopy = null;
@@ -228,7 +228,7 @@ public class AtomicBTreeColumns extends ColumnFamily
{
indexer.updateRowLevelIndexes();
updater.finish();
- return updater.dataSize;
+ return Pair.create(updater.dataSize, updater.colUpdateTimeDelta);
}
else if (!monitorOwned)
{
@@ -420,6 +420,7 @@ public class AtomicBTreeColumns extends ColumnFamily
Holder ref;
long dataSize;
long heapSize;
+ long colUpdateTimeDelta = Long.MAX_VALUE;
final MemtableAllocator.DataReclaimer reclaimer;
List<Cell> inserted; // TODO: replace with walk of aborted BTree
@@ -458,6 +459,8 @@ public class AtomicBTreeColumns extends ColumnFamily
inserted = new ArrayList<>();
inserted.add(reconciled);
discard(existing);
+ //Getting the minimum delta for an update containing multiple columns
+ colUpdateTimeDelta = Math.min(Math.abs(existing.timestamp() - update.timestamp()), colUpdateTimeDelta);
}
return reconciled;
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/5acc7a9e/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
index 184399a..0541608 100644
--- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
+++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
@@ -1140,9 +1140,11 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean
long start = System.nanoTime();
Memtable mt = data.getMemtableFor(opGroup);
- mt.put(key, columnFamily, indexer, opGroup, replayPosition);
+ final long timeDelta = mt.put(key, columnFamily, indexer, opGroup, replayPosition);
maybeUpdateRowCache(key);
metric.writeLatency.addNano(System.nanoTime() - start);
+ if(timeDelta < Long.MAX_VALUE)
+ metric.colUpdateTimeDeltaHistogram.update(timeDelta);
}
/**
http://git-wip-us.apache.org/repos/asf/cassandra/blob/5acc7a9e/src/java/org/apache/cassandra/db/Memtable.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/Memtable.java b/src/java/org/apache/cassandra/db/Memtable.java
index b0d2a11..ba3864f 100644
--- a/src/java/org/apache/cassandra/db/Memtable.java
+++ b/src/java/org/apache/cassandra/db/Memtable.java
@@ -29,6 +29,7 @@ import java.util.concurrent.atomic.AtomicLong;
import java.util.concurrent.atomic.AtomicReference;
import com.google.common.base.Throwables;
+import org.apache.cassandra.utils.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -43,8 +44,6 @@ import org.apache.cassandra.io.sstable.SSTableWriter;
import org.apache.cassandra.io.sstable.metadata.MetadataCollector;
import org.apache.cassandra.io.util.DiskAwareRunnable;
import org.apache.cassandra.service.ActiveRepairService;
-import org.apache.cassandra.utils.ByteBufferUtil;
-import org.apache.cassandra.utils.ObjectSizes;
import org.apache.cassandra.utils.concurrent.OpOrder;
import org.apache.cassandra.utils.memory.*;
@@ -151,7 +150,7 @@ public class Memtable
*
* replayPosition should only be null if this is a secondary index, in which case it is *expected* to be null
*/
- void put(DecoratedKey key, ColumnFamily cf, SecondaryIndexManager.Updater indexer, OpOrder.Group opGroup, ReplayPosition replayPosition)
+ long put(DecoratedKey key, ColumnFamily cf, SecondaryIndexManager.Updater indexer, OpOrder.Group opGroup, ReplayPosition replayPosition)
{
if (replayPosition != null && writeBarrier != null)
{
@@ -189,8 +188,10 @@ public class Memtable
}
}
- liveDataSize.addAndGet(previous.addAllWithSizeDelta(cf, allocator, opGroup, indexer));
+ final Pair<Long, Long> pair = previous.addAllWithSizeDelta(cf, allocator, opGroup, indexer);
+ liveDataSize.addAndGet(pair.left);
currentOperations.addAndGet(cf.getColumnCount() + (cf.isMarkedForDelete() ? 1 : 0) + cf.deletionInfo().rangeCount());
+ return pair.right;
}
// for debugging
http://git-wip-us.apache.org/repos/asf/cassandra/blob/5acc7a9e/src/java/org/apache/cassandra/metrics/ColumnFamilyMetrics.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/metrics/ColumnFamilyMetrics.java b/src/java/org/apache/cassandra/metrics/ColumnFamilyMetrics.java
index 8ab432e..d9d3ed9 100644
--- a/src/java/org/apache/cassandra/metrics/ColumnFamilyMetrics.java
+++ b/src/java/org/apache/cassandra/metrics/ColumnFamilyMetrics.java
@@ -101,6 +101,8 @@ public class ColumnFamilyMetrics
public final ColumnFamilyHistogram tombstoneScannedHistogram;
/** Live cells scanned in queries on this CF */
public final ColumnFamilyHistogram liveScannedHistogram;
+ /** Column update time delta on this CF */
+ public final ColumnFamilyHistogram colUpdateTimeDeltaHistogram;
/** Disk space used by snapshot files which */
public final Gauge<Long> trueSnapshotsSize;
/** Row cache hits, but result out of range */
@@ -497,6 +499,7 @@ public class ColumnFamilyMetrics
});
tombstoneScannedHistogram = createColumnFamilyHistogram("TombstoneScannedHistogram", cfs.keyspace.metric.tombstoneScannedHistogram);
liveScannedHistogram = createColumnFamilyHistogram("LiveScannedHistogram", cfs.keyspace.metric.liveScannedHistogram);
+ colUpdateTimeDeltaHistogram = createColumnFamilyHistogram("ColUpdateTimeDeltaHistogram", cfs.keyspace.metric.colUpdateTimeDeltaHistogram);
coordinatorReadLatency = Metrics.newTimer(factory.createMetricName("CoordinatorReadLatency"), TimeUnit.MICROSECONDS, TimeUnit.SECONDS);
coordinatorScanLatency = Metrics.newTimer(factory.createMetricName("CoordinatorScanLatency"), TimeUnit.MICROSECONDS, TimeUnit.SECONDS);
waitingOnFreeMemtableSpace = Metrics.newTimer(factory.createMetricName("WaitingOnFreeMemtableSpace"), TimeUnit.MICROSECONDS, TimeUnit.SECONDS);
[2/3] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1
Posted by jm...@apache.org.
Merge branch 'cassandra-2.0' into cassandra-2.1
Conflicts:
src/java/org/apache/cassandra/db/AtomicSortedColumns.java
src/java/org/apache/cassandra/db/ColumnFamilyStore.java
src/java/org/apache/cassandra/db/Memtable.java
src/java/org/apache/cassandra/metrics/ColumnFamilyMetrics.java
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/f7f4ddbf
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f7f4ddbf
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f7f4ddbf
Branch: refs/heads/cassandra-2.1
Commit: f7f4ddbf6f0ab5b4aa741b10e39f5465b740ff37
Parents: c816a7a e019760
Author: Joshua McKenzie <jm...@apache.org>
Authored: Tue Nov 4 14:27:25 2014 -0600
Committer: Joshua McKenzie <jm...@apache.org>
Committed: Tue Nov 4 14:27:25 2014 -0600
----------------------------------------------------------------------
src/java/org/apache/cassandra/metrics/KeyspaceMetrics.java | 3 +++
1 file changed, 3 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/f7f4ddbf/src/java/org/apache/cassandra/metrics/KeyspaceMetrics.java
----------------------------------------------------------------------