You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by ma...@apache.org on 2015/05/12 08:23:52 UTC

[1/2] cassandra git commit: Fix LongLeveledCompactionStrategyTest

Repository: cassandra
Updated Branches:
  refs/heads/trunk 894b7b9a7 -> cf6f7c163


Fix LongLeveledCompactionStrategyTest

Patch by Stefania; reviewed by marcuse for CASSANDRA-9288


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

Branch: refs/heads/trunk
Commit: ed0026fed868dff61601a073b649ed8b9d5e6311
Parents: ac70e37
Author: Stefania Alborghetti <st...@datastax.com>
Authored: Tue May 12 10:39:48 2015 +0800
Committer: Marcus Eriksson <ma...@apache.org>
Committed: Tue May 12 08:16:02 2015 +0200

----------------------------------------------------------------------
 .../LongLeveledCompactionStrategyTest.java      | 38 ++++++++++++--------
 1 file changed, 23 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/ed0026fe/test/long/org/apache/cassandra/db/compaction/LongLeveledCompactionStrategyTest.java
----------------------------------------------------------------------
diff --git a/test/long/org/apache/cassandra/db/compaction/LongLeveledCompactionStrategyTest.java b/test/long/org/apache/cassandra/db/compaction/LongLeveledCompactionStrategyTest.java
index b071001..0eb769f 100644
--- a/test/long/org/apache/cassandra/db/compaction/LongLeveledCompactionStrategyTest.java
+++ b/test/long/org/apache/cassandra/db/compaction/LongLeveledCompactionStrategyTest.java
@@ -31,6 +31,8 @@ import org.apache.cassandra.db.*;
 import org.apache.cassandra.io.sstable.SSTableReader;
 import org.apache.cassandra.utils.FBUtilities;
 
+import static org.junit.Assert.assertTrue;
+
 public class LongLeveledCompactionStrategyTest extends SchemaLoader
 {
     @Test
@@ -42,7 +44,8 @@ public class LongLeveledCompactionStrategyTest extends SchemaLoader
         ColumnFamilyStore store = keyspace.getColumnFamilyStore(cfname);
         store.disableAutoCompaction();
 
-        LeveledCompactionStrategy lcs = (LeveledCompactionStrategy)store.getCompactionStrategy();
+        WrappingCompactionStrategy strategy = ((WrappingCompactionStrategy) store.getCompactionStrategy());
+        LeveledCompactionStrategy lcs = (LeveledCompactionStrategy) strategy.getWrappedStrategies().get(1);
 
         ByteBuffer value = ByteBuffer.wrap(new byte[100 * 1024]); // 100 KB value, make it easy to have multiple files
 
@@ -63,26 +66,30 @@ public class LongLeveledCompactionStrategyTest extends SchemaLoader
             store.forceBlockingFlush();
         }
 
+
         // Execute LCS in parallel
         ExecutorService executor = new ThreadPoolExecutor(4, 4,
                                                           Long.MAX_VALUE, TimeUnit.SECONDS,
                                                           new LinkedBlockingDeque<Runnable>());
+
         List<Runnable> tasks = new ArrayList<Runnable>();
         while (true)
         {
             while (true)
             {
-                final AbstractCompactionTask t = lcs.getMaximalTask(Integer.MIN_VALUE).iterator().next();
-                if (t == null)
+                final AbstractCompactionTask nextTask = lcs.getNextBackgroundTask(Integer.MIN_VALUE);
+                if (nextTask == null)
                     break;
+
                 tasks.add(new Runnable()
                 {
                     public void run()
                     {
-                        t.execute(null);
+                        nextTask.execute(null);
                     }
                 });
             }
+
             if (tasks.isEmpty())
                 break;
 
@@ -94,27 +101,28 @@ public class LongLeveledCompactionStrategyTest extends SchemaLoader
             tasks.clear();
         }
 
+
         // Assert all SSTables are lined up correctly.
         LeveledManifest manifest = lcs.manifest;
         int levels = manifest.getLevelCount();
         for (int level = 0; level < levels; level++)
         {
             List<SSTableReader> sstables = manifest.getLevel(level);
+
             // score check
             assert (double) SSTableReader.getTotalBytes(sstables) / manifest.maxBytesForLevel(level) < 1.00;
-            // overlap check for levels greater than 0
-            if (level > 0)
+
+            for (SSTableReader sstable : sstables)
             {
-               for (SSTableReader sstable : sstables)
-               {
-                   Set<SSTableReader> overlaps = LeveledManifest.overlapping(sstable, sstables);
-                   assert overlaps.size() == 1 && overlaps.contains(sstable);
-               }
+                // level check
+                assert level == sstable.getSSTableLevel();
+
+                if (level > 0)
+                {// overlap check for levels greater than 0
+                    Set<SSTableReader> overlaps = LeveledManifest.overlapping(sstable, sstables);
+                    assert overlaps.size() == 1 && overlaps.contains(sstable);
+                }
             }
         }
-        for (SSTableReader sstable : store.getSSTables())
-        {
-            assert sstable.getSSTableLevel() == sstable.getSSTableLevel();
-        }
     }
 }


[2/2] cassandra git commit: Merge branch 'cassandra-2.1' into trunk

Posted by ma...@apache.org.
Merge branch 'cassandra-2.1' into trunk

Conflicts:
	test/long/org/apache/cassandra/db/compaction/LongLeveledCompactionStrategyTest.java


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

Branch: refs/heads/trunk
Commit: cf6f7c16361f6ef87345054b6706477c920deb0c
Parents: 894b7b9 ed0026f
Author: Marcus Eriksson <ma...@apache.org>
Authored: Tue May 12 08:22:44 2015 +0200
Committer: Marcus Eriksson <ma...@apache.org>
Committed: Tue May 12 08:22:44 2015 +0200

----------------------------------------------------------------------
 .../LongLeveledCompactionStrategyTest.java      | 30 +++++++++++---------
 1 file changed, 16 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/cf6f7c16/test/long/org/apache/cassandra/db/compaction/LongLeveledCompactionStrategyTest.java
----------------------------------------------------------------------
diff --cc test/long/org/apache/cassandra/db/compaction/LongLeveledCompactionStrategyTest.java
index 0e3f1e9,0eb769f..e38eb3c
--- a/test/long/org/apache/cassandra/db/compaction/LongLeveledCompactionStrategyTest.java
+++ b/test/long/org/apache/cassandra/db/compaction/LongLeveledCompactionStrategyTest.java
@@@ -27,31 -27,14 +27,33 @@@ import org.junit.Test
  
  import org.apache.cassandra.SchemaLoader;
  import org.apache.cassandra.Util;
 +import org.apache.cassandra.config.KSMetaData;
  import org.apache.cassandra.db.*;
 -import org.apache.cassandra.io.sstable.SSTableReader;
 +import org.apache.cassandra.exceptions.ConfigurationException;
 +import org.apache.cassandra.locator.SimpleStrategy;
  import org.apache.cassandra.utils.FBUtilities;
  
+ import static org.junit.Assert.assertTrue;
+ 
 -public class LongLeveledCompactionStrategyTest extends SchemaLoader
 +public class LongLeveledCompactionStrategyTest
  {
 +    public static final String KEYSPACE1 = "LongLeveledCompactionStrategyTest";
 +    public static final String CF_STANDARDLVL = "StandardLeveled";
 +
 +    @BeforeClass
 +    public static void defineSchema() throws ConfigurationException
 +    {
 +        Map<String, String> leveledOptions = new HashMap<>();
 +        leveledOptions.put("sstable_size_in_mb", "1");
 +        SchemaLoader.prepareServer();
 +        SchemaLoader.createKeyspace(KEYSPACE1,
 +                                    SimpleStrategy.class,
 +                                    KSMetaData.optsWithRF(1),
 +                                    SchemaLoader.standardCFMD(KEYSPACE1, CF_STANDARDLVL)
 +                                                .compactionStrategyClass(LeveledCompactionStrategy.class)
 +                                                .compactionStrategyOptions(leveledOptions));
 +    }
 +
      @Test
      public void testParallelLeveledCompaction() throws Exception
      {
@@@ -91,9 -77,10 +94,9 @@@
          {
              while (true)
              {
-                 final AbstractCompactionTask t = lcs.getMaximalTask(Integer.MIN_VALUE, false).iterator().next();
-                 if (t == null)
+                 final AbstractCompactionTask nextTask = lcs.getNextBackgroundTask(Integer.MIN_VALUE);
+                 if (nextTask == null)
                      break;
 -
                  tasks.add(new Runnable()
                  {
                      public void run()
@@@ -119,21 -108,21 +122,20 @@@
          for (int level = 0; level < levels; level++)
          {
              List<SSTableReader> sstables = manifest.getLevel(level);
 -
              // score check
 -            assert (double) SSTableReader.getTotalBytes(sstables) / manifest.maxBytesForLevel(level) < 1.00;
 -
 +            assert (double) SSTableReader.getTotalBytes(sstables) / LeveledManifest.maxBytesForLevel(level, 1 * 1024 * 1024) < 1.00;
 +            // overlap check for levels greater than 0
-             if (level > 0)
+             for (SSTableReader sstable : sstables)
              {
-                for (SSTableReader sstable : sstables)
-                {
-                    Set<SSTableReader> overlaps = LeveledManifest.overlapping(sstable, sstables);
-                    assert overlaps.size() == 1 && overlaps.contains(sstable);
-                }
+                 // level check
+                 assert level == sstable.getSSTableLevel();
+ 
+                 if (level > 0)
+                 {// overlap check for levels greater than 0
+                     Set<SSTableReader> overlaps = LeveledManifest.overlapping(sstable, sstables);
+                     assert overlaps.size() == 1 && overlaps.contains(sstable);
+                 }
              }
          }
-         for (SSTableReader sstable : store.getSSTables())
-         {
-             assert sstable.getSSTableLevel() == sstable.getSSTableLevel();
-         }
      }
  }