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 2023/07/26 16:27:30 UTC
[cassandra] 06/22: post-rebase fixes for the rebase on trunk at fad1f7457032544ab6a7b40c5d38ecb8b25899bb
This is an automated email from the ASF dual-hosted git repository.
maedhroz pushed a commit to branch cep-7-sai
in repository https://gitbox.apache.org/repos/asf/cassandra.git
commit 6f32eaac2e2c0330d652648b2ea242fa0c55ac5a
Author: Caleb Rackliffe <ca...@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-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org