Package org.infinispan.container.offheap
Interface OffHeapEntryFactory
-
- All Superinterfaces:
org.infinispan.container.impl.KeyValueMetadataSizeCalculator<WrappedBytes,WrappedBytes>
- All Known Implementing Classes:
OffHeapEntryFactoryImpl
public interface OffHeapEntryFactory extends org.infinispan.container.impl.KeyValueMetadataSizeCalculator<WrappedBytes,WrappedBytes>
Factory that can createInternalCacheEntry
objects that use off-heap heap memory. These are stored by a long to symbolize the memory address.- Since:
- 9.0
- Author:
- wburns
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description long
calculateSize(WrappedBytes key, WrappedBytes value, Metadata metadata)
Method used to calculate how much memory in size the key, value and metadata use.long
create(WrappedBytes key, WrappedBytes value, Metadata metadata)
Creates an off heap entry using the provided key value and metadataboolean
equalsKey(long address, WrappedBytes wrappedBytes)
Returns whether the given key as bytes is the same key as the key stored in the entry for the given address.InternalCacheEntry<WrappedBytes,WrappedBytes>
fromMemory(long address)
Create an entry from the off heap pointerint
getHashCode(long address)
Returns the hashCode of the address.byte[]
getKey(long address)
Returns the key of the address.long
getNext(long address)
Returns the address to the next linked pointer if there is one for this bucket or 0 if there isn't onelong
getSize(long address, boolean includeAllocationOverhead)
Returns how many bytes in memory this address location uses assuming it is anInternalCacheEntry
.boolean
isExpired(long address)
Returns whether entry is expired or not.void
setNext(long address, long value)
Called to update the next pointer index when a collision occurs requiring a linked list within the entries themselves
-
-
-
Method Detail
-
create
long create(WrappedBytes key, WrappedBytes value, Metadata metadata)
Creates an off heap entry using the provided key value and metadata- Parameters:
key
- the key to usevalue
- the value to usemetadata
- the metadata to use- Returns:
- the address of where the entry was created
-
getSize
long getSize(long address, boolean includeAllocationOverhead)
Returns how many bytes in memory this address location uses assuming it is anInternalCacheEntry
.- Parameters:
address
- the address of the entryincludeAllocationOverhead
- if true, align to 8 bytes and add 16 bytes allocation overhead- Returns:
- how many bytes this address was estimated to be
-
getNext
long getNext(long address)
Returns the address to the next linked pointer if there is one for this bucket or 0 if there isn't one- Parameters:
address
- the address of the entry- Returns:
- the next address entry for this bucket or 0
-
setNext
void setNext(long address, long value)
Called to update the next pointer index when a collision occurs requiring a linked list within the entries themselves- Parameters:
address
- the address of the entry to updatevalue
- the value of the linked node to set
-
getHashCode
int getHashCode(long address)
Returns the hashCode of the address. This- Parameters:
address
- the address of the entry- Returns:
- the has code of the entry
-
getKey
byte[] getKey(long address)
Returns the key of the address.- Parameters:
address
- the address of the entry- Returns:
- the bytes for the key
-
fromMemory
InternalCacheEntry<WrappedBytes,WrappedBytes> fromMemory(long address)
Create an entry from the off heap pointer- Parameters:
address
- the address of the entry to read- Returns:
- the entry created on heap from off heap
-
equalsKey
boolean equalsKey(long address, WrappedBytes wrappedBytes)
Returns whether the given key as bytes is the same key as the key stored in the entry for the given address.- Parameters:
address
- the address of the entry's key to checkwrappedBytes
- the key to check equality with- Returns:
- whether or not the keys are equal
-
isExpired
boolean isExpired(long address)
Returns whether entry is expired or not.- Parameters:
address
- the address of the entry's key to check- Returns:
true
if the entry is expired,false
otherwise
-
calculateSize
long calculateSize(WrappedBytes key, WrappedBytes value, Metadata metadata)
Method used to calculate how much memory in size the key, value and metadata use.- Specified by:
calculateSize
in interfaceorg.infinispan.container.impl.KeyValueMetadataSizeCalculator<WrappedBytes,WrappedBytes>
- Parameters:
key
- The key for this entry to be used in size calculationvalue
- The value for this entry to be used in size calculationmetadata
- The metadata for this entry to be used in size calculation- Returns:
- The size approximately in memory the key, value and metadata use.
-
-