Updated Branches:
  refs/heads/cassandra-1.1 0d2410e78 -> f481a3916
  refs/heads/cassandra-1.2 94f0b8568 -> 1b41d6fea
  refs/heads/trunk 958ba2ba0 -> eebf3fb15


Merge branch 'cassandra-1.2' into trunk

Conflicts:
        test/unit/org/apache/cassandra/db/compaction/CompactionsTest.java


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/eebf3fb1
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/eebf3fb1
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/eebf3fb1

Branch: refs/heads/trunk
Commit: eebf3fb1531476e1374affa025c45eaa7c970b8c
Parents: 958ba2b 1b41d6f
Author: Yuki Morishita <yu...@apache.org>
Authored: Thu Jan 10 11:56:49 2013 -0600
Committer: Yuki Morishita <yu...@apache.org>
Committed: Thu Jan 10 11:56:49 2013 -0600

----------------------------------------------------------------------
 CHANGES.txt                                        |    1 +
 .../cassandra/db/compaction/CompactionManager.java |   19 ++++--
 .../cassandra/db/compaction/CompactionsTest.java   |   46 +++++++++++++-
 3 files changed, 55 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/eebf3fb1/CHANGES.txt
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/eebf3fb1/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/eebf3fb1/test/unit/org/apache/cassandra/db/compaction/CompactionsTest.java
----------------------------------------------------------------------
diff --cc test/unit/org/apache/cassandra/db/compaction/CompactionsTest.java
index efef7bd,c918561..888d7bd
--- a/test/unit/org/apache/cassandra/db/compaction/CompactionsTest.java
+++ b/test/unit/org/apache/cassandra/db/compaction/CompactionsTest.java
@@@ -36,7 -33,8 +33,8 @@@ import org.apache.cassandra.db.*
  import org.apache.cassandra.db.columniterator.IdentityQueryFilter;
  import org.apache.cassandra.db.columniterator.OnDiskAtomIterator;
  import org.apache.cassandra.db.filter.QueryFilter;
 -import org.apache.cassandra.db.filter.QueryPath;
 +import org.apache.cassandra.db.marshal.CompositeType;
+ import org.apache.cassandra.io.sstable.Component;
  import org.apache.cassandra.io.sstable.SSTableReader;
  import org.apache.cassandra.io.sstable.SSTableScanner;
  import org.apache.cassandra.io.util.FileUtils;
@@@ -237,6 -235,46 +235,46 @@@ public class CompactionsTest extends Sc
          testDontPurgeAccidentaly("test2", "SuperDirectGC", true);
      }
  
+     @Test
+     public void testUserDefinedCompaction() throws Exception
+     {
+         Table table = Table.open(TABLE1);
+         final String cfname = "Standard3"; // use clean(no sstable) CF
+         ColumnFamilyStore cfs = table.getColumnFamilyStore(cfname);
+ 
+         // disable compaction while flushing
+         cfs.disableAutoCompaction();
+ 
+         final int ROWS_PER_SSTABLE = 10;
+         for (int i = 0; i < ROWS_PER_SSTABLE; i++) {
+             DecoratedKey key = Util.dk(String.valueOf(i));
+             RowMutation rm = new RowMutation(TABLE1, key.key);
 -            rm.add(new QueryPath(cfname, null, ByteBufferUtil.bytes("col")),
++            rm.add(cfname, ByteBufferUtil.bytes("col"),
+                    ByteBufferUtil.EMPTY_BYTE_BUFFER,
+                    System.currentTimeMillis());
+             rm.apply();
+         }
+         cfs.forceBlockingFlush();
+         Collection<SSTableReader> sstables = cfs.getSSTables();
+ 
+         assert sstables.size() == 1;
+         SSTableReader sstable = sstables.iterator().next();
+ 
+         int prevGeneration = sstable.descriptor.generation;
+         String file = new 
File(sstable.descriptor.filenameFor(Component.DATA)).getName();
+         // submit user defined compaction on flushed sstable
+         CompactionManager.instance.forceUserDefinedCompaction(TABLE1, file);
+         // wait until user defined compaction finishes
+         do
+         {
+             Thread.sleep(100);
+         } while (CompactionManager.instance.getPendingTasks() > 0 || 
CompactionManager.instance.getActiveCompactions() > 0);
+         // CF should have only one sstable with generation number advanced
+         sstables = cfs.getSSTables();
+         assert sstables.size() == 1;
+         assert sstables.iterator().next().descriptor.generation == 
prevGeneration + 1;
+     }
+ 
      private void testDontPurgeAccidentaly(String k, String cfname, boolean 
forceDeserialize) throws IOException, ExecutionException, InterruptedException
      {
          // This test catches the regression of CASSANDRA-2786

Reply via email to