Merge branch 'cassandra-3.0' into trunk

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

Branch: refs/heads/trunk
Commit: 11de522b5c2d98baa7d73ecace9935097ae8ee10
Parents: 5c2a4ef fdd2cd0
Author: Marcus Eriksson <marc...@apache.org>
Authored: Thu Feb 11 08:50:42 2016 +0100
Committer: Marcus Eriksson <marc...@apache.org>
Committed: Thu Feb 11 08:50:42 2016 +0100

----------------------------------------------------------------------
 .../LeveledCompactionStrategyTest.java          | 31 ++++++++++++++++----
 1 file changed, 25 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/11de522b/test/unit/org/apache/cassandra/db/compaction/LeveledCompactionStrategyTest.java
----------------------------------------------------------------------
diff --cc 
test/unit/org/apache/cassandra/db/compaction/LeveledCompactionStrategyTest.java
index 1676896,77d2d12..6ed57ba
--- 
a/test/unit/org/apache/cassandra/db/compaction/LeveledCompactionStrategyTest.java
+++ 
b/test/unit/org/apache/cassandra/db/compaction/LeveledCompactionStrategyTest.java
@@@ -198,13 -196,29 +198,32 @@@ public class LeveledCompactionStrategyT
       */
      private void waitForLeveling(ColumnFamilyStore cfs) throws 
InterruptedException
      {
-         CompactionStrategyManager strategy = 
cfs.getCompactionStrategyManager();
-         // L0 is the lowest priority, so when that's done, we know everything 
is done
-         while (strategy.getSSTableCountPerLevel()[0] > 1)
+         CompactionStrategyManager strategyManager = 
cfs.getCompactionStrategyManager();
+         while (true)
+         {
+             // since we run several compaction strategies we wait until L0 in 
all strategies is empty and
+             // atleast one L1+ is non-empty. In these tests we always run a 
single data directory with only unrepaired data
+             // so it should be good enough
+             boolean allL0Empty = true;
+             boolean anyL1NonEmpty = false;
 -            for (AbstractCompactionStrategy strategy : 
strategyManager.getStrategies())
++            for (List<AbstractCompactionStrategy> strategies : 
strategyManager.getStrategies())
+             {
 -                if (!(strategy instanceof LeveledCompactionStrategy))
 -                    return;
 -                // note that we check > 1 here, if there is too little data 
in L0, we don't compact it up to L1
 -                if (((LeveledCompactionStrategy)strategy).getLevelSize(0) > 1)
 -                    allL0Empty = false;
 -                for (int i = 1; i < 5; i++)
 -                    if (((LeveledCompactionStrategy)strategy).getLevelSize(i) 
> 0)
 -                        anyL1NonEmpty = true;
++                for (AbstractCompactionStrategy strategy : strategies)
++                {
++                    if (!(strategy instanceof LeveledCompactionStrategy))
++                        return;
++                    // note that we check > 1 here, if there is too little 
data in L0, we don't compact it up to L1
++                    if (((LeveledCompactionStrategy)strategy).getLevelSize(0) 
> 1)
++                        allL0Empty = false;
++                    for (int i = 1; i < 5; i++)
++                        if 
(((LeveledCompactionStrategy)strategy).getLevelSize(i) > 0)
++                            anyL1NonEmpty = true;
++                }
+             }
+             if (allL0Empty && anyL1NonEmpty)
+                 return;
              Thread.sleep(100);
- 
-         // in AbstractCompationStrategy.replaceSSTables() first we remove and 
then we add sstables so wait a little bit longer
-         Thread.sleep(10);
+         }
      }
  
      @Test

Reply via email to