Return-Path: Delivered-To: apmail-incubator-cassandra-commits-archive@minotaur.apache.org Received: (qmail 75197 invoked from network); 3 Feb 2010 23:14:38 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 3 Feb 2010 23:14:38 -0000 Received: (qmail 9458 invoked by uid 500); 3 Feb 2010 23:14:38 -0000 Delivered-To: apmail-incubator-cassandra-commits-archive@incubator.apache.org Received: (qmail 9419 invoked by uid 500); 3 Feb 2010 23:14:38 -0000 Mailing-List: contact cassandra-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: cassandra-dev@incubator.apache.org Delivered-To: mailing list cassandra-commits@incubator.apache.org Received: (qmail 9409 invoked by uid 99); 3 Feb 2010 23:14:38 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 03 Feb 2010 23:14:38 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 03 Feb 2010 23:14:29 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 408E423888FE; Wed, 3 Feb 2010 23:14:09 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r906283 - in /incubator/cassandra/trunk/src/java/org/apache/cassandra/db: BinaryMemtable.java ColumnFamilyStore.java Date: Wed, 03 Feb 2010 23:14:09 -0000 To: cassandra-commits@incubator.apache.org From: jbellis@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20100203231409.408E423888FE@eris.apache.org> 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 { - 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 columnFamilies_ = new NonBlockingHashMap(); + private boolean isFrozen = false; + private final Map columnFamilies = new NonBlockingHashMap(); /* 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 getSortedKeys() { - assert !columnFamilies_.isEmpty(); - logger_.info("Sorting " + this); - List keys = new ArrayList(columnFamilies_.keySet()); + assert !columnFamilies.isEmpty(); + logger.info("Sorting " + this); + List keys = new ArrayList(columnFamilies.keySet()); Collections.sort(keys); return keys; } public SSTableReader writeSortedContents(List 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(new BinaryMemtable(table_, columnFamily_)); + binaryMemtable_ = new AtomicReference(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); }