Return-Path: Delivered-To: apmail-cassandra-commits-archive@www.apache.org Received: (qmail 47227 invoked from network); 3 Mar 2011 17:41:20 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 3 Mar 2011 17:41:20 -0000 Received: (qmail 29644 invoked by uid 500); 3 Mar 2011 17:41:20 -0000 Delivered-To: apmail-cassandra-commits-archive@cassandra.apache.org Received: (qmail 29594 invoked by uid 500); 3 Mar 2011 17:41:20 -0000 Mailing-List: contact commits-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cassandra.apache.org Delivered-To: mailing list commits@cassandra.apache.org Received: (qmail 29585 invoked by uid 99); 3 Mar 2011 17:41:20 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 03 Mar 2011 17:41:20 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.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; Thu, 03 Mar 2011 17:41:19 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 6C9EE23888EA; Thu, 3 Mar 2011 17:40:59 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1076699 - in /cassandra/branches/cassandra-0.7: src/java/org/apache/cassandra/db/ColumnFamilyStore.java test/unit/org/apache/cassandra/db/ColumnFamilyStoreTest.java Date: Thu, 03 Mar 2011 17:40:59 -0000 To: commits@cassandra.apache.org From: brandonwilliams@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20110303174059.6C9EE23888EA@eris.apache.org> Author: brandonwilliams Date: Thu Mar 3 17:40:59 2011 New Revision: 1076699 URL: http://svn.apache.org/viewvc?rev=1076699&view=rev Log: CFS correctly flushes index CFs. Patch by jbellis, reviewed by brandonwilliams for CASSANDRA-2244 Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/ColumnFamilyStore.java cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/db/ColumnFamilyStoreTest.java Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/ColumnFamilyStore.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/ColumnFamilyStore.java?rev=1076699&r1=1076698&r2=1076699&view=diff ============================================================================== --- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/ColumnFamilyStore.java (original) +++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/ColumnFamilyStore.java Thu Mar 3 17:40:59 2011 @@ -685,8 +685,11 @@ public class ColumnFamilyStore implement { if (oldMemtable.isFrozen()) return null; - - if (DatabaseDescriptor.getCFMetaData(metadata.cfId) == null) + + boolean isDropped = isIndex() + ? DatabaseDescriptor.getCFMetaData(table.name, getParentColumnfamily()) == null + : DatabaseDescriptor.getCFMetaData(metadata.cfId) == null; + if (isDropped) return null; // column family was dropped. no point in flushing. assert memtable == oldMemtable; @@ -2113,6 +2116,12 @@ public class ColumnFamilyStore implement return partitioner instanceof LocalPartitioner; } + private String getParentColumnfamily() + { + assert isIndex(); + return columnFamily.split("\\.")[0]; + } + /** * sets each cache's maximum capacity to 75% of its current size */ Modified: cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/db/ColumnFamilyStoreTest.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/db/ColumnFamilyStoreTest.java?rev=1076699&r1=1076698&r2=1076699&view=diff ============================================================================== --- cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/db/ColumnFamilyStoreTest.java (original) +++ cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/db/ColumnFamilyStoreTest.java Thu Mar 3 17:40:59 2011 @@ -307,7 +307,7 @@ public class ColumnFamilyStoreTest exten } @Test - public void testIndexCreate() throws IOException, ConfigurationException, InterruptedException + public void testIndexCreate() throws IOException, ConfigurationException, InterruptedException, ExecutionException { Table table = Table.open("Keyspace1"); @@ -324,6 +324,9 @@ public class ColumnFamilyStoreTest exten while (!SystemTable.isIndexBuilt("Keyspace1", cfs.getIndexedColumnFamilyStore(ByteBufferUtil.bytes("birthdate")).columnFamily)) TimeUnit.MILLISECONDS.sleep(100); + // we had a bug (CASSANDRA-2244) where index would get created but not flushed -- check for that + assert cfs.getIndexedColumnFamilyStore(cd.name).getSSTables().size() > 0; + IndexExpression expr = new IndexExpression(ByteBufferUtil.bytes("birthdate"), IndexOperator.EQ, ByteBufferUtil.bytes(1L)); IndexClause clause = new IndexClause(Arrays.asList(expr), ByteBufferUtil.EMPTY_BYTE_BUFFER, 100); IFilter filter = new IdentityQueryFilter(); @@ -331,8 +334,7 @@ public class ColumnFamilyStoreTest exten Range range = new Range(p.getMinimumToken(), p.getMinimumToken()); List rows = table.getColumnFamilyStore("Indexed2").scan(clause, range, filter); assert rows.size() == 1 : StringUtils.join(rows, ","); - String key = new String(rows.get(0).key.key.array(),rows.get(0).key.key.position(),rows.get(0).key.key.remaining()); - assert "k1".equals( key ); + assertEquals("k1", ByteBufferUtil.string(rows.get(0).key.key)); } @Test