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();
- }
}
}