This is an automated email from the ASF dual-hosted git repository. maedhroz pushed a commit to branch cep-15-accord in repository https://gitbox.apache.org/repos/asf/cassandra.git
commit 3d93925ed460f1b18b0c30da7b7a370712341c37 Author: ci worker <dcapw...@apache.org> AuthorDate: Thu Mar 28 20:03:39 2024 -0700 Ninja for CASSANDRA-19305: Disable EphemeralRead by default to get benchmarks stable --- src/java/org/apache/cassandra/config/AccordSpec.java | 1 + src/java/org/apache/cassandra/config/DatabaseDescriptor.java | 5 +++++ .../org/apache/cassandra/cql3/statements/TransactionStatement.java | 6 ++++-- src/java/org/apache/cassandra/service/StorageProxy.java | 2 +- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/java/org/apache/cassandra/config/AccordSpec.java b/src/java/org/apache/cassandra/config/AccordSpec.java index e76745a233..ab80ec4b32 100644 --- a/src/java/org/apache/cassandra/config/AccordSpec.java +++ b/src/java/org/apache/cassandra/config/AccordSpec.java @@ -69,4 +69,5 @@ public class AccordSpec * default transactional mode for tables created by this node when no transactional mode has been specified in the DDL */ public TransactionalMode default_transactional_mode = TransactionalMode.off; + public boolean ephemeralReadEnabled = false; } diff --git a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java index e91f1f833c..952e10ef1e 100644 --- a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java +++ b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java @@ -5396,4 +5396,9 @@ public class DatabaseDescriptor { return conf.triggers_policy; } + + public static boolean getAccordEphemeralReadEnabledEnabled() + { + return conf.accord.ephemeralReadEnabled; + } } diff --git a/src/java/org/apache/cassandra/cql3/statements/TransactionStatement.java b/src/java/org/apache/cassandra/cql3/statements/TransactionStatement.java index fa09b8ec7e..68a8fd13f2 100644 --- a/src/java/org/apache/cassandra/cql3/statements/TransactionStatement.java +++ b/src/java/org/apache/cassandra/cql3/statements/TransactionStatement.java @@ -331,8 +331,10 @@ public class TransactionStatement implements CQLStatement.CompositeCQLStatement, List<TxnNamedRead> reads = createNamedReads(options, state, ImmutableMap.of(), keySet::add); Keys txnKeys = toKeys(keySet); TxnRead read = createTxnRead(reads, txnKeys, null); - Txn.Kind kind = txnKeys.size() == 1 && transactionalModeForSingleKey(txnKeys) == TransactionalMode.full - ? EphemeralRead : Read; + Txn.Kind kind = txnKeys.size() == 1 + && transactionalModeForSingleKey(txnKeys) == TransactionalMode.full + && DatabaseDescriptor.getAccordEphemeralReadEnabledEnabled() + ? EphemeralRead : Read; return new Txn.InMemory(kind, txnKeys, read, TxnQuery.ALL, null); } else diff --git a/src/java/org/apache/cassandra/service/StorageProxy.java b/src/java/org/apache/cassandra/service/StorageProxy.java index 198d963057..cbf51037ca 100644 --- a/src/java/org/apache/cassandra/service/StorageProxy.java +++ b/src/java/org/apache/cassandra/service/StorageProxy.java @@ -2028,7 +2028,7 @@ public class StorageProxy implements StorageProxyMBean consistencyLevel = transactionalMode.readCLForStrategy(consistencyLevel); TxnRead read = TxnRead.createSerialRead(readCommand, consistencyLevel); Invariants.checkState(read.keys().size() == 1, "Ephemeral reads are only strict-serializable for single partition reads"); - Txn txn = new Txn.InMemory(transactionalMode == TransactionalMode.full ? EphemeralRead : Read, read.keys(), read, TxnQuery.ALL, null); + Txn txn = new Txn.InMemory(transactionalMode == TransactionalMode.full && DatabaseDescriptor.getAccordEphemeralReadEnabledEnabled() ? EphemeralRead : Read, read.keys(), read, TxnQuery.ALL, null); IAccordService accordService = AccordService.instance(); TxnResult txnResult = accordService.coordinate(txn, consistencyLevel, queryStartNanoTime); if (txnResult.kind() == retry_new_protocol) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org