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/01/19 22:23:09 UTC
svn commit: r900964 - in
/incubator/cassandra/trunk/test/unit/org/apache/cassandra/db:
CompactionsPurgeTest.java CompactionsTest.java
Author: jbellis
Date: Tue Jan 19 21:23:08 2010
New Revision: 900964
URL: http://svn.apache.org/viewvc?rev=900964&view=rev
Log:
expose failing test by moving it where other tests are not covering it up somehow. patch by jbellis
Added:
incubator/cassandra/trunk/test/unit/org/apache/cassandra/db/CompactionsPurgeTest.java (with props)
Modified:
incubator/cassandra/trunk/test/unit/org/apache/cassandra/db/CompactionsTest.java
Added: incubator/cassandra/trunk/test/unit/org/apache/cassandra/db/CompactionsPurgeTest.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/test/unit/org/apache/cassandra/db/CompactionsPurgeTest.java?rev=900964&view=auto
==============================================================================
--- incubator/cassandra/trunk/test/unit/org/apache/cassandra/db/CompactionsPurgeTest.java (added)
+++ incubator/cassandra/trunk/test/unit/org/apache/cassandra/db/CompactionsPurgeTest.java Tue Jan 19 21:23:08 2010
@@ -0,0 +1,134 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements. See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership. The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied. See the License for the
+* specific language governing permissions and limitations
+* under the License.
+*/
+package org.apache.cassandra.db;
+
+import java.io.IOException;
+import java.net.InetAddress;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Set;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.Future;
+
+import org.junit.Test;
+
+import org.apache.cassandra.CleanupHelper;
+import org.apache.cassandra.db.filter.IdentityQueryFilter;
+import org.apache.cassandra.db.filter.QueryPath;
+import org.apache.cassandra.io.SSTableReader;
+import org.apache.cassandra.utils.FBUtilities;
+
+import static junit.framework.Assert.assertEquals;
+
+public class CompactionsPurgeTest extends CleanupHelper
+{
+ public static final String TABLE1 = "Keyspace1";
+
+ @Test
+ public void testCompactionPurge() throws IOException, ExecutionException, InterruptedException
+ {
+ CompactionManager.instance.disableAutoCompaction();
+
+ Table table = Table.open(TABLE1);
+ String cfName = "Standard1";
+ ColumnFamilyStore store = table.getColumnFamilyStore(cfName);
+
+ String key = "key1";
+ RowMutation rm;
+
+ // inserts
+ rm = new RowMutation(TABLE1, key);
+ for (int i = 0; i < 10; i++)
+ {
+ rm.add(new QueryPath(cfName, null, String.valueOf(i).getBytes()), new byte[0], 0);
+ }
+ rm.apply();
+ store.forceBlockingFlush();
+
+ // deletes
+ for (int i = 0; i < 10; i++)
+ {
+ rm = new RowMutation(TABLE1, key);
+ rm.delete(new QueryPath(cfName, null, String.valueOf(i).getBytes()), 1);
+ rm.apply();
+ }
+ store.forceBlockingFlush();
+
+ // resurrect one column
+ rm = new RowMutation(TABLE1, key);
+ rm.add(new QueryPath(cfName, null, String.valueOf(5).getBytes()), new byte[0], 2);
+ rm.apply();
+ store.forceBlockingFlush();
+
+ // verify that non-major compaction does no GC to ensure correctness (see CASSANDRA-604)
+ Collection<SSTableReader> sstablesIncomplete = store.getSSTables();
+ rm = new RowMutation(TABLE1, key + "x");
+ rm.add(new QueryPath(cfName, null, "0".getBytes()), new byte[0], 0);
+ rm.apply();
+ store.forceBlockingFlush();
+ CompactionManager.instance.doCompaction(store, sstablesIncomplete, CompactionManager.getDefaultGCBefore());
+ ColumnFamily cf = table.getColumnFamilyStore(cfName).getColumnFamily(new IdentityQueryFilter(key, new QueryPath(cfName)));
+ assert cf.getColumnCount() == 10;
+
+ // major compact and test that all columns but the resurrected one is completely gone
+ CompactionManager.instance.submitMajor(store, 0, Integer.MAX_VALUE).get();
+ cf = table.getColumnFamilyStore(cfName).getColumnFamily(new IdentityQueryFilter(key, new QueryPath(cfName)));
+ assert cf.getColumnCount() == 1;
+ assert cf.getColumn(String.valueOf(5).getBytes()) != null;
+ }
+
+ @Test
+ public void testCompactionPurgeOneFile() throws IOException, ExecutionException, InterruptedException
+ {
+ CompactionManager.instance.disableAutoCompaction();
+
+ Table table = Table.open(TABLE1);
+ String cfName = "Standard2";
+ ColumnFamilyStore store = table.getColumnFamilyStore(cfName);
+
+ String key = "key1";
+ RowMutation rm;
+
+ // inserts
+ rm = new RowMutation(TABLE1, key);
+ for (int i = 0; i < 5; i++)
+ {
+ rm.add(new QueryPath(cfName, null, String.valueOf(i).getBytes()), new byte[0], 0);
+ }
+ rm.apply();
+
+ // deletes
+ for (int i = 0; i < 5; i++)
+ {
+ rm = new RowMutation(TABLE1, key);
+ rm.delete(new QueryPath(cfName, null, String.valueOf(i).getBytes()), 1);
+ rm.apply();
+ }
+ store.forceBlockingFlush();
+
+ assert store.getSSTables().size() == 1 : store.getSSTables(); // inserts & deletes were in the same memtable -> only deletes in sstable
+
+ // compact and test that the row is completely gone
+ CompactionManager.instance.submitMajor(store, 0, Integer.MAX_VALUE).get();
+ assert store.getSSTables().isEmpty();
+ ColumnFamily cf = table.getColumnFamilyStore(cfName).getColumnFamily(new IdentityQueryFilter(key, new QueryPath(cfName)));
+ assert cf == null : cf;
+ }
+}
\ No newline at end of file
Propchange: incubator/cassandra/trunk/test/unit/org/apache/cassandra/db/CompactionsPurgeTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: incubator/cassandra/trunk/test/unit/org/apache/cassandra/db/CompactionsTest.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/test/unit/org/apache/cassandra/db/CompactionsTest.java?rev=900964&r1=900963&r2=900964&view=diff
==============================================================================
--- incubator/cassandra/trunk/test/unit/org/apache/cassandra/db/CompactionsTest.java (original)
+++ incubator/cassandra/trunk/test/unit/org/apache/cassandra/db/CompactionsTest.java Tue Jan 19 21:23:08 2010
@@ -78,97 +78,6 @@
}
@Test
- public void testCompactionPurge() throws IOException, ExecutionException, InterruptedException
- {
- CompactionManager.instance.disableAutoCompaction();
-
- Table table = Table.open(TABLE1);
- String cfName = "Standard1";
- ColumnFamilyStore store = table.getColumnFamilyStore(cfName);
-
- String key = "key1";
- RowMutation rm;
-
- // inserts
- rm = new RowMutation(TABLE1, key);
- for (int i = 0; i < 10; i++)
- {
- rm.add(new QueryPath(cfName, null, String.valueOf(i).getBytes()), new byte[0], 0);
- }
- rm.apply();
- store.forceBlockingFlush();
-
- // deletes
- for (int i = 0; i < 10; i++)
- {
- rm = new RowMutation(TABLE1, key);
- rm.delete(new QueryPath(cfName, null, String.valueOf(i).getBytes()), 1);
- rm.apply();
- }
- store.forceBlockingFlush();
-
- // resurrect one column
- rm = new RowMutation(TABLE1, key);
- rm.add(new QueryPath(cfName, null, String.valueOf(5).getBytes()), new byte[0], 2);
- rm.apply();
- store.forceBlockingFlush();
-
- // verify that non-major compaction does no GC to ensure correctness (see CASSANDRA-604)
- Collection<SSTableReader> sstablesIncomplete = store.getSSTables();
- rm = new RowMutation(TABLE1, key + "x");
- rm.add(new QueryPath(cfName, null, "0".getBytes()), new byte[0], 0);
- rm.apply();
- store.forceBlockingFlush();
- CompactionManager.instance.doCompaction(store, sstablesIncomplete, CompactionManager.getDefaultGCBefore());
- ColumnFamily cf = table.getColumnFamilyStore(cfName).getColumnFamily(new IdentityQueryFilter(key, new QueryPath(cfName)));
- assert cf.getColumnCount() == 10;
-
- // major compact and test that all columns but the resurrected one is completely gone
- CompactionManager.instance.submitMajor(store, 0, Integer.MAX_VALUE).get();
- cf = table.getColumnFamilyStore(cfName).getColumnFamily(new IdentityQueryFilter(key, new QueryPath(cfName)));
- assert cf.getColumnCount() == 1;
- assert cf.getColumn(String.valueOf(5).getBytes()) != null;
- }
-
- @Test
- public void testCompactionPurgeOneFile() throws IOException, ExecutionException, InterruptedException
- {
- CompactionManager.instance.disableAutoCompaction();
-
- Table table = Table.open(TABLE1);
- String cfName = "Standard2";
- ColumnFamilyStore store = table.getColumnFamilyStore(cfName);
-
- String key = "key1";
- RowMutation rm;
-
- // inserts
- rm = new RowMutation(TABLE1, key);
- for (int i = 0; i < 5; i++)
- {
- rm.add(new QueryPath(cfName, null, String.valueOf(i).getBytes()), new byte[0], 0);
- }
- rm.apply();
-
- // deletes
- for (int i = 0; i < 5; i++)
- {
- rm = new RowMutation(TABLE1, key);
- rm.delete(new QueryPath(cfName, null, String.valueOf(i).getBytes()), 1);
- rm.apply();
- }
- store.forceBlockingFlush();
-
- assert store.getSSTables().size() == 1 : store.getSSTables(); // inserts & deletes were in the same memtable -> only deletes in sstable
-
- // compact and test that the row is completely gone
- CompactionManager.instance.submitMajor(store, 0, Integer.MAX_VALUE).get();
- assert store.getSSTables().isEmpty();
- ColumnFamily cf = table.getColumnFamilyStore(cfName).getColumnFamily(new IdentityQueryFilter(key, new QueryPath(cfName)));
- assert cf == null : cf;
- }
-
- @Test
public void testCompactionReadonly() throws IOException, ExecutionException, InterruptedException
{
CompactionManager.instance.disableAutoCompaction();