org.terracotta.offheapstore
Class WriteLockedOffHeapClockCache<K,V>
java.lang.Object
java.util.AbstractMap<K,V>
org.terracotta.offheapstore.OffHeapHashMap<K,V>
org.terracotta.offheapstore.AbstractLockedOffHeapHashMap<K,V>
org.terracotta.offheapstore.AbstractOffHeapClockCache<K,V>
org.terracotta.offheapstore.WriteLockedOffHeapClockCache<K,V>
- Type Parameters:
K - the type of keys maintained by this mapV - the type of mapped values
- All Implemented Interfaces:
- ConcurrentMap<K,V>, ReadWriteLock, Map<K,V>, HashingMap<K,V>, MapInternals, PinnableCache<K,V>, PinnableSegment<K,V>, Segment<K,V>, StorageEngine.Owner
- Direct Known Subclasses:
- EvictionListeningWriteLockedOffHeapClockCache
public class WriteLockedOffHeapClockCache<K,V>
- extends AbstractOffHeapClockCache<K,V>
An exclusive-read/write off-heap clock cache.
This cache uses one of the unused bits in the off-heap entry's status value to
store the clock data. This clock data is safe to update during read
operations since the cache provides exclusive-read/write characteristics.
Since clock eviction data resides in the hash-map's table, it is correctly
copied across during table resize operations.
The cache uses a regular ReentrantLock to provide exclusive read and
write operations.
- Author:
- Chris Dennis
| Nested classes/interfaces inherited from interface java.util.Map |
Map.Entry<K,V> |
| Fields inherited from class org.terracotta.offheapstore.OffHeapHashMap |
ENCODING, ENTRY_BIT_SHIFT, ENTRY_SIZE, hashtable, hashTablePage, KEY_HASHCODE, modCount, removedSlots, reprobeLimit, RESERVED_STATUS_BITS, size, STATUS, STATUS_REMOVED, STATUS_USED, storageEngine, tableSource |
|
Constructor Summary |
WriteLockedOffHeapClockCache(PageSource source,
boolean tableAllocationsSteal,
StorageEngine<? super K,? super V> storageEngine)
|
WriteLockedOffHeapClockCache(PageSource source,
boolean tableAllocationsSteal,
StorageEngine<? super K,? super V> storageEngine,
int tableSize)
|
WriteLockedOffHeapClockCache(PageSource source,
StorageEngine<? super K,? super V> storageEngine)
|
WriteLockedOffHeapClockCache(PageSource source,
StorageEngine<? super K,? super V> storageEngine,
int tableSize)
|
| Methods inherited from class org.terracotta.offheapstore.AbstractLockedOffHeapHashMap |
clear, computeIfAbsentWithMetadata, computeIfPresentWithMetadata, computeWithMetadata, containsKey, destroy, entrySet, fill, fill, get, getAndSetMetadata, getEncodingForHashAndBinary, getMetadata, getValueAndSetMetadata, installMappingForHashAndEncoding, keySet, put, put, putIfAbsent, remove, remove, removeAllWithHash, removeMapping, removeNoReturn, replace, replace, shrink, size, values |
| Methods inherited from class org.terracotta.offheapstore.OffHeapHashMap |
added, encodingSet, fill, freePendingTables, getAllocatedMemory, getAtTableOffset, getDataAllocatedMemory, getDataOccupiedMemory, getDataSize, getDataVitalMemory, getEntryAtTableOffset, getOccupiedMemory, getRemovedSlotCount, getReprobeLength, getSize, getSlotForHashAndEncoding, getStorageEngine, getTableCapacity, getUsedSlotCount, getVitalMemory, indexFor, indexFor, isAvailable, isPresent, isRemoved, isRemoved, isTerminating, isTerminating, isThiefForTableAllocations, readLong, readLong, removeAtTableOffset, removed, shrinkTable, spread, tryIncreaseReprobe, updated, updateEncoding |
| Methods inherited from interface org.terracotta.offheapstore.Segment |
computeIfAbsentWithMetadata, computeIfPresentWithMetadata, computeWithMetadata, destroy, fill, fill, getAndSetMetadata, getMetadata, getValueAndSetMetadata, put, removeNoReturn, shrink |
| Methods inherited from interface org.terracotta.offheapstore.MapInternals |
getAllocatedMemory, getDataAllocatedMemory, getDataOccupiedMemory, getDataSize, getDataVitalMemory, getOccupiedMemory, getRemovedSlotCount, getReprobeLength, getSize, getTableCapacity, getUsedSlotCount, getVitalMemory |
| Methods inherited from interface java.util.Map |
clear, containsKey, containsValue, entrySet, equals, get, hashCode, isEmpty, keySet, put, putAll, remove, size, values |
WriteLockedOffHeapClockCache
public WriteLockedOffHeapClockCache(PageSource source,
StorageEngine<? super K,? super V> storageEngine)
WriteLockedOffHeapClockCache
public WriteLockedOffHeapClockCache(PageSource source,
boolean tableAllocationsSteal,
StorageEngine<? super K,? super V> storageEngine)
WriteLockedOffHeapClockCache
public WriteLockedOffHeapClockCache(PageSource source,
StorageEngine<? super K,? super V> storageEngine,
int tableSize)
WriteLockedOffHeapClockCache
public WriteLockedOffHeapClockCache(PageSource source,
boolean tableAllocationsSteal,
StorageEngine<? super K,? super V> storageEngine,
int tableSize)
readLock
public Lock readLock()
- Specified by:
readLock in interface ReadWriteLock- Specified by:
readLock in class AbstractLockedOffHeapHashMap<K,V>
writeLock
public Lock writeLock()
- Specified by:
writeLock in interface ReadWriteLock- Specified by:
writeLock in class AbstractLockedOffHeapHashMap<K,V>
getLock
public ReentrantReadWriteLock getLock()
- Description copied from interface:
Segment
- Return the
ReentrantReadWriteLock used by this segment.
- Returns:
- RRWL for this segment
Copyright © 2016. All Rights Reserved.