Class NoOpTransactionScopedCache
- java.lang.Object
-
- com.palantir.atlasdb.keyvalue.api.cache.NoOpTransactionScopedCache
-
- All Implemented Interfaces:
TransactionScopedCache
public final class NoOpTransactionScopedCache extends Object implements TransactionScopedCache
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static TransactionScopedCache
create()
TransactionScopedCache
createReadOnlyCache(com.palantir.lock.watch.CommitUpdate commitUpdate)
void
delete(TableReference tableReference, Set<Cell> cells)
void
finalise()
This method should be called before retrieving the value or hit digest, as it guarantees that no more reads or writes will be performed on the cache.Map<Cell,byte[]>
get(TableReference tableReference, Set<Cell> cells, java.util.function.BiFunction<TableReference,Set<Cell>,com.google.common.util.concurrent.ListenableFuture<Map<Cell,byte[]>>> valueLoader)
This should be used for performing *synchronous* gets.com.google.common.util.concurrent.ListenableFuture<Map<Cell,byte[]>>
getAsync(TableReference tableReference, Set<Cell> cells, java.util.function.BiFunction<TableReference,Set<Cell>,com.google.common.util.concurrent.ListenableFuture<Map<Cell,byte[]>>> valueLoader)
HitDigest
getHitDigest()
NavigableMap<byte[],RowResult<byte[]>>
getRows(TableReference tableRef, Iterable<byte[]> rows, ColumnSelection columnSelection, java.util.function.Function<Set<Cell>,Map<Cell,byte[]>> cellLoader, java.util.function.Function<Iterable<byte[]>,NavigableMap<byte[],RowResult<byte[]>>> rowLoader)
The cache will try to fulfil as much of the request as possible with cached values.ValueDigest
getValueDigest()
void
write(TableReference tableReference, Map<Cell,byte[]> values)
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.palantir.atlasdb.keyvalue.api.cache.TransactionScopedCache
hasUpdates
-
-
-
-
Method Detail
-
create
public static TransactionScopedCache create()
-
write
public void write(TableReference tableReference, Map<Cell,byte[]> values)
- Specified by:
write
in interfaceTransactionScopedCache
-
delete
public void delete(TableReference tableReference, Set<Cell> cells)
- Specified by:
delete
in interfaceTransactionScopedCache
-
get
public Map<Cell,byte[]> get(TableReference tableReference, Set<Cell> cells, java.util.function.BiFunction<TableReference,Set<Cell>,com.google.common.util.concurrent.ListenableFuture<Map<Cell,byte[]>>> valueLoader)
Description copied from interface:TransactionScopedCache
This should be used for performing *synchronous* gets. The reason the value loader function returns a listenable future is to optimise parallel requests to the cache: only the code that directly affects the state of the cache is synchronised, while loads from the database are done outside synchronised blocks.- Specified by:
get
in interfaceTransactionScopedCache
-
getAsync
public com.google.common.util.concurrent.ListenableFuture<Map<Cell,byte[]>> getAsync(TableReference tableReference, Set<Cell> cells, java.util.function.BiFunction<TableReference,Set<Cell>,com.google.common.util.concurrent.ListenableFuture<Map<Cell,byte[]>>> valueLoader)
- Specified by:
getAsync
in interfaceTransactionScopedCache
-
getRows
public NavigableMap<byte[],RowResult<byte[]>> getRows(TableReference tableRef, Iterable<byte[]> rows, ColumnSelection columnSelection, java.util.function.Function<Set<Cell>,Map<Cell,byte[]>> cellLoader, java.util.function.Function<Iterable<byte[]>,NavigableMap<byte[],RowResult<byte[]>>> rowLoader)
Description copied from interface:TransactionScopedCache
The cache will try to fulfil as much of the request as possible with cached values. In the case where some of the columns are present in the cache for a row, the cellLoader will be used to read the remaining cells remotely. For rows that have none of the columns present in the cache, the rowLoader will be used. Note that this may result in two KVS reads, but it is expected to be offset by not having to read the already cached values. The result map usesUnsignedBytes.lexicographicalComparator()
on the keys, so there will be no duplicate rows, even if duplicates were specified in rows. Any row with no columns present will be absent in the result map, as long as the rowLoader behaves in the same way.- Specified by:
getRows
in interfaceTransactionScopedCache
-
finalise
public void finalise()
Description copied from interface:TransactionScopedCache
This method should be called before retrieving the value or hit digest, as it guarantees that no more reads or writes will be performed on the cache.- Specified by:
finalise
in interfaceTransactionScopedCache
-
getValueDigest
public ValueDigest getValueDigest()
- Specified by:
getValueDigest
in interfaceTransactionScopedCache
-
getHitDigest
public HitDigest getHitDigest()
- Specified by:
getHitDigest
in interfaceTransactionScopedCache
-
createReadOnlyCache
public TransactionScopedCache createReadOnlyCache(com.palantir.lock.watch.CommitUpdate commitUpdate)
- Specified by:
createReadOnlyCache
in interfaceTransactionScopedCache
-
-