You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by be...@apache.org on 2015/06/01 17:44:44 UTC
[2/5] cassandra git commit: Fixed TrackerTest on Linux, CASSANDRA-9514
Fixed TrackerTest on Linux, CASSANDRA-9514
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/8b80b556
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/8b80b556
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/8b80b556
Branch: refs/heads/trunk
Commit: 8b80b5561112578133a269c37c44ca6c1d1da16b
Parents: c34a329
Author: Stefania Alborghetti <st...@datastax.com>
Authored: Mon Jun 1 08:49:46 2015 +0200
Committer: Stefania Alborghetti <st...@datastax.com>
Committed: Mon Jun 1 08:49:46 2015 +0200
----------------------------------------------------------------------
.../io/sstable/format/SSTableReader.java | 4 +-
test/unit/org/apache/cassandra/MockSchema.java | 16 ++++
.../cassandra/db/lifecycle/TrackerTest.java | 94 ++++++++++++--------
3 files changed, 73 insertions(+), 41 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/8b80b556/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java b/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java
index 54dff4e..ba634b6 100644
--- a/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java
+++ b/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java
@@ -369,7 +369,7 @@ public abstract class SSTableReader extends SSTable implements SelfRefCounted<SS
public static SSTableReader openForBatch(Descriptor descriptor, Set<Component> components, CFMetaData metadata, IPartitioner partitioner) throws IOException
{
// Minimum components without which we can't do anything
- assert components.contains(Component.DATA) : "Data component is missing for sstable" + descriptor;
+ assert components.contains(Component.DATA) : "Data component is missing for sstable " + descriptor;
assert components.contains(Component.PRIMARY_INDEX) : "Primary index component is missing for sstable " + descriptor;
Map<MetadataType, MetadataComponent> sstableMetadata = descriptor.getMetadataSerializer().deserialize(descriptor,
@@ -415,7 +415,7 @@ public abstract class SSTableReader extends SSTable implements SelfRefCounted<SS
boolean validate) throws IOException
{
// Minimum components without which we can't do anything
- assert components.contains(Component.DATA) : "Data component is missing for sstable" + descriptor;
+ assert components.contains(Component.DATA) : "Data component is missing for sstable " + descriptor;
assert components.contains(Component.PRIMARY_INDEX) : "Primary index component is missing for sstable " + descriptor;
Map<MetadataType, MetadataComponent> sstableMetadata = descriptor.getMetadataSerializer().deserialize(descriptor,
http://git-wip-us.apache.org/repos/asf/cassandra/blob/8b80b556/test/unit/org/apache/cassandra/MockSchema.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/MockSchema.java b/test/unit/org/apache/cassandra/MockSchema.java
index bc236e1..86593c2 100644
--- a/test/unit/org/apache/cassandra/MockSchema.java
+++ b/test/unit/org/apache/cassandra/MockSchema.java
@@ -30,6 +30,7 @@ import com.google.common.collect.ImmutableSet;
import org.apache.cassandra.cache.CachingOptions;
import org.apache.cassandra.config.CFMetaData;
+import org.apache.cassandra.config.DatabaseDescriptor;
import org.apache.cassandra.config.KSMetaData;
import org.apache.cassandra.db.*;
import org.apache.cassandra.db.composites.SimpleSparseCellNameType;
@@ -44,6 +45,7 @@ import org.apache.cassandra.io.sstable.metadata.MetadataType;
import org.apache.cassandra.io.sstable.metadata.StatsMetadata;
import org.apache.cassandra.io.util.BufferedSegmentedFile;
import org.apache.cassandra.io.util.ChannelProxy;
+import org.apache.cassandra.io.util.FileUtils;
import org.apache.cassandra.io.util.Memory;
import org.apache.cassandra.io.util.SegmentedFile;
import org.apache.cassandra.locator.SimpleStrategy;
@@ -164,4 +166,18 @@ public class MockSchema
throw new RuntimeException(e);
}
}
+
+ public static void cleanup()
+ {
+ // clean up data directory which are stored as data directory/keyspace/data files
+ for (String dirName : DatabaseDescriptor.getAllDataFileLocations())
+ {
+ File dir = new File(dirName);
+ if (!dir.exists())
+ throw new RuntimeException("No such directory: " + dir.getAbsolutePath());
+ String[] children = dir.list();
+ for (String child : children)
+ FileUtils.deleteRecursive(new File(dir, child));
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/8b80b556/test/unit/org/apache/cassandra/db/lifecycle/TrackerTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/db/lifecycle/TrackerTest.java b/test/unit/org/apache/cassandra/db/lifecycle/TrackerTest.java
index 1eef7b0..1859e70 100644
--- a/test/unit/org/apache/cassandra/db/lifecycle/TrackerTest.java
+++ b/test/unit/org/apache/cassandra/db/lifecycle/TrackerTest.java
@@ -30,6 +30,7 @@ import com.google.common.base.Function;
import com.google.common.base.Predicate;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
+import org.junit.BeforeClass;
import org.junit.Test;
import junit.framework.Assert;
@@ -70,10 +71,17 @@ public class TrackerTest
}
}
+ @BeforeClass
+ public static void setUp()
+ {
+ MockSchema.cleanup();
+ }
+
@Test
public void testTryModify()
{
- Tracker tracker = new Tracker(MockSchema.cfs, false);
+ ColumnFamilyStore cfs = MockSchema.newCFS();
+ Tracker tracker = new Tracker(cfs, false);
List<SSTableReader> readers = ImmutableList.of(MockSchema.sstable(0), MockSchema.sstable(1), MockSchema.sstable(2));
tracker.addInitialSSTables(copyOf(readers));
try (LifecycleTransaction txn = tracker.tryModify(readers.get(0), OperationType.COMPACTION);)
@@ -151,7 +159,8 @@ public class TrackerTest
{
boolean backups = DatabaseDescriptor.isIncrementalBackupsEnabled();
DatabaseDescriptor.setIncrementalBackupsEnabled(false);
- Tracker tracker = new Tracker(MockSchema.cfs, false);
+ ColumnFamilyStore cfs = MockSchema.newCFS();
+ Tracker tracker = new Tracker(cfs, false);
MockListener listener = new MockListener(false);
tracker.subscribe(listener);
List<SSTableReader> readers = ImmutableList.of(MockSchema.sstable(0, 17), MockSchema.sstable(1, 121), MockSchema.sstable(2, 9));
@@ -162,7 +171,7 @@ public class TrackerTest
for (SSTableReader reader : readers)
Assert.assertTrue(reader.isDeleteNotificationSetup());
- Assert.assertEquals(17 + 121 + 9, MockSchema.cfs.metric.liveDiskSpaceUsed.getCount());
+ Assert.assertEquals(17 + 121 + 9, cfs.metric.liveDiskSpaceUsed.getCount());
Assert.assertEquals(3, listener.senders.size());
Assert.assertEquals(tracker, listener.senders.get(0));
Assert.assertTrue(listener.received.get(0) instanceof SSTableAddedNotification);
@@ -186,51 +195,58 @@ public class TrackerTest
tracker.subscribe(listener);
final List<SSTableReader> readers = ImmutableList.of(MockSchema.sstable(0, 9, true), MockSchema.sstable(1, 15, true), MockSchema.sstable(2, 71, true));
tracker.addInitialSSTables(copyOf(readers));
- try (LifecycleTransaction txn = tracker.tryModify(readers.get(0), OperationType.COMPACTION);)
+
+ try
{
SSTableDeletingTask.pauseDeletions(true);
- if (invalidate)
- cfs.invalidate(false);
- else
- tracker.dropSSTables();
- Assert.assertEquals(95, cfs.metric.totalDiskSpaceUsed.getCount());
- Assert.assertEquals(9, cfs.metric.liveDiskSpaceUsed.getCount());
- Assert.assertEquals(1, tracker.getView().sstables.size());
- SSTableDeletingTask.pauseDeletions(false);
- }
- if (!invalidate)
- {
- Assert.assertEquals(1, tracker.getView().sstables.size());
- Assert.assertEquals(readers.get(0), Iterables.getFirst(tracker.getView().sstables, null));
- Assert.assertEquals(1, readers.get(0).selfRef().globalCount());
- Assert.assertFalse(readers.get(0).isMarkedCompacted());
- for (SSTableReader reader : readers.subList(1, 3))
+ try (LifecycleTransaction txn = tracker.tryModify(readers.get(0), OperationType.COMPACTION))
{
- Assert.assertEquals(0, reader.selfRef().globalCount());
- Assert.assertTrue(reader.isMarkedCompacted());
+ if (invalidate)
+ cfs.invalidate(false);
+ else
+ tracker.dropSSTables();
+ Assert.assertEquals(95, cfs.metric.totalDiskSpaceUsed.getCount());
+ Assert.assertEquals(9, cfs.metric.liveDiskSpaceUsed.getCount());
+ Assert.assertEquals(1, tracker.getView().sstables.size());
}
- Assert.assertNull(tracker.dropSSTables(new Predicate<SSTableReader>()
+ if (!invalidate)
{
- public boolean apply(SSTableReader reader)
+ Assert.assertEquals(1, tracker.getView().sstables.size());
+ Assert.assertEquals(readers.get(0), Iterables.getFirst(tracker.getView().sstables, null));
+ Assert.assertEquals(1, readers.get(0).selfRef().globalCount());
+ Assert.assertFalse(readers.get(0).isMarkedCompacted());
+ for (SSTableReader reader : readers.subList(1, 3))
{
- return reader != readers.get(0);
+ Assert.assertEquals(0, reader.selfRef().globalCount());
+ Assert.assertTrue(reader.isMarkedCompacted());
}
- }, OperationType.UNKNOWN, null));
-
- Assert.assertEquals(1, tracker.getView().sstables.size());
- Assert.assertEquals(1, listener.received.size());
- Assert.assertEquals(tracker, listener.senders.get(0));
- Assert.assertEquals(2, ((SSTableListChangedNotification) listener.received.get(0)).removed.size());
- Assert.assertEquals(0, ((SSTableListChangedNotification) listener.received.get(0)).added.size());
- Assert.assertEquals(9, cfs.metric.liveDiskSpaceUsed.getCount());
- readers.get(0).selfRef().release();
+ Assert.assertNull(tracker.dropSSTables(new Predicate<SSTableReader>() {
+ public boolean apply(SSTableReader reader)
+ {
+ return reader != readers.get(0);
+ }
+ },
+ OperationType.UNKNOWN,
+ null));
+ Assert.assertEquals(1, tracker.getView().sstables.size());
+ Assert.assertEquals(1, listener.received.size());
+ Assert.assertEquals(tracker, listener.senders.get(0));
+ Assert.assertEquals(2, ((SSTableListChangedNotification) listener.received.get(0)).removed.size());
+ Assert.assertEquals(0, ((SSTableListChangedNotification) listener.received.get(0)).added.size());
+ Assert.assertEquals(9, cfs.metric.liveDiskSpaceUsed.getCount());
+ readers.get(0).selfRef().release();
+ }
+ else
+ {
+ Assert.assertEquals(0, tracker.getView().sstables.size());
+ Assert.assertEquals(0, cfs.metric.liveDiskSpaceUsed.getCount());
+ for (SSTableReader reader : readers)
+ Assert.assertTrue(reader.isMarkedCompacted());
+ }
}
- else
+ finally
{
- Assert.assertEquals(0, tracker.getView().sstables.size());
- Assert.assertEquals(0, cfs.metric.liveDiskSpaceUsed.getCount());
- for (SSTableReader reader : readers)
- Assert.assertTrue(reader.isMarkedCompacted());
+ SSTableDeletingTask.pauseDeletions(false);
}
}