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 2021/09/09 19:11:08 UTC

[cassandra] branch cassandra-4.0 updated: Remove all the state pollution between tests in SSTableReaderTest

This is an automated email from the ASF dual-hosted git repository.

maedhroz pushed a commit to branch cassandra-4.0
in repository https://gitbox.apache.org/repos/asf/cassandra.git


The following commit(s) were added to refs/heads/cassandra-4.0 by this push:
     new bc052fa  Remove all the state pollution between tests in SSTableReaderTest
bc052fa is described below

commit bc052fa68f525155246de498cc86bb192f2d479a
Author: Caleb Rackliffe <ca...@gmail.com>
AuthorDate: Thu Sep 9 11:55:52 2021 -0500

    Remove all the state pollution between tests in SSTableReaderTest
    
    patch by Caleb Rackliffe; reviewed by Marcus Eriksson for CASSANDRA-16888
---
 CHANGES.txt                                        |  1 +
 .../cassandra/io/sstable/SSTableReaderTest.java    | 50 +++++++++++-----------
 2 files changed, 27 insertions(+), 24 deletions(-)

diff --git a/CHANGES.txt b/CHANGES.txt
index 0ff0ffe..1a487c4 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 4.0.2
+ * Remove all the state pollution between tests in SSTableReaderTest (CASSANDRA-16888)
  * Delay auth setup until after gossip has settled to avoid unavailables on startup (CASSANDRA-16783)
  * Fix clustering order logic in CREATE MATERIALIZED VIEW (CASSANDRA-16898)
  * org.apache.cassandra.db.rows.ArrayCell#unsharedHeapSizeExcludingData includes data twice (CASSANDRA-16900)
diff --git a/test/unit/org/apache/cassandra/io/sstable/SSTableReaderTest.java b/test/unit/org/apache/cassandra/io/sstable/SSTableReaderTest.java
index c905732..f1fc4cb 100644
--- a/test/unit/org/apache/cassandra/io/sstable/SSTableReaderTest.java
+++ b/test/unit/org/apache/cassandra/io/sstable/SSTableReaderTest.java
@@ -30,9 +30,7 @@ import org.junit.BeforeClass;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
-import org.junit.runner.RunWith;
 
-import org.apache.cassandra.OrderedJUnit4ClassRunner;
 import org.apache.cassandra.SchemaLoader;
 import org.apache.cassandra.Util;
 import org.apache.cassandra.cql3.Operator;
@@ -66,7 +64,6 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
-@RunWith(OrderedJUnit4ClassRunner.class)
 public class SSTableReaderTest
 {
     public static final String KEYSPACE1 = "SSTableReaderTest";
@@ -102,6 +99,9 @@ public class SSTableReaderTest
                                                 .minIndexInterval(4)
                                                 .maxIndexInterval(4)
                                                 .bloomFilterFpChance(0.99));
+        
+        // All tests in this class assume auto-compaction is disabled.
+        CompactionManager.instance.disableAutoCompaction();
     }
 
     @Test
@@ -109,10 +109,10 @@ public class SSTableReaderTest
     {
         Keyspace keyspace = Keyspace.open(KEYSPACE1);
         ColumnFamilyStore store = keyspace.getColumnFamilyStore(CF_STANDARD2);
+        store.discardSSTables(System.currentTimeMillis());
         partitioner = store.getPartitioner();
 
         // insert data and compact to a single sstable
-        CompactionManager.instance.disableAutoCompaction();
         for (int j = 0; j < 10; j++)
         {
             new RowUpdateBuilder(store.metadata(), j, String.valueOf(j))
@@ -124,7 +124,7 @@ public class SSTableReaderTest
         store.forceBlockingFlush();
         CompactionManager.instance.performMaximal(store, false);
 
-        List<Range<Token>> ranges = new ArrayList<Range<Token>>();
+        List<Range<Token>> ranges = new ArrayList<>();
         // 1 key
         ranges.add(new Range<>(t(0), t(1)));
         // 2 keys
@@ -155,10 +155,10 @@ public class SSTableReaderTest
         {
             Keyspace keyspace = Keyspace.open(KEYSPACE1);
             ColumnFamilyStore store = keyspace.getColumnFamilyStore(CF_STANDARD);
+            store.discardSSTables(System.currentTimeMillis());
             partitioner = store.getPartitioner();
 
             // insert a bunch of data and compact to a single sstable
-            CompactionManager.instance.disableAutoCompaction();
             for (int j = 0; j < 100; j += 2)
             {
                 new RowUpdateBuilder(store.metadata(), j, String.valueOf(j))
@@ -199,6 +199,7 @@ public class SSTableReaderTest
 
         Keyspace keyspace = Keyspace.open(KEYSPACE1);
         ColumnFamilyStore store = keyspace.getColumnFamilyStore(CF_STANDARD);
+        store.discardSSTables(System.currentTimeMillis());
         partitioner = store.getPartitioner();
 
         for (int j = 0; j < 100; j += 2)
@@ -227,6 +228,7 @@ public class SSTableReaderTest
         // try to make sure CASSANDRA-8239 never happens again
         Keyspace keyspace = Keyspace.open(KEYSPACE1);
         ColumnFamilyStore store = keyspace.getColumnFamilyStore(CF_STANDARD);
+        store.discardSSTables(System.currentTimeMillis());
         partitioner = store.getPartitioner();
 
         for (int j = 0; j < 10; j++)
@@ -256,11 +258,11 @@ public class SSTableReaderTest
     {
         Keyspace keyspace = Keyspace.open(KEYSPACE1);
         ColumnFamilyStore store = keyspace.getColumnFamilyStore(CF_STANDARD2);
+        store.discardSSTables(System.currentTimeMillis());
         partitioner = store.getPartitioner();
         CacheService.instance.keyCache.setCapacity(100);
 
         // insert data and compact to a single sstable
-        CompactionManager.instance.disableAutoCompaction();
         for (int j = 0; j < 10; j++)
         {
 
@@ -295,6 +297,7 @@ public class SSTableReaderTest
         // Create secondary index and flush to disk
         Keyspace keyspace = Keyspace.open(KEYSPACE1);
         ColumnFamilyStore store = keyspace.getColumnFamilyStore(CF_INDEXED);
+        store.discardSSTables(System.currentTimeMillis());
         partitioner = store.getPartitioner();
 
         new RowUpdateBuilder(store.metadata(), System.currentTimeMillis(), "k1")
@@ -314,11 +317,11 @@ public class SSTableReaderTest
     {
         Keyspace keyspace = Keyspace.open(KEYSPACE1);
         ColumnFamilyStore store = keyspace.getColumnFamilyStore(CF_STANDARD2);
+        store.discardSSTables(System.currentTimeMillis());
         partitioner = store.getPartitioner();
         CacheService.instance.keyCache.setCapacity(1000);
 
         // insert data and compact to a single sstable
-        CompactionManager.instance.disableAutoCompaction();
         for (int j = 0; j < 10; j++)
         {
             new RowUpdateBuilder(store.metadata(), j, String.valueOf(j))
@@ -354,7 +357,6 @@ public class SSTableReaderTest
         CacheService.instance.keyCache.setCapacity(1000);
 
         // insert data and compact to a single sstable
-        CompactionManager.instance.disableAutoCompaction();
         for (int j = 0; j < 10; j++)
         {
             new RowUpdateBuilder(store.metadata(), j, String.valueOf(j))
@@ -410,7 +412,6 @@ public class SSTableReaderTest
         Keyspace keyspace = Keyspace.open(ks);
         ColumnFamilyStore store = keyspace.getColumnFamilyStore(cf);
         store.clearUnsafe();
-        store.disableAutoCompaction();
 
         DecoratedKey firstKey = null, lastKey = null;
         long timestamp = System.currentTimeMillis();
@@ -522,10 +523,11 @@ public class SSTableReaderTest
     }
 
     @Test
-    public void testLoadingSummaryUsesCorrectPartitioner() throws Exception
+    public void testLoadingSummaryUsesCorrectPartitioner()
     {
         Keyspace keyspace = Keyspace.open(KEYSPACE1);
         ColumnFamilyStore store = keyspace.getColumnFamilyStore(CF_INDEXED);
+        store.discardSSTables(System.currentTimeMillis());
 
         new RowUpdateBuilder(store.metadata(), System.currentTimeMillis(), "k1")
         .clustering("0")
@@ -554,6 +556,7 @@ public class SSTableReaderTest
     {
         Keyspace keyspace = Keyspace.open(KEYSPACE1);
         ColumnFamilyStore store = keyspace.getColumnFamilyStore(CF_STANDARD);
+        store.discardSSTables(System.currentTimeMillis());
         partitioner = store.getPartitioner();
 
         new RowUpdateBuilder(store.metadata(), 0, "k1")
@@ -576,16 +579,16 @@ public class SSTableReaderTest
     }
 
     @Test
-    public void testGetPositionsForRangesFromTableOpenedForBulkLoading() throws IOException
+    public void testGetPositionsForRangesFromTableOpenedForBulkLoading()
     {
         Keyspace keyspace = Keyspace.open(KEYSPACE1);
         ColumnFamilyStore store = keyspace.getColumnFamilyStore(CF_STANDARD2);
+        store.discardSSTables(System.currentTimeMillis());
         partitioner = store.getPartitioner();
 
         // insert data and compact to a single sstable. The
         // number of keys inserted is greater than index_interval
         // to ensure multiple segments in the index file
-        CompactionManager.instance.disableAutoCompaction();
         for (int j = 0; j < 130; j++)
         {
 
@@ -622,8 +625,8 @@ public class SSTableReaderTest
     public void testIndexSummaryReplacement() throws IOException, ExecutionException, InterruptedException
     {
         Keyspace keyspace = Keyspace.open(KEYSPACE1);
-        final ColumnFamilyStore store = keyspace.getColumnFamilyStore(CF_STANDARD_LOW_INDEX_INTERVAL); // index interval of 8, no key caching
-        CompactionManager.instance.disableAutoCompaction();
+        ColumnFamilyStore store = keyspace.getColumnFamilyStore(CF_STANDARD_LOW_INDEX_INTERVAL); // index interval of 8, no key caching
+        store.discardSSTables(System.currentTimeMillis());
 
         final int NUM_PARTITIONS = 512;
         for (int j = 0; j < NUM_PARTITIONS; j++)
@@ -643,7 +646,7 @@ public class SSTableReaderTest
         final SSTableReader sstable = sstables.iterator().next();
 
         ThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(5);
-        List<Future> futures = new ArrayList<>(NUM_PARTITIONS * 2);
+        List<Future<?>> futures = new ArrayList<>(NUM_PARTITIONS * 2);
         for (int i = 0; i < NUM_PARTITIONS; i++)
         {
             final ByteBuffer key = ByteBufferUtil.bytes(String.format("%3d", i));
@@ -670,13 +673,13 @@ public class SSTableReaderTest
         }
 
         SSTableReader replacement;
-        try (LifecycleTransaction txn = store.getTracker().tryModify(Arrays.asList(sstable), OperationType.UNKNOWN))
+        try (LifecycleTransaction txn = store.getTracker().tryModify(Collections.singletonList(sstable), OperationType.UNKNOWN))
         {
             replacement = sstable.cloneWithNewSummarySamplingLevel(store, 1);
             txn.update(replacement, true);
             txn.finish();
         }
-        for (Future future : futures)
+        for (Future<?> future : futures)
             future.get();
 
         assertEquals(sstable.estimatedKeys(), replacement.estimatedKeys(), 1);
@@ -701,8 +704,8 @@ public class SSTableReaderTest
     private void testIndexSummaryUpsampleAndReload0() throws Exception
     {
         Keyspace keyspace = Keyspace.open(KEYSPACE1);
-        final ColumnFamilyStore store = keyspace.getColumnFamilyStore(CF_STANDARD_LOW_INDEX_INTERVAL); // index interval of 8, no key caching
-        CompactionManager.instance.disableAutoCompaction();
+        ColumnFamilyStore store = keyspace.getColumnFamilyStore(CF_STANDARD_LOW_INDEX_INTERVAL); // index interval of 8, no key caching
+        store.discardSSTables(System.currentTimeMillis());
 
         final int NUM_PARTITIONS = 512;
         for (int j = 0; j < NUM_PARTITIONS; j++)
@@ -721,7 +724,7 @@ public class SSTableReaderTest
         assert sstables.size() == 1;
         final SSTableReader sstable = sstables.iterator().next();
 
-        try (LifecycleTransaction txn = store.getTracker().tryModify(Arrays.asList(sstable), OperationType.UNKNOWN))
+        try (LifecycleTransaction txn = store.getTracker().tryModify(Collections.singletonList(sstable), OperationType.UNKNOWN))
         {
             SSTableReader replacement = sstable.cloneWithNewSummarySamplingLevel(store, sstable.getIndexSummarySamplingLevel() + 1);
             txn.update(replacement, true);
@@ -755,7 +758,7 @@ public class SSTableReaderTest
 
     private List<Range<Token>> makeRanges(Token left, Token right)
     {
-        return Arrays.asList(new Range<>(left, right));
+        return Collections.singletonList(new Range<>(left, right));
     }
 
     private DecoratedKey k(int i)
@@ -817,7 +820,6 @@ public class SSTableReaderTest
 
     private SSTableReader getNewSSTable(ColumnFamilyStore cfs)
     {
-
         Set<SSTableReader> before = cfs.getLiveSSTables();
         for (int j = 0; j < 100; j += 2)
         {
@@ -836,7 +838,7 @@ public class SSTableReaderTest
     {
         Keyspace keyspace = Keyspace.open(KEYSPACE1);
         ColumnFamilyStore cfs = keyspace.getColumnFamilyStore(CF_STANDARD);
-        cfs.discardSSTables(System.currentTimeMillis()); //Cleaning all existing SSTables.
+        cfs.discardSSTables(System.currentTimeMillis());
         getNewSSTable(cfs);
 
         try (ColumnFamilyStore.RefViewFragment viewFragment1 = cfs.selectAndReference(View.selectFunction(SSTableSet.CANONICAL)))

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org