This is an automated email from the ASF dual-hosted git repository. maedhroz pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git
commit c712312b8fb0d73a3bbb42ee742fea3059dd4157 Author: Caleb Rackliffe <calebrackli...@gmail.com> AuthorDate: Thu Jun 1 14:43:20 2023 -0500 post-rebase fixes for the rebase on trunk at fad1f7457032544ab6a7b40c5d38ecb8b25899bb --- .../apache/cassandra/config/CassandraRelevantProperties.java | 7 ++++++- src/java/org/apache/cassandra/index/IndexStatusManager.java | 12 ++++-------- src/java/org/apache/cassandra/index/sai/QueryContext.java | 4 +++- .../cassandra/index/sai/disk/v1/SSTableIndexWriter.java | 7 +++++-- .../cassandra/index/sai/disk/v1/trie/TriePrefixSearcher.java | 4 ++-- src/java/org/apache/cassandra/io/tries/TrieNode.java | 2 +- src/java/org/apache/cassandra/io/tries/ValueIterator.java | 2 +- test/unit/org/apache/cassandra/index/sai/SAITester.java | 11 ++++++++--- .../org/apache/cassandra/index/sai/plan/OperationTest.java | 3 ++- .../cassandra/index/sai/virtual/SegmentsSystemViewTest.java | 4 +++- test/unit/org/apache/cassandra/io/tries/WalkerTest.java | 1 - test/unit/org/apache/cassandra/io/util/SizedIntsTest.java | 1 - .../cassandra/io/util/TailOverridingRebuffererTest.java | 4 +--- 13 files changed, 36 insertions(+), 26 deletions(-) diff --git a/src/java/org/apache/cassandra/config/CassandraRelevantProperties.java b/src/java/org/apache/cassandra/config/CassandraRelevantProperties.java index 7a0cfafc90..09c5535a2a 100644 --- a/src/java/org/apache/cassandra/config/CassandraRelevantProperties.java +++ b/src/java/org/apache/cassandra/config/CassandraRelevantProperties.java @@ -417,12 +417,15 @@ public enum CassandraRelevantProperties RING_DELAY("cassandra.ring_delay_ms"), // SAI specific properties + /** Controls the maximum number of index query intersections that will take part in a query */ SAI_INTERSECTION_CLAUSE_LIMIT("cassandra.sai.intersection.clause.limit", "2"), /** Latest version to be used for SAI index writing */ SAI_LATEST_VERSION("cassandra.sai.latest_version", "aa"), + SAI_MAX_FROZEN_TERM_SIZE("cassandra.sai.max_frozen_term_size_kb", "5"), + SAI_MAX_STRING_TERM_SIZE("cassandra.sai.max_string_term_size_kb", "1"), + SAI_TEST_DISABLE_TIMEOUT("cassandra.sai.test.disable.timeout", "false"), - /** Defines how often schema definitions are pulled from the other nodes */ SCHEMA_PULL_INTERVAL_MS("cassandra.schema_pull_interval_ms", "60000"), SCHEMA_UPDATE_HANDLER_FACTORY_CLASS("cassandra.schema.update_handler_factory.class"), SEARCH_CONCURRENCY_FACTOR("cassandra.search_concurrency_factor", "1"), @@ -487,6 +490,7 @@ public enum CassandraRelevantProperties TEST_DEBUG_REF_COUNT("cassandra.debugrefcount"), TEST_DRIVER_CONNECTION_TIMEOUT_MS("cassandra.test.driver.connection_timeout_ms", "5000"), TEST_DRIVER_READ_TIMEOUT_MS("cassandra.test.driver.read_timeout_ms", "12000"), + TEST_ENCRYPTION("cassandra.test.encryption", "false"), TEST_FAIL_MV_LOCKS_COUNT("cassandra.test.fail_mv_locks_count", "0"), TEST_FAIL_WRITES_KS("cassandra.test.fail_writes_ks", ""), /** Flush changes of {@link org.apache.cassandra.schema.SchemaKeyspace} after each schema modification. In production, @@ -499,6 +503,7 @@ public enum CassandraRelevantProperties TEST_JVM_DTEST_DISABLE_SSL("cassandra.test.disable_ssl"), TEST_LEGACY_SSTABLE_ROOT("legacy-sstable-root"), TEST_ORG_CAFFINITAS_OHC_SEGMENTCOUNT("org.caffinitas.ohc.segmentCount"), + TEST_RANDOM_SEED("cassandra.test.random.seed"), TEST_READ_ITERATION_DELAY_MS("cassandra.test.read_iteration_delay_ms", "0"), TEST_REUSE_PREPARED("cassandra.test.reuse_prepared", "true"), TEST_ROW_CACHE_SIZE("cassandra.test.row_cache_size"), diff --git a/src/java/org/apache/cassandra/index/IndexStatusManager.java b/src/java/org/apache/cassandra/index/IndexStatusManager.java index ae1abf18d8..13a51831f9 100644 --- a/src/java/org/apache/cassandra/index/IndexStatusManager.java +++ b/src/java/org/apache/cassandra/index/IndexStatusManager.java @@ -31,7 +31,6 @@ import com.google.common.annotations.VisibleForTesting; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.cassandra.concurrent.ExecutorPlus; import org.apache.cassandra.db.ConsistencyLevel; import org.apache.cassandra.db.Keyspace; @@ -52,9 +51,9 @@ import static org.apache.cassandra.concurrent.ExecutorFactory.Global.executorFac /** * Handles the status of an index across the ring, updating the status per index and endpoint * in a per-endpoint map. - * + * <p> * Peer status changes are recieved via the {@link StorageService} {@link org.apache.cassandra.gms.IEndpointStateChangeSubscriber}. - * + * <p> * Local status changes are propagated to the {@link Gossiper} using an async executor. */ public class IndexStatusManager @@ -66,8 +65,6 @@ public class IndexStatusManager // executes index status propagation task asynchronously to avoid potential deadlock on SIM private final ExecutorPlus statusPropagationExecutor = executorFactory().withJmxInternal() .sequential("StatusPropagationExecutor"); - // used to produce a status string from the current endpoint states in JSON format for Gossip propagation - private final ObjectMapper objectMapper = new ObjectMapper(); /** * A map of per-endpoint index statuses: the key of inner map is the identifier "keyspace.index" @@ -135,8 +132,7 @@ public class IndexStatusManager if (endpoint.equals(FBUtilities.getBroadcastAddressAndPort())) return; - @SuppressWarnings("unchecked") - Map<String, String> peerStatus = (Map<String, String>) JsonUtils.decodeJson(versionedValue.value); + Map<String, String> peerStatus = JsonUtils.fromJsonMap(versionedValue.value); Map<String, Index.Status> indexStatus = new HashMap<>(); for (Map.Entry<String, String> e : peerStatus.entrySet()) @@ -185,7 +181,7 @@ public class IndexStatusManager // logged and this causes a number of dtests to fail. if (Gossiper.instance.isEnabled()) { - String newStatus = objectMapper.writeValueAsString(states); + String newStatus = JsonUtils.JSON_OBJECT_MAPPER.writeValueAsString(states); statusPropagationExecutor.submit(() -> { // schedule gossiper update asynchronously to avoid potential deadlock when another thread is holding // gossiper taskLock. diff --git a/src/java/org/apache/cassandra/index/sai/QueryContext.java b/src/java/org/apache/cassandra/index/sai/QueryContext.java index 4996acbd97..6bb85df219 100644 --- a/src/java/org/apache/cassandra/index/sai/QueryContext.java +++ b/src/java/org/apache/cassandra/index/sai/QueryContext.java @@ -25,6 +25,8 @@ import org.apache.cassandra.db.ReadCommand; import org.apache.cassandra.exceptions.QueryCancelledException; import org.apache.cassandra.utils.Clock; +import static org.apache.cassandra.config.CassandraRelevantProperties.SAI_TEST_DISABLE_TIMEOUT; + /** * Tracks state relevant to the execution of a single query, including metrics and timeout monitoring. * @@ -33,7 +35,7 @@ import org.apache.cassandra.utils.Clock; @NotThreadSafe public class QueryContext { - private static final boolean DISABLE_TIMEOUT = Boolean.getBoolean("cassandra.sai.test.disable.timeout"); + private static final boolean DISABLE_TIMEOUT = SAI_TEST_DISABLE_TIMEOUT.getBoolean(); private final ReadCommand readCommand; private final long queryStartTimeNanos; diff --git a/src/java/org/apache/cassandra/index/sai/disk/v1/SSTableIndexWriter.java b/src/java/org/apache/cassandra/index/sai/disk/v1/SSTableIndexWriter.java index 2334b9cf42..eeb94d1808 100644 --- a/src/java/org/apache/cassandra/index/sai/disk/v1/SSTableIndexWriter.java +++ b/src/java/org/apache/cassandra/index/sai/disk/v1/SSTableIndexWriter.java @@ -46,6 +46,9 @@ import org.apache.cassandra.utils.Clock; import org.apache.cassandra.utils.FBUtilities; import org.apache.cassandra.utils.NoSpamLogger; +import static org.apache.cassandra.config.CassandraRelevantProperties.SAI_MAX_FROZEN_TERM_SIZE; +import static org.apache.cassandra.config.CassandraRelevantProperties.SAI_MAX_STRING_TERM_SIZE; + /** * Column index writer that accumulates (on-heap) indexed data from a compacted SSTable as it's being flushed to disk. */ @@ -55,8 +58,8 @@ public class SSTableIndexWriter implements PerColumnIndexWriter private static final Logger logger = LoggerFactory.getLogger(SSTableIndexWriter.class); private static final NoSpamLogger noSpamLogger = NoSpamLogger.getLogger(logger, 1, TimeUnit.MINUTES); - public static final int MAX_STRING_TERM_SIZE = Integer.getInteger("cassandra.sai.max_string_term_size_kb", 1) * 1024; - public static final int MAX_FROZEN_TERM_SIZE = Integer.getInteger("cassandra.sai.max_frozen_term_size_kb", 5) * 1024; + public static final int MAX_STRING_TERM_SIZE = SAI_MAX_STRING_TERM_SIZE.getInt() * 1024; + public static final int MAX_FROZEN_TERM_SIZE = SAI_MAX_FROZEN_TERM_SIZE.getInt() * 1024; public static final String TERM_OVERSIZE_MESSAGE = "Can't add term of column {} to index for key: {}, term size {} " + "max allowed size {}, use analyzed = true (if not yet set) for that column."; diff --git a/src/java/org/apache/cassandra/index/sai/disk/v1/trie/TriePrefixSearcher.java b/src/java/org/apache/cassandra/index/sai/disk/v1/trie/TriePrefixSearcher.java index 8acacd1aea..2fe6c46404 100644 --- a/src/java/org/apache/cassandra/index/sai/disk/v1/trie/TriePrefixSearcher.java +++ b/src/java/org/apache/cassandra/index/sai/disk/v1/trie/TriePrefixSearcher.java @@ -28,10 +28,10 @@ import org.apache.cassandra.utils.bytecomparable.ByteSource; /** * Thread-unsafe specialized value -> long trie prefix searcher. - * + * <p> * This is a specialization of the {@link Walker} that will look for a prefix or * a complete term and return the first payload associated with the term. - * + * <p> * TODO Make generic to handle any payload type. * TODO Extend search to return first payload or all sub-payloads as iterator (LIKE support?) */ diff --git a/src/java/org/apache/cassandra/io/tries/TrieNode.java b/src/java/org/apache/cassandra/io/tries/TrieNode.java index 7da4ee39e0..02f7d15018 100644 --- a/src/java/org/apache/cassandra/io/tries/TrieNode.java +++ b/src/java/org/apache/cassandra/io/tries/TrieNode.java @@ -59,7 +59,7 @@ import org.apache.cassandra.io.util.SizedInts; public abstract class TrieNode { /** Value used to indicate a branch (e.g. for transition and lastTransition) does not exist. */ - public static int NONE = -1; + public static final int NONE = -1; // Consumption (read) methods diff --git a/src/java/org/apache/cassandra/io/tries/ValueIterator.java b/src/java/org/apache/cassandra/io/tries/ValueIterator.java index 96cbdf0e00..6ddbebad2a 100644 --- a/src/java/org/apache/cassandra/io/tries/ValueIterator.java +++ b/src/java/org/apache/cassandra/io/tries/ValueIterator.java @@ -39,7 +39,7 @@ public class ValueIterator<CONCRETE extends ValueIterator<CONCRETE>> extends Wal protected IterationPosition stack; private long next; - protected static class IterationPosition + public static class IterationPosition { final long node; final int limit; diff --git a/test/unit/org/apache/cassandra/index/sai/SAITester.java b/test/unit/org/apache/cassandra/index/sai/SAITester.java index 90d0564df9..db8a6ea791 100644 --- a/test/unit/org/apache/cassandra/index/sai/SAITester.java +++ b/test/unit/org/apache/cassandra/index/sai/SAITester.java @@ -47,6 +47,7 @@ import javax.management.ObjectName; import com.google.common.collect.Sets; import org.junit.After; import org.junit.Assert; +import org.junit.BeforeClass; import org.junit.Rule; import org.junit.rules.TestRule; import org.junit.rules.TestWatcher; @@ -98,6 +99,7 @@ import org.apache.cassandra.utils.JVMStabilityInspector; import org.apache.cassandra.utils.Throwables; import org.apache.lucene.codecs.CodecUtil; +import static org.apache.cassandra.config.CassandraRelevantProperties.TEST_RANDOM_SEED; import static org.apache.cassandra.inject.ActionBuilder.newActionBuilder; import static org.apache.cassandra.inject.Expression.quote; import static org.apache.cassandra.inject.InvokePointBuilder.newInvokePoint; @@ -141,8 +143,11 @@ public abstract class SAITester extends CQLTester public static final PrimaryKey.Factory TEST_FACTORY = new PrimaryKey.Factory(EMPTY_COMPARATOR); - static + @BeforeClass + public static void setUpClass() { + CQLTester.setUpClass(); + // Ensure that the on-disk format statics are loaded before the test run Version.LATEST.onDiskFormat(); } @@ -778,13 +783,13 @@ public abstract class SAITester extends CQLTester Randomization() { - seed = Long.getLong("cassandra.test.random.seed", System.nanoTime()); + seed = TEST_RANDOM_SEED.getLong(System.nanoTime()); random = new Random(seed); } public void printSeedOnFailure() { - logger.error("Randomized test failed. To rerun test use -Dcassandra.test.random.seed=" + seed); + logger.error("Randomized test failed. To rerun test use -D{}={}", TEST_RANDOM_SEED.getKey(), seed); } public int nextInt() diff --git a/test/unit/org/apache/cassandra/index/sai/plan/OperationTest.java b/test/unit/org/apache/cassandra/index/sai/plan/OperationTest.java index 10ed7f5035..e4da6c9fe3 100644 --- a/test/unit/org/apache/cassandra/index/sai/plan/OperationTest.java +++ b/test/unit/org/apache/cassandra/index/sai/plan/OperationTest.java @@ -71,6 +71,7 @@ import org.apache.cassandra.schema.KeyspaceParams; import org.apache.cassandra.schema.TableMetadata; import org.apache.cassandra.utils.FBUtilities; +import static org.apache.cassandra.config.CassandraRelevantProperties.CASSANDRA_CONFIG; import static org.apache.cassandra.db.marshal.Int32Type.instance; public class OperationTest @@ -91,7 +92,7 @@ public class OperationTest @BeforeClass public static void loadSchema() throws ConfigurationException { - System.setProperty("cassandra.config", "cassandra-murmur.yaml"); + CASSANDRA_CONFIG.setString("cassandra-murmur.yaml"); SchemaLoader.loadSchema(); diff --git a/test/unit/org/apache/cassandra/index/sai/virtual/SegmentsSystemViewTest.java b/test/unit/org/apache/cassandra/index/sai/virtual/SegmentsSystemViewTest.java index f37dcf86f0..910f9f11fa 100644 --- a/test/unit/org/apache/cassandra/index/sai/virtual/SegmentsSystemViewTest.java +++ b/test/unit/org/apache/cassandra/index/sai/virtual/SegmentsSystemViewTest.java @@ -51,6 +51,8 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertTrue; +import static org.apache.cassandra.config.CassandraRelevantProperties.TEST_ENCRYPTION; + /** * Tests the virtual table exposing SSTable index segment metadata. */ @@ -170,7 +172,7 @@ public class SegmentsSystemViewTest extends SAITester indexLengths.put(indexType, value + length); } } - if (!Boolean.parseBoolean(System.getProperty("cassandra.test.encryption", "false"))) + if (!TEST_ENCRYPTION.getBoolean()) assertEquals(indexFileLengths(), indexLengths); } diff --git a/test/unit/org/apache/cassandra/io/tries/WalkerTest.java b/test/unit/org/apache/cassandra/io/tries/WalkerTest.java index ece47115b7..033ab5a5af 100644 --- a/test/unit/org/apache/cassandra/io/tries/WalkerTest.java +++ b/test/unit/org/apache/cassandra/io/tries/WalkerTest.java @@ -310,5 +310,4 @@ public class WalkerTest extends AbstractTrieTestBase s = StringUtils.leftPad(s, size, '0'); return source(s); } - } diff --git a/test/unit/org/apache/cassandra/io/util/SizedIntsTest.java b/test/unit/org/apache/cassandra/io/util/SizedIntsTest.java index 9a3a953fcf..8793d46431 100644 --- a/test/unit/org/apache/cassandra/io/util/SizedIntsTest.java +++ b/test/unit/org/apache/cassandra/io/util/SizedIntsTest.java @@ -35,7 +35,6 @@ import static org.quicktheories.generators.SourceDSL.longs; public class SizedIntsTest { - @Test public void nonZeroSize() { diff --git a/test/unit/org/apache/cassandra/io/util/TailOverridingRebuffererTest.java b/test/unit/org/apache/cassandra/io/util/TailOverridingRebuffererTest.java index 7bb65a04bd..85da3573c8 100644 --- a/test/unit/org/apache/cassandra/io/util/TailOverridingRebuffererTest.java +++ b/test/unit/org/apache/cassandra/io/util/TailOverridingRebuffererTest.java @@ -18,7 +18,6 @@ package org.apache.cassandra.io.util; -import java.io.IOException; import java.nio.ByteBuffer; import org.junit.Test; @@ -32,7 +31,6 @@ import static org.mockito.Mockito.reset; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; - public class TailOverridingRebuffererTest { ByteBuffer head = ByteBuffer.wrap(new byte[]{ 1, 2, 3, 4, 5, 6, 7, 8 }); @@ -101,7 +99,7 @@ public class TailOverridingRebuffererTest } @Test - public void testOtherMethods() throws IOException + public void testOtherMethods() { Rebufferer tor = new TailOverridingRebufferer(r, 8, tail.duplicate()); --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org