@Override public long getFreshTimestamp() { return checkAndUpdateLowerBound(delegate::getFreshTimestamp, x -> x, x -> x); }
@Override public StartAtlasDbTransactionResponse startAtlasDbTransaction(IdentifiedTimeLockRequest request) { return checkAndUpdateLowerBound(() -> delegate.startAtlasDbTransaction(request), StartAtlasDbTransactionResponse::freshTimestamp, StartAtlasDbTransactionResponse::freshTimestamp); }
@Override public TimestampRange getFreshTimestamps(int numTimestampsRequested) { return checkAndUpdateLowerBound(() -> delegate.getFreshTimestamps(numTimestampsRequested), TimestampRange::getLowerBound, TimestampRange::getUpperBound); }
@Override public StartIdentifiedAtlasDbTransactionResponse startIdentifiedAtlasDbTransaction( StartIdentifiedAtlasDbTransactionRequest request) { return checkAndUpdateLowerBound(() -> delegate.startIdentifiedAtlasDbTransaction(request), r -> r.startTimestampAndPartition().timestamp(), r -> r.startTimestampAndPartition().timestamp()); }
@Override public long getFreshTimestamp() { return checkAndUpdateLowerBound(delegate::getFreshTimestamp, x -> x, x -> x); }
@Override public TimestampRange getFreshTimestamps(int numTimestampsRequested) { return checkAndUpdateLowerBound(() -> delegate.getFreshTimestamps(numTimestampsRequested), TimestampRange::getLowerBound, TimestampRange::getUpperBound); }
@Override public StartAtlasDbTransactionResponse startAtlasDbTransaction(IdentifiedTimeLockRequest request) { return checkAndUpdateLowerBound(() -> delegate.startAtlasDbTransaction(request), StartAtlasDbTransactionResponse::freshTimestamp, StartAtlasDbTransactionResponse::freshTimestamp); }
@Override public StartIdentifiedAtlasDbTransactionResponse startIdentifiedAtlasDbTransaction( StartIdentifiedAtlasDbTransactionRequest request) { return checkAndUpdateLowerBound(() -> delegate.startIdentifiedAtlasDbTransaction(request), r -> r.startTimestampAndPartition().timestamp(), r -> r.startTimestampAndPartition().timestamp()); }