Package org.infinispan.expiration.impl
Interface InternalExpirationManager<K,V>
-
- All Superinterfaces:
ExpirationManager<K,V>
- All Known Implementing Classes:
ClusterExpirationManager
,ExpirationManagerImpl
,TxClusterExpirationManager
public interface InternalExpirationManager<K,V> extends ExpirationManager<K,V>
Interface describing the internal operations for the the ExpirationManager.- Since:
- 9.3
- Author:
- wburns
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description CompletableFuture<Boolean>
entryExpiredInMemory(InternalCacheEntry<K,V> entry, long currentTime)
This should be invoked passing in an entry that is now expired.CompletableFuture<Boolean>
entryExpiredInMemoryFromIteration(InternalCacheEntry<K,V> entry, long currentTime)
This method is very similar toentryExpiredInMemory(InternalCacheEntry, long)
except that it does the bare minimum when an entry expired to guarantee if the entry is valid or not.void
handleInStoreExpiration(K key)
This is to be invoked when a store entry expires.void
handleInStoreExpiration(MarshalledEntry<K,V> marshalledEntry)
This is to be invoked when a store entry expires and the value and/or metadata is available to be used.CompletableFuture<Long>
retrieveLastAccess(Object key, Object value, int segment)
Retrieves the last access time for the given key in the data container if it is using max idle.-
Methods inherited from interface org.infinispan.expiration.ExpirationManager
handleInMemoryExpiration, isEnabled, processExpiration, registerWriteIncoming, unregisterWrite
-
-
-
-
Method Detail
-
entryExpiredInMemory
CompletableFuture<Boolean> entryExpiredInMemory(InternalCacheEntry<K,V> entry, long currentTime)
This should be invoked passing in an entry that is now expired. This method may attempt to lock this key to preserve atomicity. This method should be invoked when an entry was read via get but found to be expired.This method returns true if the entry was removed due to expiration or false if the entry was not removed due to expiration
- Parameters:
entry
- the entry that has expiredcurrentTime
- the current time when it expired- Returns:
- if this entry actually expired or not
-
entryExpiredInMemoryFromIteration
CompletableFuture<Boolean> entryExpiredInMemoryFromIteration(InternalCacheEntry<K,V> entry, long currentTime)
This method is very similar toentryExpiredInMemory(InternalCacheEntry, long)
except that it does the bare minimum when an entry expired to guarantee if the entry is valid or not. This is important to reduce time spent per entry when iterating. This method may not actually remove the entry and may just return immediately if it is safe to do so.- Parameters:
entry
- the entry that has expiredcurrentTime
- the current time when it expired- Returns:
- if this entry actually expired or not
-
handleInStoreExpiration
void handleInStoreExpiration(K key)
This is to be invoked when a store entry expires. This method may attempt to lock this key to preserve atomicity.Note this method doesn't currently take a
InternalCacheEntry
and this is due to a limitation in the cache store API. This may cause some values to be removed if they were updated at the same time.- Specified by:
handleInStoreExpiration
in interfaceExpirationManager<K,V>
- Parameters:
key
- the key of the expired entry
-
handleInStoreExpiration
void handleInStoreExpiration(MarshalledEntry<K,V> marshalledEntry)
This is to be invoked when a store entry expires and the value and/or metadata is available to be used. This method is preferred overExpirationManager.handleInStoreExpiration(Object)
as it allows for more specific expiration to possibly occur.- Specified by:
handleInStoreExpiration
in interfaceExpirationManager<K,V>
- Parameters:
marshalledEntry
- the entry that can be unmarshalled as needed
-
retrieveLastAccess
CompletableFuture<Long> retrieveLastAccess(Object key, Object value, int segment)
Retrieves the last access time for the given key in the data container if it is using max idle. If the entry is not in the container or it is expired it will return null. If the entry is present but cannot expire via max idle, it will return -1 If the entry is present and can expire via max idle but hasn't it will return a number > 0- Specified by:
retrieveLastAccess
in interfaceExpirationManager<K,V>
- Parameters:
key
- the key to retrieve the access time forvalue
- the value to match if desired (this can be null)segment
- the segment for the given key- Returns:
- the last access time if available
-
-