Interface ResilienceStrategy<K,V>
-
- Type Parameters:
K- the type of the keys used to access data within the cacheV- the type of the values held within the cache
public interface ResilienceStrategy<K,V>A strategy for providing cache resilience in the face of failure.An implementation of this interface is used by a cache to decide how to recover after internal components of the cache fail. Implementations of these methods are expected to take suitable recovery steps. They can then choose between allowing the operation to terminate successfully, or throw an exception which will be propagated to the thread calling in to the cache.
Resilience in this context refers only to resilience against cache failures and not to resilience against failures of any underlying
CacheLoaderWriter. To this end writer or loader failures will only be reported to the strategy in the context of a coincident cache failure. Isolated writer and loader exceptions will be thrown directly.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description voidclearFailure(StoreAccessException e)Called when aCache.clear()fails due to an underlying store failure.booleancontainsKeyFailure(K key, StoreAccessException e)Called when aCache.containsKey(java.lang.Object)fails due to an underlying store failure, and the resultant cache load operation also fails.java.util.Map<K,V>getAllFailure(java.lang.Iterable<? extends K> keys, StoreAccessException e)Called when aCache.getAll(java.util.Set)fails on a cache without a cache loader due to an underlying store failure.VgetFailure(K key, StoreAccessException e)Called when aCache.get(java.lang.Object)fails on a cache without a cache loader due to an underlying store failure.Cache.Entry<K,V>iteratorFailure(StoreAccessException e)Called when a cache iterator advancement fails due to an underlying store failure.voidputAllFailure(java.util.Map<? extends K,? extends V> entries, StoreAccessException e)Called when aCache.putAll(java.util.Map)fails due to an underlying store failure.voidputFailure(K key, V value, StoreAccessException e)Called when aCache.put(java.lang.Object, java.lang.Object)fails due to an underlying store failure.VputIfAbsentFailure(K key, V value, StoreAccessException e)Called when aCache.putIfAbsent(java.lang.Object, java.lang.Object)fails due to an underlying store failure.voidremoveAllFailure(java.lang.Iterable<? extends K> keys, StoreAccessException e)Called when aCache.removeAll(java.util.Set)fails due to an underlying store failure.voidremoveFailure(K key, StoreAccessException e)Called when aCache.remove(java.lang.Object)fails due to an underlying store failure.booleanremoveFailure(K key, V value, StoreAccessException e)Called when aCache.remove(Object, Object)fails due to an underlying store failure.VreplaceFailure(K key, V value, StoreAccessException e)Called when aCache.replace(java.lang.Object, java.lang.Object)fails due to an underlying store failure.booleanreplaceFailure(K key, V value, V newValue, StoreAccessException e)Called when aCache.replace(java.lang.Object, java.lang.Object, java.lang.Object)fails due to an underlying store failure.
-
-
-
Method Detail
-
getFailure
V getFailure(K key, StoreAccessException e)
Called when aCache.get(java.lang.Object)fails on a cache without a cache loader due to an underlying store failure.- Parameters:
key- the key being retrievede- the triggered failure- Returns:
- the value to return from the operation
-
containsKeyFailure
boolean containsKeyFailure(K key, StoreAccessException e)
Called when aCache.containsKey(java.lang.Object)fails due to an underlying store failure, and the resultant cache load operation also fails.- Parameters:
key- the key being queriede- the triggered failure- Returns:
- the value to return from the operation
-
putFailure
void putFailure(K key, V value, StoreAccessException e)
Called when aCache.put(java.lang.Object, java.lang.Object)fails due to an underlying store failure.- Parameters:
key- the key being putvalue- the value being pute- the triggered failure
-
removeFailure
void removeFailure(K key, StoreAccessException e)
Called when aCache.remove(java.lang.Object)fails due to an underlying store failure.- Parameters:
key- the key being removede- the triggered failure
-
clearFailure
void clearFailure(StoreAccessException e)
Called when aCache.clear()fails due to an underlying store failure.- Parameters:
e- the triggered failure
-
iteratorFailure
Cache.Entry<K,V> iteratorFailure(StoreAccessException e)
Called when a cache iterator advancement fails due to an underlying store failure.- Parameters:
e- the triggered failure- Returns:
- an entry to return on a failed iteration
-
putIfAbsentFailure
V putIfAbsentFailure(K key, V value, StoreAccessException e)
Called when aCache.putIfAbsent(java.lang.Object, java.lang.Object)fails due to an underlying store failure.If it is known at the time of calling that the key is absent from the cache (and the writer if one is present) then
knownToBeAbsentwill betrue.- Parameters:
key- the key being putvalue- the value being pute- the triggered failure- Returns:
- the value to return from the operation
-
removeFailure
boolean removeFailure(K key, V value, StoreAccessException e)
Called when aCache.remove(Object, Object)fails due to an underlying store failure.- Parameters:
key- the key being removedvalue- the value being removede- the triggered failure- Returns:
- the value to return from the operation
-
replaceFailure
V replaceFailure(K key, V value, StoreAccessException e)
Called when aCache.replace(java.lang.Object, java.lang.Object)fails due to an underlying store failure.- Parameters:
key- the key being replacedvalue- the value being replacede- the triggered failure- Returns:
- the value to return from the operation
-
replaceFailure
boolean replaceFailure(K key, V value, V newValue, StoreAccessException e)
Called when aCache.replace(java.lang.Object, java.lang.Object, java.lang.Object)fails due to an underlying store failure.- Parameters:
key- the key being replacedvalue- the expected valuenewValue- the replacement valuee- the triggered failure- Returns:
- the value to return from the operation
-
getAllFailure
java.util.Map<K,V> getAllFailure(java.lang.Iterable<? extends K> keys, StoreAccessException e)
Called when aCache.getAll(java.util.Set)fails on a cache without a cache loader due to an underlying store failure.- Parameters:
keys- the keys being retrievede- the triggered failure- Returns:
- the value to return from the operation
-
putAllFailure
void putAllFailure(java.util.Map<? extends K,? extends V> entries, StoreAccessException e)
Called when aCache.putAll(java.util.Map)fails due to an underlying store failure.- Parameters:
entries- the entries being pute- the triggered failure
-
removeAllFailure
void removeAllFailure(java.lang.Iterable<? extends K> keys, StoreAccessException e)
Called when aCache.removeAll(java.util.Set)fails due to an underlying store failure.- Parameters:
keys- the keys being removede- the triggered failure
-
-