Class InstrumentedTransaction
- java.lang.Object
-
- com.apple.foundationdb.record.provider.foundationdb.InstrumentedTransaction
-
- All Implemented Interfaces:
ReadTransaction
,ReadTransactionContext
,Transaction
,TransactionContext
,AutoCloseable
@API(INTERNAL) public class InstrumentedTransaction extends Object implements Transaction
Wrapper aroundTransaction
that instruments certain calls to expose their behavior withFDBStoreTimer
metrics.
-
-
Field Summary
Fields Modifier and Type Field Description protected boolean
enableAssertions
protected static int
MAX_KEY_LENGTH
protected static int
MAX_VALUE_LENGTH
protected ReadTransaction
snapshot
protected StoreTimer
timer
protected T
underlying
-
Fields inherited from interface com.apple.foundationdb.ReadTransaction
ROW_LIMIT_UNLIMITED
-
-
Constructor Summary
Constructors Constructor Description InstrumentedTransaction(StoreTimer timer, Transaction underlying, boolean enableAssertions)
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
addReadConflictKey(byte[] key)
boolean
addReadConflictKeyIfNotSnapshot(byte[] key)
void
addReadConflictRange(byte[] keyBegin, byte[] keyEnd)
boolean
addReadConflictRangeIfNotSnapshot(byte[] keyBegin, byte[] keyEnd)
void
addWriteConflictKey(byte[] key)
void
addWriteConflictRange(byte[] keyBegin, byte[] keyEnd)
void
cancel()
protected byte[]
checkKey(byte[] key)
protected KeySelector
checkKey(KeySelector keySelector)
protected Range
checkKey(Range range)
protected byte[]
checkValue(byte[] key, byte[] value)
void
clear(byte[] key)
void
clear(byte[] keyBegin, byte[] keyEnd)
void
clear(Range range)
void
clearRangeStartsWith(byte[] prefix)
Deprecated.void
close()
CompletableFuture<Void>
commit()
CompletableFuture<byte[]>
get(byte[] key)
CompletableFuture<Long>
getApproximateSize()
Long
getCommittedVersion()
Database
getDatabase()
Executor
getExecutor()
CompletableFuture<byte[]>
getKey(KeySelector keySelector)
AsyncIterable<KeyValue>
getRange(byte[] begin, byte[] end)
AsyncIterable<KeyValue>
getRange(byte[] begin, byte[] end, int limit)
AsyncIterable<KeyValue>
getRange(byte[] begin, byte[] end, int limit, boolean reverse)
AsyncIterable<KeyValue>
getRange(byte[] begin, byte[] end, int limit, boolean reverse, StreamingMode streamingMode)
AsyncIterable<KeyValue>
getRange(KeySelector begin, KeySelector end)
AsyncIterable<KeyValue>
getRange(KeySelector begin, KeySelector end, int limit)
AsyncIterable<KeyValue>
getRange(KeySelector begin, KeySelector end, int limit, boolean reverse)
AsyncIterable<KeyValue>
getRange(KeySelector begin, KeySelector end, int limit, boolean reverse, StreamingMode streamingMode)
AsyncIterable<KeyValue>
getRange(Range range)
AsyncIterable<KeyValue>
getRange(Range range, int limit)
AsyncIterable<KeyValue>
getRange(Range range, int limit, boolean reverse)
AsyncIterable<KeyValue>
getRange(Range range, int limit, boolean reverse, StreamingMode streamingMode)
CompletableFuture<Long>
getReadVersion()
CompletableFuture<byte[]>
getVersionstamp()
protected void
increment(StoreTimer.Count count)
protected void
increment(StoreTimer.Count count, int amount)
boolean
isSnapshot()
protected String
loggable(byte[] value)
void
mutate(MutationType opType, byte[] key, byte[] param)
CompletableFuture<Transaction>
onError(Throwable throwable)
TransactionOptions
options()
<T> T
read(Function<? super ReadTransaction,T> function)
<T> CompletableFuture<T>
readAsync(Function<? super ReadTransaction,? extends CompletableFuture<T>> function)
protected byte[]
recordRead(byte[] value)
protected KeyValue
recordRead(KeyValue keyValue)
protected void
recordSinceNanoTime(StoreTimer.Event event, long nanoTime)
<T> T
run(Function<? super Transaction,T> function)
<T> CompletableFuture<T>
runAsync(Function<? super Transaction,? extends CompletableFuture<T>> function)
void
set(byte[] key, byte[] value)
void
setReadVersion(long l)
ReadTransaction
snapshot()
CompletableFuture<Void>
watch(byte[] bytes)
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.apple.foundationdb.ReadTransaction
addReadConflictKeyIfNotSnapshot, addReadConflictRangeIfNotSnapshot, get, getKey, getRange, getRange, getRange, getRange, getRange, getRange, getRange, getRange, getRange, getRange, getRange, getRange, options
-
Methods inherited from interface com.apple.foundationdb.ReadTransactionContext
getExecutor, read, readAsync
-
-
-
-
Field Detail
-
snapshot
@Nullable protected ReadTransaction snapshot
-
MAX_KEY_LENGTH
protected static final int MAX_KEY_LENGTH
- See Also:
- Constant Field Values
-
MAX_VALUE_LENGTH
protected static final int MAX_VALUE_LENGTH
- See Also:
- Constant Field Values
-
timer
@Nullable protected StoreTimer timer
-
underlying
@Nonnull protected T extends ReadTransaction underlying
-
enableAssertions
protected final boolean enableAssertions
-
-
Constructor Detail
-
InstrumentedTransaction
public InstrumentedTransaction(@Nullable StoreTimer timer, @Nonnull Transaction underlying, boolean enableAssertions)
-
-
Method Detail
-
addReadConflictRange
public void addReadConflictRange(byte[] keyBegin, byte[] keyEnd)
- Specified by:
addReadConflictRange
in interfaceTransaction
-
addReadConflictKey
public void addReadConflictKey(byte[] key)
- Specified by:
addReadConflictKey
in interfaceTransaction
-
addWriteConflictRange
public void addWriteConflictRange(byte[] keyBegin, byte[] keyEnd)
- Specified by:
addWriteConflictRange
in interfaceTransaction
-
addWriteConflictKey
public void addWriteConflictKey(byte[] key)
- Specified by:
addWriteConflictKey
in interfaceTransaction
-
set
public void set(byte[] key, byte[] value)
- Specified by:
set
in interfaceTransaction
-
clear
public void clear(byte[] key)
- Specified by:
clear
in interfaceTransaction
-
clear
public void clear(byte[] keyBegin, byte[] keyEnd)
- Specified by:
clear
in interfaceTransaction
-
clear
public void clear(Range range)
- Specified by:
clear
in interfaceTransaction
-
clearRangeStartsWith
@Deprecated public void clearRangeStartsWith(byte[] prefix)
Deprecated.- Specified by:
clearRangeStartsWith
in interfaceTransaction
-
mutate
public void mutate(MutationType opType, byte[] key, byte[] param)
- Specified by:
mutate
in interfaceTransaction
-
commit
public CompletableFuture<Void> commit()
- Specified by:
commit
in interfaceTransaction
-
getCommittedVersion
public Long getCommittedVersion()
- Specified by:
getCommittedVersion
in interfaceTransaction
-
getVersionstamp
public CompletableFuture<byte[]> getVersionstamp()
- Specified by:
getVersionstamp
in interfaceTransaction
-
getApproximateSize
public CompletableFuture<Long> getApproximateSize()
- Specified by:
getApproximateSize
in interfaceTransaction
-
onError
public CompletableFuture<Transaction> onError(Throwable throwable)
- Specified by:
onError
in interfaceTransaction
-
cancel
public void cancel()
- Specified by:
cancel
in interfaceTransaction
-
watch
public CompletableFuture<Void> watch(byte[] bytes) throws FDBException
- Specified by:
watch
in interfaceTransaction
- Throws:
FDBException
-
getDatabase
public Database getDatabase()
- Specified by:
getDatabase
in interfaceTransaction
-
run
public <T> T run(Function<? super Transaction,T> function)
- Specified by:
run
in interfaceTransaction
- Specified by:
run
in interfaceTransactionContext
-
runAsync
public <T> CompletableFuture<T> runAsync(Function<? super Transaction,? extends CompletableFuture<T>> function)
- Specified by:
runAsync
in interfaceTransaction
- Specified by:
runAsync
in interfaceTransactionContext
-
close
public void close()
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceTransaction
-
isSnapshot
public boolean isSnapshot()
- Specified by:
isSnapshot
in interfaceReadTransaction
-
snapshot
public ReadTransaction snapshot()
- Specified by:
snapshot
in interfaceReadTransaction
-
getReadVersion
public CompletableFuture<Long> getReadVersion()
- Specified by:
getReadVersion
in interfaceReadTransaction
-
setReadVersion
public void setReadVersion(long l)
- Specified by:
setReadVersion
in interfaceReadTransaction
-
addReadConflictRangeIfNotSnapshot
public boolean addReadConflictRangeIfNotSnapshot(byte[] keyBegin, byte[] keyEnd)
- Specified by:
addReadConflictRangeIfNotSnapshot
in interfaceReadTransaction
-
addReadConflictKeyIfNotSnapshot
public boolean addReadConflictKeyIfNotSnapshot(byte[] key)
- Specified by:
addReadConflictKeyIfNotSnapshot
in interfaceReadTransaction
-
get
public CompletableFuture<byte[]> get(byte[] key)
- Specified by:
get
in interfaceReadTransaction
-
getKey
public CompletableFuture<byte[]> getKey(KeySelector keySelector)
- Specified by:
getKey
in interfaceReadTransaction
-
getRange
public AsyncIterable<KeyValue> getRange(KeySelector begin, KeySelector end)
- Specified by:
getRange
in interfaceReadTransaction
-
getRange
public AsyncIterable<KeyValue> getRange(KeySelector begin, KeySelector end, int limit)
- Specified by:
getRange
in interfaceReadTransaction
-
getRange
public AsyncIterable<KeyValue> getRange(KeySelector begin, KeySelector end, int limit, boolean reverse)
- Specified by:
getRange
in interfaceReadTransaction
-
getRange
public AsyncIterable<KeyValue> getRange(KeySelector begin, KeySelector end, int limit, boolean reverse, StreamingMode streamingMode)
- Specified by:
getRange
in interfaceReadTransaction
-
getRange
public AsyncIterable<KeyValue> getRange(byte[] begin, byte[] end)
- Specified by:
getRange
in interfaceReadTransaction
-
getRange
public AsyncIterable<KeyValue> getRange(byte[] begin, byte[] end, int limit)
- Specified by:
getRange
in interfaceReadTransaction
-
getRange
public AsyncIterable<KeyValue> getRange(byte[] begin, byte[] end, int limit, boolean reverse)
- Specified by:
getRange
in interfaceReadTransaction
-
getRange
public AsyncIterable<KeyValue> getRange(byte[] begin, byte[] end, int limit, boolean reverse, StreamingMode streamingMode)
- Specified by:
getRange
in interfaceReadTransaction
-
getRange
public AsyncIterable<KeyValue> getRange(Range range)
- Specified by:
getRange
in interfaceReadTransaction
-
getRange
public AsyncIterable<KeyValue> getRange(Range range, int limit)
- Specified by:
getRange
in interfaceReadTransaction
-
getRange
public AsyncIterable<KeyValue> getRange(Range range, int limit, boolean reverse)
- Specified by:
getRange
in interfaceReadTransaction
-
getRange
public AsyncIterable<KeyValue> getRange(Range range, int limit, boolean reverse, StreamingMode streamingMode)
- Specified by:
getRange
in interfaceReadTransaction
-
options
public TransactionOptions options()
- Specified by:
options
in interfaceReadTransaction
-
read
public <T> T read(Function<? super ReadTransaction,T> function)
- Specified by:
read
in interfaceReadTransactionContext
-
readAsync
public <T> CompletableFuture<T> readAsync(Function<? super ReadTransaction,? extends CompletableFuture<T>> function)
- Specified by:
readAsync
in interfaceReadTransactionContext
-
getExecutor
public Executor getExecutor()
- Specified by:
getExecutor
in interfaceReadTransactionContext
-
increment
protected void increment(StoreTimer.Count count)
-
increment
protected void increment(StoreTimer.Count count, int amount)
-
recordSinceNanoTime
protected void recordSinceNanoTime(StoreTimer.Event event, long nanoTime)
-
checkKey
@Nonnull protected KeySelector checkKey(@Nonnull KeySelector keySelector)
-
-