Package io.debezium.util
Interface BoundedConcurrentHashMap.EvictionPolicy<K,V>
- All Known Implementing Classes:
BoundedConcurrentHashMap.LIRS
,BoundedConcurrentHashMap.LRU
,BoundedConcurrentHashMap.NullEvictionPolicy
- Enclosing class:
- BoundedConcurrentHashMap<K,
V>
public static interface BoundedConcurrentHashMap.EvictionPolicy<K,V>
-
Field Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
clear()
Invoked to notify EvictionPolicy implementation that all Segment entries have been cleared.createNewEntry
(K key, int hash, BoundedConcurrentHashMap.HashEntry<K, V> next, V value) execute()
Invokes eviction policy algorithm and returns set of evicted entries.boolean
Invoked to notify EvictionPolicy implementation that an entry in Segment has been accessed.Invoked to notify EvictionPolicy implementation that there has been an attempt to access an entry in Segment, however that entry was not present in Segment.void
Invoked to notify EvictionPolicy implementation that an entry e has been removed from Segment.strategy()
Returns type of eviction algorithm (strategy).boolean
Returns true if batching threshold has expired, false otherwise.
-
Field Details
-
MAX_BATCH_SIZE
static final int MAX_BATCH_SIZE- See Also:
-
-
Method Details
-
createNewEntry
BoundedConcurrentHashMap.HashEntry<K,V> createNewEntry(K key, int hash, BoundedConcurrentHashMap.HashEntry<K, V> next, V value) -
execute
Set<BoundedConcurrentHashMap.HashEntry<K,V>> execute()Invokes eviction policy algorithm and returns set of evicted entries. Set cannot be null but could possibly be an empty set.- Returns:
- set of evicted entries.
-
onEntryMiss
Invoked to notify EvictionPolicy implementation that there has been an attempt to access an entry in Segment, however that entry was not present in Segment.- Parameters:
e
- accessed entry in Segment- Returns:
- non null set of evicted entries.
-
onEntryHit
Invoked to notify EvictionPolicy implementation that an entry in Segment has been accessed. Returns true if batching threshold has been reached, false otherwise. Note that this method is potentially invoked without holding a lock on Segment.- Parameters:
e
- accessed entry in Segment- Returns:
- true if batching threshold has been reached, false otherwise.
-
onEntryRemove
Invoked to notify EvictionPolicy implementation that an entry e has been removed from Segment.- Parameters:
e
- removed entry in Segment
-
clear
void clear()Invoked to notify EvictionPolicy implementation that all Segment entries have been cleared. -
strategy
BoundedConcurrentHashMap.Eviction strategy()Returns type of eviction algorithm (strategy).- Returns:
- type of eviction algorithm
-
thresholdExpired
boolean thresholdExpired()Returns true if batching threshold has expired, false otherwise. Note that this method is potentially invoked without holding a lock on Segment.- Returns:
- true if batching threshold has expired, false otherwise.
-