You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2010/02/04 00:14:09 UTC
svn commit: r906283 - in
/incubator/cassandra/trunk/src/java/org/apache/cassandra/db:
BinaryMemtable.java ColumnFamilyStore.java
Author: jbellis
Date: Wed Feb 3 23:14:08 2010
New Revision: 906283
URL: http://svn.apache.org/viewvc?rev=906283&view=rev
Log:
give BMT a reference to CFS object instead of Strings; clean out underscores and unused code. patch by jbellis
Modified:
incubator/cassandra/trunk/src/java/org/apache/cassandra/db/BinaryMemtable.java
incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/db/BinaryMemtable.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/db/BinaryMemtable.java?rev=906283&r1=906282&r2=906283&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/db/BinaryMemtable.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/db/BinaryMemtable.java Wed Feb 3 23:14:08 2010
@@ -39,46 +39,28 @@
public class BinaryMemtable implements IFlushable<DecoratedKey>
{
- private static Logger logger_ = Logger.getLogger(BinaryMemtable.class);
- private int threshold_ = DatabaseDescriptor.getBMTThreshold() * 1024 * 1024;
- private AtomicInteger currentSize_ = new AtomicInteger(0);
+ private static final Logger logger = Logger.getLogger(BinaryMemtable.class);
+ private final int threshold = DatabaseDescriptor.getBMTThreshold() * 1024 * 1024;
+ private final AtomicInteger currentSize = new AtomicInteger(0);
/* Table and ColumnFamily name are used to determine the ColumnFamilyStore */
- private String table_;
- private String cfName_;
- private boolean isFrozen_ = false;
- private Map<DecoratedKey, byte[]> columnFamilies_ = new NonBlockingHashMap<DecoratedKey, byte[]>();
+ private boolean isFrozen = false;
+ private final Map<DecoratedKey, byte[]> columnFamilies = new NonBlockingHashMap<DecoratedKey, byte[]>();
/* Lock and Condition for notifying new clients about Memtable switches */
- Lock lock_ = new ReentrantLock();
- Condition condition_;
- private final IPartitioner partitioner_ = StorageService.getPartitioner();
+ private final Lock lock = new ReentrantLock();
+ Condition condition;
+ private final IPartitioner partitioner = StorageService.getPartitioner();
+ private final ColumnFamilyStore cfs;
- BinaryMemtable(String table, String cfName) throws IOException
+ public BinaryMemtable(ColumnFamilyStore cfs)
{
- condition_ = lock_.newCondition();
- table_ = table;
- cfName_ = cfName;
+ this.cfs = cfs;
+ condition = lock.newCondition();
}
- public int getMemtableThreshold()
- {
- return currentSize_.get();
- }
-
- void resolveSize(int oldSize, int newSize)
- {
- currentSize_.addAndGet(newSize - oldSize);
- }
-
-
boolean isThresholdViolated()
{
- return currentSize_.get() >= threshold_;
- }
-
- String getColumnFamily()
- {
- return cfName_;
+ return currentSize.get() >= threshold;
}
/*
@@ -90,24 +72,23 @@
{
if (isThresholdViolated())
{
- lock_.lock();
+ lock.lock();
try
{
- ColumnFamilyStore cfStore = Table.open(table_).getColumnFamilyStore(cfName_);
- if (!isFrozen_)
+ if (!isFrozen)
{
- isFrozen_ = true;
- cfStore.submitFlush(this);
- cfStore.switchBinaryMemtable(key, buffer);
+ isFrozen = true;
+ cfs.submitFlush(this);
+ cfs.switchBinaryMemtable(key, buffer);
}
else
{
- cfStore.applyBinary(key, buffer);
+ cfs.applyBinary(key, buffer);
}
}
finally
{
- lock_.unlock();
+ lock.unlock();
}
}
else
@@ -118,39 +99,38 @@
public boolean isClean()
{
- return columnFamilies_.isEmpty();
+ return columnFamilies.isEmpty();
}
private void resolve(String key, byte[] buffer)
{
- columnFamilies_.put(partitioner_.decorateKey(key), buffer);
- currentSize_.addAndGet(buffer.length + key.length());
+ columnFamilies.put(partitioner.decorateKey(key), buffer);
+ currentSize.addAndGet(buffer.length + key.length());
}
public List<DecoratedKey> getSortedKeys()
{
- assert !columnFamilies_.isEmpty();
- logger_.info("Sorting " + this);
- List<DecoratedKey> keys = new ArrayList<DecoratedKey>(columnFamilies_.keySet());
+ assert !columnFamilies.isEmpty();
+ logger.info("Sorting " + this);
+ List<DecoratedKey> keys = new ArrayList<DecoratedKey>(columnFamilies.keySet());
Collections.sort(keys);
return keys;
}
public SSTableReader writeSortedContents(List<DecoratedKey> sortedKeys) throws IOException
{
- logger_.info("Writing " + this);
- ColumnFamilyStore cfStore = Table.open(table_).getColumnFamilyStore(cfName_);
- String path = cfStore.getTempSSTablePath();
+ logger.info("Writing " + this);
+ String path = cfs.getTempSSTablePath();
SSTableWriter writer = new SSTableWriter(path, sortedKeys.size(), StorageService.getPartitioner());
for (DecoratedKey key : sortedKeys)
{
- byte[] bytes = columnFamilies_.get(key);
+ byte[] bytes = columnFamilies.get(key);
assert bytes.length > 0;
writer.append(key, bytes);
}
- SSTableReader sstable = writer.closeAndOpenReader(DatabaseDescriptor.getKeysCachedFraction(table_, cfName_));
- logger_.info("Completed flushing " + writer.getFilename());
+ SSTableReader sstable = writer.closeAndOpenReader(DatabaseDescriptor.getKeysCachedFraction(cfs.getTable().name, cfs.getColumnFamilyName()));
+ logger.info("Completed flushing " + writer.getFilename());
return sstable;
}
}
Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java?rev=906283&r1=906282&r2=906283&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java Wed Feb 3 23:14:08 2010
@@ -127,7 +127,7 @@
isSuper_ = isSuper;
fileIndexGenerator_.set(indexValue);
memtable_ = new Memtable(table_, columnFamily_);
- binaryMemtable_ = new AtomicReference<BinaryMemtable>(new BinaryMemtable(table_, columnFamily_));
+ binaryMemtable_ = new AtomicReference<BinaryMemtable>(new BinaryMemtable(this));
if (logger_.isDebugEnabled())
logger_.debug("Starting CFS " + columnFamily_);
@@ -396,7 +396,7 @@
void switchBinaryMemtable(String key, byte[] buffer) throws IOException
{
- binaryMemtable_.set(new BinaryMemtable(table_, columnFamily_));
+ binaryMemtable_.set(new BinaryMemtable(this));
binaryMemtable_.get().put(key, buffer);
}