mirror of https://github.com/apache/cassandra
Ninja for CASSANDRA-19305: Disable EphemeralRead by default to get benchmarks stable
This commit is contained in:
parent
7dadc080cb
commit
333c748a91
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5810,4 +5810,9 @@ public class DatabaseDescriptor
|
|||
{
|
||||
conf.paxos_repair_race_wait = paxosRepairRaceWait;
|
||||
}
|
||||
|
||||
public static boolean getAccordEphemeralReadEnabledEnabled()
|
||||
{
|
||||
return conf.accord.ephemeralReadEnabled;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -332,8 +332,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
|
||||
|
|
|
|||
|
|
@ -2053,7 +2053,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, requestTime);
|
||||
if (txnResult.kind() == retry_new_protocol)
|
||||
|
|
|
|||
Loading…
Reference in New Issue