Package org.infinispan.container.impl
Class L1SegmentedDataContainer<K,V>
java.lang.Object
org.infinispan.container.impl.AbstractInternalDataContainer<K,V>
org.infinispan.container.impl.DefaultSegmentedDataContainer<K,V>
org.infinispan.container.impl.L1SegmentedDataContainer<K,V>
- All Implemented Interfaces:
Iterable<InternalCacheEntry<K,,V>> DataContainer<K,,V> InternalDataContainer<K,V>
Segmented data container that also allows for non owned segments to be written to a temporary map (L1). This
temporary map is cleared whenever a segment becomes no longer owned.
If the segment is owned, only the owner segment is used. If the segment is not owned it will query the temporary map to see if the object is stored there.
- Since:
- 9.3
- Author:
- wburns
-
Nested Class Summary
Nested classes/interfaces inherited from class org.infinispan.container.impl.AbstractInternalDataContainer
AbstractInternalDataContainer.EntryIteratorNested classes/interfaces inherited from interface org.infinispan.container.DataContainer
DataContainer.ComputeAction<K,V> -
Field Summary
Fields inherited from class org.infinispan.container.impl.DefaultSegmentedDataContainer
maps, mapSupplier, shouldStopSegmentsFields inherited from class org.infinispan.container.impl.AbstractInternalDataContainer
configuration, entryFactory, evictionManager, expirationManager, keyPartitioner, listeners, orderer, passivator, timeService -
Constructor Summary
ConstructorsConstructorDescriptionL1SegmentedDataContainer(Supplier<PeekableTouchableMap<K, V>> mapSupplier, int numSegments) -
Method Summary
Modifier and TypeMethodDescriptionvoidclear()Removes all entries in the containervoidRemoves all entries that map to the given segmentsgetMapForSegment(int segment) Same asDataContainer.iterator()except that is also returns expired entries.iteratorIncludingExpired(IntSet segments) Same asDataContainer.iteratorIncludingExpired()except that only entries that map to the provided segments are returned via the iterator.voidremoveSegments(IntSet segments) Removes and un-associates the given segments.Same asDataContainer.spliterator()except that is also returns expired entries.spliteratorIncludingExpired(IntSet segments) Same asDataContainer.spliteratorIncludingExpired()except that only entries that map to the provided segments are returned via this spliterator.voidstop()Methods inherited from class org.infinispan.container.impl.DefaultSegmentedDataContainer
addSegments, forEach, forEachSegment, getSegmentForKey, iterator, iterator, publisher, publisher, sizeIncludingExpired, sizeIncludingExpired, spliterator, spliterator, startMethods inherited from class org.infinispan.container.impl.AbstractInternalDataContainer
addRemovalListener, applyListener, compute, compute, computeEntryRemoved, computeEntryWritten, containsKey, containsKey, entryAdded, entryRemoved, entryUpdated, evict, evict, expiredIterationPredicate, filterExpiredEntries, get, get, handleEviction, hasExpirable, peek, peek, put, put, putEntryInMap, remove, remove, removeEntryInMap, removeRemovalListener, segmentRemoved, touchMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.infinispan.container.DataContainer
capacity, evictionSize, resize, sizeMethods inherited from interface org.infinispan.container.impl.InternalDataContainer
cleanUp, size
-
Constructor Details
-
L1SegmentedDataContainer
-
-
Method Details
-
stop
public void stop()- Overrides:
stopin classDefaultSegmentedDataContainer<K,V>
-
getMapForSegment
- Overrides:
getMapForSegmentin classDefaultSegmentedDataContainer<K,V>
-
iteratorIncludingExpired
Description copied from interface:InternalDataContainerSame asDataContainer.iteratorIncludingExpired()except that only entries that map to the provided segments are returned via the iterator. The iterator can return expired entries.- Specified by:
iteratorIncludingExpiredin interfaceInternalDataContainer<K,V> - Overrides:
iteratorIncludingExpiredin classDefaultSegmentedDataContainer<K,V> - Parameters:
segments- segments of entries to use- Returns:
- iterator that returns all entries mapped to the given segments that could be expired
-
iteratorIncludingExpired
Description copied from interface:DataContainerSame asDataContainer.iterator()except that is also returns expired entries.- Specified by:
iteratorIncludingExpiredin interfaceDataContainer<K,V> - Overrides:
iteratorIncludingExpiredin classDefaultSegmentedDataContainer<K,V> - Returns:
- iterator that returns all entries including expired ones
-
spliteratorIncludingExpired
Description copied from interface:InternalDataContainerSame asDataContainer.spliteratorIncludingExpired()except that only entries that map to the provided segments are returned via this spliterator. The spliterator will return expired entries as well.- Specified by:
spliteratorIncludingExpiredin interfaceInternalDataContainer<K,V> - Overrides:
spliteratorIncludingExpiredin classDefaultSegmentedDataContainer<K,V> - Parameters:
segments- segments of entries to use- Returns:
- spliterator containing entries mapping to those segments that could be expired
-
spliteratorIncludingExpired
Description copied from interface:DataContainerSame asDataContainer.spliterator()except that is also returns expired entries.- Specified by:
spliteratorIncludingExpiredin interfaceDataContainer<K,V> - Overrides:
spliteratorIncludingExpiredin classDefaultSegmentedDataContainer<K,V> - Returns:
- spliterator that returns all entries including expired ones
-
clear
public void clear()Description copied from interface:DataContainerRemoves all entries in the container- Specified by:
clearin interfaceDataContainer<K,V> - Overrides:
clearin classDefaultSegmentedDataContainer<K,V>
-
clear
Removes all entries that map to the given segments- Specified by:
clearin interfaceInternalDataContainer<K,V> - Overrides:
clearin classAbstractInternalDataContainer<K,V> - Parameters:
segments- the segments to clear data for
-
removeSegments
Description copied from interface:InternalDataContainerRemoves and un-associates the given segments. This will notify any listeners registered viaInternalDataContainer.addRemovalListener(Consumer)of entries that were removed due to no longer being associated with this container. There is no guarantee if the consumer is invoked once or multiple times for a given group of segments and could be in any order.When this method is invoked an implementation is free to remove any entries that don't map to segments currently associated with this container. Note that entries that were removed due to their segments never being associated with this container do not notify listeners registered via
InternalDataContainer.addRemovalListener(Consumer).- Specified by:
removeSegmentsin interfaceInternalDataContainer<K,V> - Overrides:
removeSegmentsin classDefaultSegmentedDataContainer<K,V> - Parameters:
segments- segments that should no longer be associated with this container
-