K - key type handled by this engineV - value type handled by this enginepublic interface StorageEngine<K,V>
StorageEngine instances can choose their own method of value/key
encoding. Keys that are small enough to be fully encoded in the
Integer return can be stored directly in the table, others could be
stored in some additional data structure.
| Modifier and Type | Interface and Description |
|---|---|
static interface |
StorageEngine.Owner |
| Modifier and Type | Method and Description |
|---|---|
void |
attachedMapping(long encoding,
int hash,
int metadata) |
void |
bind(StorageEngine.Owner owner) |
void |
clear()
Called to indicate that all keys and values are now free.
|
void |
destroy() |
boolean |
equalsKey(Object key,
long encoding)
Called to determine the equality of the given object against the
given encoded form.
|
boolean |
equalsValue(Object value,
long encoding)
Called to determine the equality of the given Java object value against the
given encoded form.
|
void |
freeMapping(long encoding,
int hash,
boolean removal)
Called to indicate that the associated encoded value is no longer needed.
|
long |
getAllocatedMemory()
Returns a measure of the amount of memory allocated for this storage engine.
|
long |
getDataSize()
Returns a measure of the total size of the keys and values stored in this storage engine.
|
long |
getOccupiedMemory()
Returns a measure of the amount of memory consumed by this storage engine.
|
long |
getVitalMemory()
Returns a measure of the amount of vital memory allocated for this storage engine.
|
void |
invalidateCache()
Invalidate any local key/value caches.
|
K |
readKey(long encoding,
int hashCode)
Converts the supplied encoded key into its correct object form.
|
V |
readValue(long encoding)
Converts the supplied encoded value into its correct object form.
|
boolean |
shrink() |
Long |
writeMapping(K key,
V value,
int hash,
int metadata)
Converts the supplied key and value objects into their encoded form.
|
Long writeMapping(K key, V value, int hash, int metadata)
key - a key objectvalue - a value objecthash - the key hashmetadata - the metadata bitsvoid attachedMapping(long encoding,
int hash,
int metadata)
void freeMapping(long encoding,
int hash,
boolean removal)
This call can be used to free any associated resources tied to the lifecycle of the supplied encoded value.
encoding - encoded valuehash - hash of the freed mappingremoval - marks removal from a mapV readValue(long encoding)
encoding - encoded valueboolean equalsValue(Object value, long encoding)
Simple implementations will probably perform a decode on the given encoded
form in order to do a regular Object.equals(Object) comparison.
This method is provided to allow implementations to optimize this
comparison if possible.
value - a value objectencoding - encoded valuetrue if the value and the encoding are equalK readKey(long encoding, int hashCode)
encoding - encoded keyhashCode - hash-code of the decoded keyboolean equalsKey(Object key, long encoding)
Simple implementations will probably perform a decode on the given encoded
form in order to do a regular Object.equals(Object) comparison.
This method is provided to allow implementations to optimize this
comparison if possible.
key - a key objectencoding - encoded valuetrue if the key and the encoding are equalvoid clear()
long getAllocatedMemory()
long getOccupiedMemory()
long getVitalMemory()
long getDataSize()
void invalidateCache()
This is called to indicate the termination of a map write "phase". Caching is permitted within a write operation (i.e. to cache around allocation failures during eviction processes).
void bind(StorageEngine.Owner owner)
void destroy()
boolean shrink()
Copyright © 2015–2024. All rights reserved.