public final class GammaStmConfig extends Object
Modifier and Type | Field and Description |
---|---|
BackoffPolicy |
backoffPolicy
If a transaction fails for a read/write conflict it should not hammer the system by trying again and running in the same conflict
The default backoff policy helps to back threads of by sleeping/yielding.
|
boolean |
blockingAllowed
The default behavior if blocking transactions are allowed.
|
boolean |
controlFlowErrorsReused
If control flow errors should be reused.
|
boolean |
dirtyCheck
The default behavior for writing 'dirty' changes for an update transaction.
|
boolean |
interruptible
The default behavior for blocking transactions if they are allowed to be interrupted.
|
boolean |
isFat
Should only be used internally to select fat instead of lean transactions.
|
IsolationLevel |
isolationLevel
The default isolation level for all transactions executed by the GammaStm.
|
int |
maxFixedLengthTransactionSize
The maximum size size of a fixed length transaction.
|
int |
maximumPoorMansConflictScanLength
The maximum size of a transaction that is allowed to do a full conflict scan instead of arrive/depart operations.
|
int |
maxRetries
The default number of retries a transaction is allowed to do if a transaction fails for a read/write conflict.
|
int |
minimalVariableLengthTransactionSize
The minimal size for the internal array for a variable length transaction.
|
List<TxnListener> |
permanentListeners
Contains the permanent TxnListeners that should always be executed.
|
PropagationLevel |
propagationLevel
The default propagation level for all transactions executed by the Stm.
|
int |
readBiasedThreshold
The number of times a transactional object is only read before becoming readbiased.
|
LockMode |
readLockMode
The default isolation level for all reads.
|
boolean |
readonly
The default readonly behavior.
|
boolean |
speculativeConfigEnabled
The GammaStm makes use of a speculative mechanism to select the optimal transaction settings/implementation for executing a transactional closure.
|
int |
spinCount
The default number of spins a transaction is allowed for a read/write/commit if something is locked.
|
long |
timeoutNs
The default timeout for a transaction if it blocks.
|
TraceLevel |
traceLevel
With the trace level you have control if you get output of transactions executing.
|
boolean |
trackReads
If reads should be tracked by the transaction (this is something else than (semi)visible reads).
|
LockMode |
writeLockMode
The default isolation level for all writes.
|
Constructor and Description |
---|
GammaStmConfig() |
public List<TxnListener> permanentListeners
public PropagationLevel propagationLevel
public IsolationLevel isolationLevel
public LockMode readLockMode
public LockMode writeLockMode
public boolean blockingAllowed
public boolean interruptible
public long timeoutNs
public boolean readonly
public int spinCount
public boolean dirtyCheck
public int minimalVariableLengthTransactionSize
public boolean trackReads
public int maxRetries
public boolean speculativeConfigEnabled
public int maxFixedLengthTransactionSize
public BackoffPolicy backoffPolicy
public TraceLevel traceLevel
public boolean controlFlowErrorsReused
ControlFlowError
like
the ReadWriteConflict
, RetryError
and the
SpeculativeConfigurationError
.public boolean isFat
public int maximumPoorMansConflictScanLength
public int readBiasedThreshold
public void validate()
IllegalStateException
- if the configuration isn't valid.Copyright © 2020. All rights reserved.