Package org.apache.cassandra.service
Class StorageProxy
- java.lang.Object
-
- org.apache.cassandra.service.StorageProxy
-
- All Implemented Interfaces:
StorageProxyMBean
public class StorageProxy extends java.lang.Object implements StorageProxyMBean
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classStorageProxy.LocalReadRunnablestatic interfaceStorageProxy.WritePerformer
-
Field Summary
Fields Modifier and Type Field Description static StorageProxyinstancestatic java.lang.StringMBEAN_NAMEstatic java.lang.StringUNREACHABLE
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description booleanappliesLocally(Mutation mutation)static AbstractWriteResponseHandler<IMutation>applyCounterMutationOnCoordinator(CounterMutation cm, java.lang.String localDataCenter, Dispatcher.RequestTime requestTime)static AbstractWriteResponseHandler<IMutation>applyCounterMutationOnLeader(CounterMutation cm, java.lang.String localDataCenter, java.lang.Runnable callback, Dispatcher.RequestTime requestTime)static RowIteratorcas(java.lang.String keyspaceName, java.lang.String cfName, DecoratedKey key, CASRequest request, ConsistencyLevel consistencyForPaxos, ConsistencyLevel consistencyForCommit, ClientState clientState, int nowInSeconds, Dispatcher.RequestTime requestTime)Apply @param updates if and only if the current values in the row for @param key match the provided @param conditions.static PartitionIteratorconcatAndBlockOnRepair(java.util.List<PartitionIterator> iterators, java.util.List<ReadRepair<?,?>> repairs)booleandenylistKey(java.lang.String keyspace, java.lang.String table, java.lang.String partitionKeyAsString)Actively denies read and write access to the provided Partition Keystatic java.util.Map<java.lang.String,java.util.List<java.lang.String>>describeSchemaVersions(boolean withPort)initiate a request/response session with each live node to check whether or not everybody is using the same migration id.voiddisableCheckForDuplicateRowsDuringCompaction()voiddisableCheckForDuplicateRowsDuringReads()voiddisableHintsForDC(java.lang.String dc)voiddisableRepairedDataTrackingForPartitionReads()voiddisableRepairedDataTrackingForRangeReads()voiddisableReportingUnconfirmedRepairedDataMismatches()voiddisableSnapshotOnDuplicateRowDetection()voiddisableSnapshotOnRepairedDataMismatch()voidenableCheckForDuplicateRowsDuringCompaction()voidenableCheckForDuplicateRowsDuringReads()voidenableHintsForDC(java.lang.String dc)voidenableRepairedDataTrackingForPartitionReads()voidenableRepairedDataTrackingForRangeReads()Tracking and reporting of variances in the repaired data set across replicas at read timevoidenableReportingUnconfirmedRepairedDataMismatches()voidenableSnapshotOnDuplicateRowDetection()voidenableSnapshotOnRepairedDataMismatch()java.lang.LonggetCasContentionTimeout()booleangetCheckForDuplicateRowsDuringCompaction()booleangetCheckForDuplicateRowsDuringReads()java.lang.LonggetCounterWriteRpcTimeout()java.util.Set<java.lang.String>getHintedHandoffDisabledDCs()booleangetHintedHandoffEnabled()intgetHintsInProgress()java.lang.StringgetIdealConsistencyLevel()intgetMaxHintsInProgress()intgetMaxHintsSizePerHostInMiB()intgetMaxHintWindow()java.lang.LonggetNativeTransportMaxConcurrentConnections()java.lang.LonggetNativeTransportMaxConcurrentConnectionsPerIp()intgetNumberOfTables()intgetOtcBacklogExpirationInterval()Deprecated.intgetPartitionDenylistLoadAttempts()intgetPartitionDenylistLoadSuccesses()java.lang.StringgetPaxosContentionStrategy()booleangetPaxosCoordinatorLockingDisabled()java.lang.StringgetPaxosVariant()java.lang.LonggetRangeRpcTimeout()static PartitionIteratorgetRangeSlice(PartitionRangeReadCommand command, ConsistencyLevel consistencyLevel, Dispatcher.RequestTime requestTime)longgetReadRepairAttempted()longgetReadRepairRepairedBackground()longgetReadRepairRepairedBlocking()longgetReadRepairRepairTimedOut()java.lang.LonggetReadRpcTimeout()booleangetRepairedDataTrackingEnabledForPartitionReads()booleangetRepairedDataTrackingEnabledForRangeReads()booleangetReportingUnconfirmedRepairedDataMismatchesEnabled()java.lang.LonggetRpcTimeout()java.util.Map<java.lang.String,java.util.List<java.lang.String>>getSchemaVersions()Returns each live node's schema versionjava.util.Map<java.lang.String,java.util.List<java.lang.String>>getSchemaVersionsWithPort()booleangetSnapshotOnDuplicateRowDetectionEnabled()booleangetSnapshotOnRepairedDataMismatchEnabled()longgetTotalHints()java.lang.LonggetTruncateRpcTimeout()booleangetUseStatementsEnabled()java.lang.LonggetWriteRpcTimeout()voidinitialLoadPartitionDenylist()booleanisKeyDenylisted(java.lang.String keyspace, java.lang.String table, java.lang.String partitionKeyAsString)A simple check for operators to determine what the denylisted value for a pk is on a nodebooleanisLoggingReadRepairs()static RowIteratorlegacyCas(java.lang.String keyspaceName, java.lang.String cfName, DecoratedKey key, CASRequest request, ConsistencyLevel consistencyForPaxos, ConsistencyLevel consistencyForCommit, ClientState clientState, int nowInSeconds, Dispatcher.RequestTime requestTime)voidloadPartitionDenylist()voidlogBlockingReadRepairAttemptsForNSeconds(int seconds)static voidlogRequestException(java.lang.Exception exception, java.util.Collection<? extends ReadCommand> commands)static voidmutate(java.util.List<? extends IMutation> mutations, ConsistencyLevel consistencyLevel, Dispatcher.RequestTime requestTime)Use this method to have these Mutations applied across all replicas.static voidmutateAtomically(java.util.Collection<Mutation> mutations, ConsistencyLevel consistency_level, boolean requireQuorumForRemove, Dispatcher.RequestTime requestTime)See mutate.static AbstractWriteResponseHandler<IMutation>mutateCounter(CounterMutation cm, java.lang.String localDataCenter, Dispatcher.RequestTime requestTime)Handle counter mutation on the coordinator host.static voidmutateMV(java.nio.ByteBuffer dataKey, java.util.Collection<Mutation> mutations, boolean writeCommitLog, java.util.concurrent.atomic.AtomicLong baseComplete, Dispatcher.RequestTime requestTime)Use this method to have these Mutations applied across all replicas.static voidmutateWithTriggers(java.util.List<? extends IMutation> mutations, ConsistencyLevel consistencyLevel, boolean mutateAtomically, Dispatcher.RequestTime requestTime)static AbstractWriteResponseHandler<IMutation>performWrite(IMutation mutation, ConsistencyLevel consistencyLevel, java.lang.String localDataCenter, StorageProxy.WritePerformer performer, java.lang.Runnable callback, WriteType writeType, Dispatcher.RequestTime requestTime)Perform the write of a mutation given a WritePerformer.static PartitionIteratorread(SinglePartitionReadCommand.Group group, ConsistencyLevel consistencyLevel, Dispatcher.RequestTime requestTime)Performs the actual reading of a row out of the StorageService, fetching a specific set of column names from a given column family.static RowIteratorreadOne(SinglePartitionReadCommand command, ConsistencyLevel consistencyLevel, Dispatcher.RequestTime requestTime)static voidrecordReadRegularAbort(ConsistencyLevel consistencyLevel, java.lang.Throwable cause)voidreloadTriggerClasses()booleanremoveDenylistKey(java.lang.String keyspace, java.lang.String table, java.lang.String partitionKeyAsString)Attempts to remove the provided pk from the ks + table deny liststatic voidsendToHintedReplicas(Mutation mutation, ReplicaPlan.ForWrite plan, AbstractWriteResponseHandler<IMutation> responseHandler, java.lang.String localDataCenter, Stage stage, Dispatcher.RequestTime requestTime)Send the mutations to the right targets, write it locally if it corresponds or writes a hint when the node is not available.voidsetCasContentionTimeout(java.lang.Long timeoutInMillis)voidsetCounterWriteRpcTimeout(java.lang.Long timeoutInMillis)voidsetDenylistMaxKeysPerTable(int value)voidsetDenylistMaxKeysTotal(int value)voidsetEnableDenylistRangeReads(boolean enabled)voidsetEnableDenylistReads(boolean enabled)voidsetEnableDenylistWrites(boolean enabled)voidsetEnablePartitionDenylist(boolean enabled)voidsetHintedHandoffEnabled(boolean b)java.lang.StringsetIdealConsistencyLevel(java.lang.String cl)voidsetMaxHintsInProgress(int qs)voidsetMaxHintsSizePerHostInMiB(int value)voidsetMaxHintWindow(int ms)voidsetNativeTransportMaxConcurrentConnections(java.lang.Long nativeTransportMaxConcurrentConnections)voidsetNativeTransportMaxConcurrentConnectionsPerIp(java.lang.Long nativeTransportMaxConcurrentConnections)voidsetOtcBacklogExpirationInterval(int intervalInMillis)Deprecated.voidsetPaxosContentionStrategy(java.lang.String spec)voidsetPaxosCoordinatorLockingDisabled(boolean disabled)voidsetPaxosVariant(java.lang.String variant)voidsetRangeRpcTimeout(java.lang.Long timeoutInMillis)voidsetReadRpcTimeout(java.lang.Long timeoutInMillis)voidsetRpcTimeout(java.lang.Long timeoutInMillis)voidsetTruncateRpcTimeout(java.lang.Long timeoutInMillis)voidsetUseStatementsEnabled(boolean enabled)voidsetWriteRpcTimeout(java.lang.Long timeoutInMillis)static booleanshouldHint(Replica replica)static booleanshouldHint(Replica replica, boolean tryEnablePersistentWindow)Determines whether a hint should be stored or not.static voidsubmitHint(Mutation mutation, Replica target, AbstractWriteResponseHandler<IMutation> responseHandler)static voidtruncateBlocking(java.lang.String keyspace, java.lang.String cfname)Performs the truncate operatoin, which effectively deletes all data from the column family cfnamevoidverifyNoHintsInProgress()
-
-
-
Field Detail
-
MBEAN_NAME
public static final java.lang.String MBEAN_NAME
- See Also:
- Constant Field Values
-
UNREACHABLE
public static final java.lang.String UNREACHABLE
- See Also:
- Constant Field Values
-
instance
public static final StorageProxy instance
-
-
Method Detail
-
cas
public static RowIterator cas(java.lang.String keyspaceName, java.lang.String cfName, DecoratedKey key, CASRequest request, ConsistencyLevel consistencyForPaxos, ConsistencyLevel consistencyForCommit, ClientState clientState, int nowInSeconds, Dispatcher.RequestTime requestTime) throws UnavailableException, IsBootstrappingException, RequestFailureException, RequestTimeoutException, InvalidRequestException, CasWriteUnknownResultException
Apply @param updates if and only if the current values in the row for @param key match the provided @param conditions. The algorithm is "raw" Paxos: that is, Paxos minus leader election -- any node in the cluster may propose changes for any row, which (that is, the row) is the unit of values being proposed, not single columns. The Paxos cohort is only the replicas for the given key, not the entire cluster. So we expect performance to be reasonable, but CAS is still intended to be used "when you really need it," not for all your updates. There are three phases to Paxos: 1. Prepare: the coordinator generates a ballot (timeUUID in our case) and asks replicas to (a) promise not to accept updates from older ballots and (b) tell us about the most recent update it has already accepted. 2. Accept: if a majority of replicas respond, the coordinator asks replicas to accept the value of the highest proposal ballot it heard about, or a new value if no in-progress proposals were reported. 3. Commit (Learn): if a majority of replicas acknowledge the accept request, we can commit the new value. Commit procedure is not covered in "Paxos Made Simple," and only briefly mentioned in "Paxos Made Live," so here is our approach: 3a. The coordinator sends a commit message to all replicas with the ballot and value. 3b. Because of 1-2, this will be the highest-seen commit ballot. The replicas will note that, and send it with subsequent promise replies. This allows us to discard acceptance records for successfully committed replicas, without allowing incomplete proposals to commit erroneously later on. Note that since we are performing a CAS rather than a simple update, we perform a read (of committed values) between the prepare and accept phases. This gives us a slightly longer window for another coordinator to come along and trump our own promise with a newer one but is otherwise safe.- Parameters:
keyspaceName- the keyspace for the CAScfName- the column family for the CASkey- the row key for the row to CASrequest- the conditions for the CAS to apply as well as the update to perform if the conditions hold.consistencyForPaxos- the consistency for the paxos prepare and propose round. This can only be either SERIAL or LOCAL_SERIAL.consistencyForCommit- the consistency for write done during the commit phase. This can be anything, except SERIAL or LOCAL_SERIAL.- Returns:
- null if the operation succeeds in updating the row, or the current values corresponding to conditions. (since, if the CAS doesn't succeed, it means the current value do not match the conditions).
- Throws:
UnavailableExceptionIsBootstrappingExceptionRequestFailureExceptionRequestTimeoutExceptionInvalidRequestExceptionCasWriteUnknownResultException
-
legacyCas
public static RowIterator legacyCas(java.lang.String keyspaceName, java.lang.String cfName, DecoratedKey key, CASRequest request, ConsistencyLevel consistencyForPaxos, ConsistencyLevel consistencyForCommit, ClientState clientState, int nowInSeconds, Dispatcher.RequestTime requestTime) throws UnavailableException, IsBootstrappingException, RequestFailureException, RequestTimeoutException, InvalidRequestException
-
mutate
public static void mutate(java.util.List<? extends IMutation> mutations, ConsistencyLevel consistencyLevel, Dispatcher.RequestTime requestTime) throws UnavailableException, OverloadedException, WriteTimeoutException, WriteFailureException
Use this method to have these Mutations applied across all replicas. This method will take care of the possibility of a replica being down and hint the data across to some other replica.- Parameters:
mutations- the mutations to be applied across the replicasconsistencyLevel- the consistency level for the operationrequestTime- object holding times when request got enqueued and started execution- Throws:
UnavailableExceptionOverloadedExceptionWriteTimeoutExceptionWriteFailureException
-
appliesLocally
public boolean appliesLocally(Mutation mutation)
-
mutateMV
public static void mutateMV(java.nio.ByteBuffer dataKey, java.util.Collection<Mutation> mutations, boolean writeCommitLog, java.util.concurrent.atomic.AtomicLong baseComplete, Dispatcher.RequestTime requestTime) throws UnavailableException, OverloadedException, WriteTimeoutExceptionUse this method to have these Mutations applied across all replicas.- Parameters:
mutations- the mutations to be applied across the replicaswriteCommitLog- if commitlog should be writtenbaseComplete- time from epoch in ms that the local base mutation was(or will be) completedrequestTime- object holding times when request got enqueued and started execution- Throws:
UnavailableExceptionOverloadedExceptionWriteTimeoutException
-
mutateWithTriggers
public static void mutateWithTriggers(java.util.List<? extends IMutation> mutations, ConsistencyLevel consistencyLevel, boolean mutateAtomically, Dispatcher.RequestTime requestTime) throws WriteTimeoutException, WriteFailureException, UnavailableException, OverloadedException, InvalidRequestException
-
mutateAtomically
public static void mutateAtomically(java.util.Collection<Mutation> mutations, ConsistencyLevel consistency_level, boolean requireQuorumForRemove, Dispatcher.RequestTime requestTime) throws UnavailableException, OverloadedException, WriteTimeoutException
See mutate. Adds additional steps before and after writing a batch. Before writing the batch (but after doing availability check against the FD for the row replicas): write the entire batch to a batchlog elsewhere in the cluster. After: remove the batchlog entry (after writing hints for the batch rows, if necessary).- Parameters:
mutations- the Mutations to be applied across the replicasconsistency_level- the consistency level for the operationrequireQuorumForRemove- at least a quorum of nodes will see update before deleting batchlogrequestTime- object holding times when request got enqueued and started execution- Throws:
UnavailableExceptionOverloadedExceptionWriteTimeoutException
-
performWrite
public static AbstractWriteResponseHandler<IMutation> performWrite(IMutation mutation, ConsistencyLevel consistencyLevel, java.lang.String localDataCenter, StorageProxy.WritePerformer performer, java.lang.Runnable callback, WriteType writeType, Dispatcher.RequestTime requestTime)
Perform the write of a mutation given a WritePerformer. Gather the list of write endpoints, apply locally and/or forward the mutation to said write endpoint (deletaged to the actual WritePerformer) and wait for the responses based on consistency level.- Parameters:
mutation- the mutation to be appliedconsistencyLevel- the consistency level for the write operationperformer- the WritePerformer in charge of appliying the mutation given the list of write endpoints (either standardWritePerformer for standard writes or counterWritePerformer for counter writes).callback- an optional callback to be run if and when the write isrequestTime- object holding times when request got enqueued and started execution
-
sendToHintedReplicas
public static void sendToHintedReplicas(Mutation mutation, ReplicaPlan.ForWrite plan, AbstractWriteResponseHandler<IMutation> responseHandler, java.lang.String localDataCenter, Stage stage, Dispatcher.RequestTime requestTime) throws OverloadedException
Send the mutations to the right targets, write it locally if it corresponds or writes a hint when the node is not available. Note about hints:| Hinted Handoff | Consist. Level | | on | >=1 | --> wait for hints. We DO NOT notify the handler with handler.response() for hints; | on | ANY | --> wait for hints. Responses count towards consistency. | off | >=1 | --> DO NOT fire hints. And DO NOT wait for them to complete. | off | ANY | --> DO NOT fire hints. And DO NOT wait for them to complete.- Throws:
OverloadedException- if the hints cannot be written/enqueued
-
mutateCounter
public static AbstractWriteResponseHandler<IMutation> mutateCounter(CounterMutation cm, java.lang.String localDataCenter, Dispatcher.RequestTime requestTime) throws UnavailableException, OverloadedException
Handle counter mutation on the coordinator host. A counter mutation needs to first be applied to a replica (that we'll call the leader for the mutation) before being replicated to the other endpoint. To achieve so, there is two case: 1) the coordinator host is a replica: we proceed to applying the update locally and replicate throug applyCounterMutationOnCoordinator 2) the coordinator is not a replica: we forward the (counter)mutation to a chosen replica (that will proceed through applyCounterMutationOnLeader upon receive) and wait for its acknowledgment. Implementation note: We check if we can fulfill the CL on the coordinator host even if he is not a replica to allow quicker response and because the WriteResponseHandlers don't make it easy to send back an error. We also always gather the write latencies at the coordinator node to make gathering point similar to the case of standard writes.
-
applyCounterMutationOnLeader
public static AbstractWriteResponseHandler<IMutation> applyCounterMutationOnLeader(CounterMutation cm, java.lang.String localDataCenter, java.lang.Runnable callback, Dispatcher.RequestTime requestTime) throws UnavailableException, OverloadedException
-
applyCounterMutationOnCoordinator
public static AbstractWriteResponseHandler<IMutation> applyCounterMutationOnCoordinator(CounterMutation cm, java.lang.String localDataCenter, Dispatcher.RequestTime requestTime) throws UnavailableException, OverloadedException
-
readOne
public static RowIterator readOne(SinglePartitionReadCommand command, ConsistencyLevel consistencyLevel, Dispatcher.RequestTime requestTime) throws UnavailableException, IsBootstrappingException, ReadFailureException, ReadTimeoutException, InvalidRequestException
-
read
public static PartitionIterator read(SinglePartitionReadCommand.Group group, ConsistencyLevel consistencyLevel, Dispatcher.RequestTime requestTime) throws UnavailableException, IsBootstrappingException, ReadFailureException, ReadTimeoutException, InvalidRequestException
Performs the actual reading of a row out of the StorageService, fetching a specific set of column names from a given column family.
-
recordReadRegularAbort
public static void recordReadRegularAbort(ConsistencyLevel consistencyLevel, java.lang.Throwable cause)
-
concatAndBlockOnRepair
public static PartitionIterator concatAndBlockOnRepair(java.util.List<PartitionIterator> iterators, java.util.List<ReadRepair<?,?>> repairs)
-
getRangeSlice
public static PartitionIterator getRangeSlice(PartitionRangeReadCommand command, ConsistencyLevel consistencyLevel, Dispatcher.RequestTime requestTime)
-
getSchemaVersions
public java.util.Map<java.lang.String,java.util.List<java.lang.String>> getSchemaVersions()
Description copied from interface:StorageProxyMBeanReturns each live node's schema version- Specified by:
getSchemaVersionsin interfaceStorageProxyMBean
-
getSchemaVersionsWithPort
public java.util.Map<java.lang.String,java.util.List<java.lang.String>> getSchemaVersionsWithPort()
- Specified by:
getSchemaVersionsWithPortin interfaceStorageProxyMBean
-
describeSchemaVersions
public static java.util.Map<java.lang.String,java.util.List<java.lang.String>> describeSchemaVersions(boolean withPort)
initiate a request/response session with each live node to check whether or not everybody is using the same migration id. This is useful for determining if a schema change has propagated through the cluster. Disagreement is assumed if any node fails to respond.
-
getHintedHandoffEnabled
public boolean getHintedHandoffEnabled()
- Specified by:
getHintedHandoffEnabledin interfaceStorageProxyMBean
-
setHintedHandoffEnabled
public void setHintedHandoffEnabled(boolean b)
- Specified by:
setHintedHandoffEnabledin interfaceStorageProxyMBean
-
enableHintsForDC
public void enableHintsForDC(java.lang.String dc)
- Specified by:
enableHintsForDCin interfaceStorageProxyMBean
-
disableHintsForDC
public void disableHintsForDC(java.lang.String dc)
- Specified by:
disableHintsForDCin interfaceStorageProxyMBean
-
getHintedHandoffDisabledDCs
public java.util.Set<java.lang.String> getHintedHandoffDisabledDCs()
- Specified by:
getHintedHandoffDisabledDCsin interfaceStorageProxyMBean
-
getMaxHintWindow
public int getMaxHintWindow()
- Specified by:
getMaxHintWindowin interfaceStorageProxyMBean
-
setMaxHintWindow
public void setMaxHintWindow(int ms)
- Specified by:
setMaxHintWindowin interfaceStorageProxyMBean
-
getMaxHintsSizePerHostInMiB
public int getMaxHintsSizePerHostInMiB()
- Specified by:
getMaxHintsSizePerHostInMiBin interfaceStorageProxyMBean
-
setMaxHintsSizePerHostInMiB
public void setMaxHintsSizePerHostInMiB(int value)
- Specified by:
setMaxHintsSizePerHostInMiBin interfaceStorageProxyMBean
-
shouldHint
public static boolean shouldHint(Replica replica)
-
shouldHint
public static boolean shouldHint(Replica replica, boolean tryEnablePersistentWindow)
Determines whether a hint should be stored or not. It rejects early if any of the condition is met: - Hints disabled entirely or for the belonging datacetner of the replica - The replica is transient or is the self node - The replica is no longer part of the ring - The hint window has expired - The hints have reached to the size limit for the node Otherwise, it permits.- Parameters:
replica- , the replica for the hinttryEnablePersistentWindow- , true to consider hint_window_persistent_enabled; otherwise, ignores- Returns:
- true to permit or false to reject hint
-
truncateBlocking
public static void truncateBlocking(java.lang.String keyspace, java.lang.String cfname) throws UnavailableException, java.util.concurrent.TimeoutExceptionPerforms the truncate operatoin, which effectively deletes all data from the column family cfname- Parameters:
keyspace-cfname-- Throws:
UnavailableException- If some of the hosts in the ring are down.java.util.concurrent.TimeoutException
-
logRequestException
public static void logRequestException(java.lang.Exception exception, java.util.Collection<? extends ReadCommand> commands)
-
getTotalHints
public long getTotalHints()
- Specified by:
getTotalHintsin interfaceStorageProxyMBean
-
getMaxHintsInProgress
public int getMaxHintsInProgress()
- Specified by:
getMaxHintsInProgressin interfaceStorageProxyMBean
-
setMaxHintsInProgress
public void setMaxHintsInProgress(int qs)
- Specified by:
setMaxHintsInProgressin interfaceStorageProxyMBean
-
getHintsInProgress
public int getHintsInProgress()
- Specified by:
getHintsInProgressin interfaceStorageProxyMBean
-
verifyNoHintsInProgress
public void verifyNoHintsInProgress()
-
submitHint
public static void submitHint(Mutation mutation, Replica target, AbstractWriteResponseHandler<IMutation> responseHandler)
-
getRpcTimeout
public java.lang.Long getRpcTimeout()
- Specified by:
getRpcTimeoutin interfaceStorageProxyMBean
-
setRpcTimeout
public void setRpcTimeout(java.lang.Long timeoutInMillis)
- Specified by:
setRpcTimeoutin interfaceStorageProxyMBean
-
getReadRpcTimeout
public java.lang.Long getReadRpcTimeout()
- Specified by:
getReadRpcTimeoutin interfaceStorageProxyMBean
-
setReadRpcTimeout
public void setReadRpcTimeout(java.lang.Long timeoutInMillis)
- Specified by:
setReadRpcTimeoutin interfaceStorageProxyMBean
-
getWriteRpcTimeout
public java.lang.Long getWriteRpcTimeout()
- Specified by:
getWriteRpcTimeoutin interfaceStorageProxyMBean
-
setWriteRpcTimeout
public void setWriteRpcTimeout(java.lang.Long timeoutInMillis)
- Specified by:
setWriteRpcTimeoutin interfaceStorageProxyMBean
-
getCounterWriteRpcTimeout
public java.lang.Long getCounterWriteRpcTimeout()
- Specified by:
getCounterWriteRpcTimeoutin interfaceStorageProxyMBean
-
setCounterWriteRpcTimeout
public void setCounterWriteRpcTimeout(java.lang.Long timeoutInMillis)
- Specified by:
setCounterWriteRpcTimeoutin interfaceStorageProxyMBean
-
getCasContentionTimeout
public java.lang.Long getCasContentionTimeout()
- Specified by:
getCasContentionTimeoutin interfaceStorageProxyMBean
-
setCasContentionTimeout
public void setCasContentionTimeout(java.lang.Long timeoutInMillis)
- Specified by:
setCasContentionTimeoutin interfaceStorageProxyMBean
-
getRangeRpcTimeout
public java.lang.Long getRangeRpcTimeout()
- Specified by:
getRangeRpcTimeoutin interfaceStorageProxyMBean
-
setRangeRpcTimeout
public void setRangeRpcTimeout(java.lang.Long timeoutInMillis)
- Specified by:
setRangeRpcTimeoutin interfaceStorageProxyMBean
-
getTruncateRpcTimeout
public java.lang.Long getTruncateRpcTimeout()
- Specified by:
getTruncateRpcTimeoutin interfaceStorageProxyMBean
-
setTruncateRpcTimeout
public void setTruncateRpcTimeout(java.lang.Long timeoutInMillis)
- Specified by:
setTruncateRpcTimeoutin interfaceStorageProxyMBean
-
getNativeTransportMaxConcurrentConnections
public java.lang.Long getNativeTransportMaxConcurrentConnections()
- Specified by:
getNativeTransportMaxConcurrentConnectionsin interfaceStorageProxyMBean
-
setNativeTransportMaxConcurrentConnections
public void setNativeTransportMaxConcurrentConnections(java.lang.Long nativeTransportMaxConcurrentConnections)
- Specified by:
setNativeTransportMaxConcurrentConnectionsin interfaceStorageProxyMBean
-
getNativeTransportMaxConcurrentConnectionsPerIp
public java.lang.Long getNativeTransportMaxConcurrentConnectionsPerIp()
- Specified by:
getNativeTransportMaxConcurrentConnectionsPerIpin interfaceStorageProxyMBean
-
setNativeTransportMaxConcurrentConnectionsPerIp
public void setNativeTransportMaxConcurrentConnectionsPerIp(java.lang.Long nativeTransportMaxConcurrentConnections)
- Specified by:
setNativeTransportMaxConcurrentConnectionsPerIpin interfaceStorageProxyMBean
-
reloadTriggerClasses
public void reloadTriggerClasses()
- Specified by:
reloadTriggerClassesin interfaceStorageProxyMBean
-
getReadRepairAttempted
public long getReadRepairAttempted()
- Specified by:
getReadRepairAttemptedin interfaceStorageProxyMBean
-
getReadRepairRepairedBlocking
public long getReadRepairRepairedBlocking()
- Specified by:
getReadRepairRepairedBlockingin interfaceStorageProxyMBean
-
getReadRepairRepairedBackground
public long getReadRepairRepairedBackground()
- Specified by:
getReadRepairRepairedBackgroundin interfaceStorageProxyMBean
-
getReadRepairRepairTimedOut
public long getReadRepairRepairTimedOut()
- Specified by:
getReadRepairRepairTimedOutin interfaceStorageProxyMBean
-
getNumberOfTables
public int getNumberOfTables()
- Specified by:
getNumberOfTablesin interfaceStorageProxyMBean
-
getIdealConsistencyLevel
public java.lang.String getIdealConsistencyLevel()
- Specified by:
getIdealConsistencyLevelin interfaceStorageProxyMBean
-
setIdealConsistencyLevel
public java.lang.String setIdealConsistencyLevel(java.lang.String cl)
- Specified by:
setIdealConsistencyLevelin interfaceStorageProxyMBean
-
getOtcBacklogExpirationInterval
@Deprecated public int getOtcBacklogExpirationInterval()
Deprecated.- Specified by:
getOtcBacklogExpirationIntervalin interfaceStorageProxyMBean
-
setOtcBacklogExpirationInterval
@Deprecated public void setOtcBacklogExpirationInterval(int intervalInMillis)
Deprecated.- Specified by:
setOtcBacklogExpirationIntervalin interfaceStorageProxyMBean
-
enableRepairedDataTrackingForRangeReads
public void enableRepairedDataTrackingForRangeReads()
Description copied from interface:StorageProxyMBeanTracking and reporting of variances in the repaired data set across replicas at read time- Specified by:
enableRepairedDataTrackingForRangeReadsin interfaceStorageProxyMBean
-
disableRepairedDataTrackingForRangeReads
public void disableRepairedDataTrackingForRangeReads()
- Specified by:
disableRepairedDataTrackingForRangeReadsin interfaceStorageProxyMBean
-
getRepairedDataTrackingEnabledForRangeReads
public boolean getRepairedDataTrackingEnabledForRangeReads()
- Specified by:
getRepairedDataTrackingEnabledForRangeReadsin interfaceStorageProxyMBean
-
enableRepairedDataTrackingForPartitionReads
public void enableRepairedDataTrackingForPartitionReads()
- Specified by:
enableRepairedDataTrackingForPartitionReadsin interfaceStorageProxyMBean
-
disableRepairedDataTrackingForPartitionReads
public void disableRepairedDataTrackingForPartitionReads()
- Specified by:
disableRepairedDataTrackingForPartitionReadsin interfaceStorageProxyMBean
-
getRepairedDataTrackingEnabledForPartitionReads
public boolean getRepairedDataTrackingEnabledForPartitionReads()
- Specified by:
getRepairedDataTrackingEnabledForPartitionReadsin interfaceStorageProxyMBean
-
enableReportingUnconfirmedRepairedDataMismatches
public void enableReportingUnconfirmedRepairedDataMismatches()
- Specified by:
enableReportingUnconfirmedRepairedDataMismatchesin interfaceStorageProxyMBean
-
disableReportingUnconfirmedRepairedDataMismatches
public void disableReportingUnconfirmedRepairedDataMismatches()
- Specified by:
disableReportingUnconfirmedRepairedDataMismatchesin interfaceStorageProxyMBean
-
getReportingUnconfirmedRepairedDataMismatchesEnabled
public boolean getReportingUnconfirmedRepairedDataMismatchesEnabled()
- Specified by:
getReportingUnconfirmedRepairedDataMismatchesEnabledin interfaceStorageProxyMBean
-
getSnapshotOnRepairedDataMismatchEnabled
public boolean getSnapshotOnRepairedDataMismatchEnabled()
- Specified by:
getSnapshotOnRepairedDataMismatchEnabledin interfaceStorageProxyMBean
-
enableSnapshotOnRepairedDataMismatch
public void enableSnapshotOnRepairedDataMismatch()
- Specified by:
enableSnapshotOnRepairedDataMismatchin interfaceStorageProxyMBean
-
disableSnapshotOnRepairedDataMismatch
public void disableSnapshotOnRepairedDataMismatch()
- Specified by:
disableSnapshotOnRepairedDataMismatchin interfaceStorageProxyMBean
-
getSnapshotOnDuplicateRowDetectionEnabled
public boolean getSnapshotOnDuplicateRowDetectionEnabled()
- Specified by:
getSnapshotOnDuplicateRowDetectionEnabledin interfaceStorageProxyMBean
-
enableSnapshotOnDuplicateRowDetection
public void enableSnapshotOnDuplicateRowDetection()
- Specified by:
enableSnapshotOnDuplicateRowDetectionin interfaceStorageProxyMBean
-
disableSnapshotOnDuplicateRowDetection
public void disableSnapshotOnDuplicateRowDetection()
- Specified by:
disableSnapshotOnDuplicateRowDetectionin interfaceStorageProxyMBean
-
getCheckForDuplicateRowsDuringReads
public boolean getCheckForDuplicateRowsDuringReads()
- Specified by:
getCheckForDuplicateRowsDuringReadsin interfaceStorageProxyMBean
-
enableCheckForDuplicateRowsDuringReads
public void enableCheckForDuplicateRowsDuringReads()
- Specified by:
enableCheckForDuplicateRowsDuringReadsin interfaceStorageProxyMBean
-
disableCheckForDuplicateRowsDuringReads
public void disableCheckForDuplicateRowsDuringReads()
- Specified by:
disableCheckForDuplicateRowsDuringReadsin interfaceStorageProxyMBean
-
getCheckForDuplicateRowsDuringCompaction
public boolean getCheckForDuplicateRowsDuringCompaction()
- Specified by:
getCheckForDuplicateRowsDuringCompactionin interfaceStorageProxyMBean
-
enableCheckForDuplicateRowsDuringCompaction
public void enableCheckForDuplicateRowsDuringCompaction()
- Specified by:
enableCheckForDuplicateRowsDuringCompactionin interfaceStorageProxyMBean
-
disableCheckForDuplicateRowsDuringCompaction
public void disableCheckForDuplicateRowsDuringCompaction()
- Specified by:
disableCheckForDuplicateRowsDuringCompactionin interfaceStorageProxyMBean
-
initialLoadPartitionDenylist
public void initialLoadPartitionDenylist()
-
loadPartitionDenylist
public void loadPartitionDenylist()
- Specified by:
loadPartitionDenylistin interfaceStorageProxyMBean
-
getPartitionDenylistLoadAttempts
public int getPartitionDenylistLoadAttempts()
- Specified by:
getPartitionDenylistLoadAttemptsin interfaceStorageProxyMBean
-
getPartitionDenylistLoadSuccesses
public int getPartitionDenylistLoadSuccesses()
- Specified by:
getPartitionDenylistLoadSuccessesin interfaceStorageProxyMBean
-
setEnablePartitionDenylist
public void setEnablePartitionDenylist(boolean enabled)
- Specified by:
setEnablePartitionDenylistin interfaceStorageProxyMBean
-
setEnableDenylistWrites
public void setEnableDenylistWrites(boolean enabled)
- Specified by:
setEnableDenylistWritesin interfaceStorageProxyMBean
-
setEnableDenylistReads
public void setEnableDenylistReads(boolean enabled)
- Specified by:
setEnableDenylistReadsin interfaceStorageProxyMBean
-
setEnableDenylistRangeReads
public void setEnableDenylistRangeReads(boolean enabled)
- Specified by:
setEnableDenylistRangeReadsin interfaceStorageProxyMBean
-
setDenylistMaxKeysPerTable
public void setDenylistMaxKeysPerTable(int value)
- Specified by:
setDenylistMaxKeysPerTablein interfaceStorageProxyMBean
-
setDenylistMaxKeysTotal
public void setDenylistMaxKeysTotal(int value)
- Specified by:
setDenylistMaxKeysTotalin interfaceStorageProxyMBean
-
denylistKey
public boolean denylistKey(java.lang.String keyspace, java.lang.String table, java.lang.String partitionKeyAsString)Actively denies read and write access to the provided Partition Key- Specified by:
denylistKeyin interfaceStorageProxyMBean- Parameters:
keyspace- Name of keyspace containing the PK you wish to deny access totable- Name of table containing the PK you wish to deny access topartitionKeyAsString- String representation of the PK you want to deny access to- Returns:
- true if successfully added, false if failure
-
removeDenylistKey
public boolean removeDenylistKey(java.lang.String keyspace, java.lang.String table, java.lang.String partitionKeyAsString)Attempts to remove the provided pk from the ks + table deny list- Specified by:
removeDenylistKeyin interfaceStorageProxyMBean- Parameters:
keyspace- Keyspace containing the pk to remove the denylist entry fortable- Table containing the pk to remove denylist entry forpartitionKeyAsString- String representation of the PK you want to re-allow access to- Returns:
- true if found and removed, false if not
-
isKeyDenylisted
public boolean isKeyDenylisted(java.lang.String keyspace, java.lang.String table, java.lang.String partitionKeyAsString)A simple check for operators to determine what the denylisted value for a pk is on a node- Specified by:
isKeyDenylistedin interfaceStorageProxyMBean
-
logBlockingReadRepairAttemptsForNSeconds
public void logBlockingReadRepairAttemptsForNSeconds(int seconds)
- Specified by:
logBlockingReadRepairAttemptsForNSecondsin interfaceStorageProxyMBean
-
isLoggingReadRepairs
public boolean isLoggingReadRepairs()
- Specified by:
isLoggingReadRepairsin interfaceStorageProxyMBean
-
setPaxosVariant
public void setPaxosVariant(java.lang.String variant)
- Specified by:
setPaxosVariantin interfaceStorageProxyMBean
-
getPaxosVariant
public java.lang.String getPaxosVariant()
- Specified by:
getPaxosVariantin interfaceStorageProxyMBean
-
getUseStatementsEnabled
public boolean getUseStatementsEnabled()
- Specified by:
getUseStatementsEnabledin interfaceStorageProxyMBean
-
setUseStatementsEnabled
public void setUseStatementsEnabled(boolean enabled)
- Specified by:
setUseStatementsEnabledin interfaceStorageProxyMBean
-
setPaxosContentionStrategy
public void setPaxosContentionStrategy(java.lang.String spec)
- Specified by:
setPaxosContentionStrategyin interfaceStorageProxyMBean
-
getPaxosContentionStrategy
public java.lang.String getPaxosContentionStrategy()
- Specified by:
getPaxosContentionStrategyin interfaceStorageProxyMBean
-
setPaxosCoordinatorLockingDisabled
public void setPaxosCoordinatorLockingDisabled(boolean disabled)
- Specified by:
setPaxosCoordinatorLockingDisabledin interfaceStorageProxyMBean
-
getPaxosCoordinatorLockingDisabled
public boolean getPaxosCoordinatorLockingDisabled()
- Specified by:
getPaxosCoordinatorLockingDisabledin interfaceStorageProxyMBean
-
-