Interface StorageEngine<K,​V>

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Interface Description
      static interface  StorageEngine.Owner  
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method 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​(java.lang.Object key, long encoding)
      Called to determine the equality of the given object against the given encoded form.
      boolean equalsValue​(java.lang.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()  
      java.lang.Long writeMapping​(K key, V value, int hash, int metadata)
      Converts the supplied key and value objects into their encoded form.
    • Method Detail

      • writeMapping

        java.lang.Long writeMapping​(K key,
                                    V value,
                                    int hash,
                                    int metadata)
        Converts the supplied key and value objects into their encoded form.
        Parameters:
        key - a key object
        value - a value object
        hash - the key hash
        metadata - the metadata bits
        Returns:
        the encoded mapping
      • attachedMapping

        void attachedMapping​(long encoding,
                             int hash,
                             int metadata)
      • freeMapping

        void freeMapping​(long encoding,
                         int hash,
                         boolean removal)
        Called to indicate that the associated encoded value is no longer needed.

        This call can be used to free any associated resources tied to the lifecycle of the supplied encoded value.

        Parameters:
        encoding - encoded value
        hash - hash of the freed mapping
        removal - marks removal from a map
      • readValue

        V readValue​(long encoding)
        Converts the supplied encoded value into its correct object form.
        Parameters:
        encoding - encoded value
        Returns:
        a decoded value object
      • equalsValue

        boolean equalsValue​(java.lang.Object value,
                            long encoding)
        Called to determine the equality of the given Java object value against the given encoded form.

        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.

        Parameters:
        value - a value object
        encoding - encoded value
        Returns:
        true if the value and the encoding are equal
      • readKey

        K readKey​(long encoding,
                  int hashCode)
        Converts the supplied encoded key into its correct object form.
        Parameters:
        encoding - encoded key
        hashCode - hash-code of the decoded key
        Returns:
        a decoded key object
      • equalsKey

        boolean equalsKey​(java.lang.Object key,
                          long encoding)
        Called to determine the equality of the given object against the given encoded form.

        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.

        Parameters:
        key - a key object
        encoding - encoded value
        Returns:
        true if the key and the encoding are equal
      • clear

        void clear()
        Called to indicate that all keys and values are now free.
      • getAllocatedMemory

        long getAllocatedMemory()
        Returns a measure of the amount of memory allocated for this storage engine.
        Returns:
        memory allocated for this engine in bytes
      • getOccupiedMemory

        long getOccupiedMemory()
        Returns a measure of the amount of memory consumed by this storage engine.
        Returns:
        memory occupied by this engine in bytes
      • getVitalMemory

        long getVitalMemory()
        Returns a measure of the amount of vital memory allocated for this storage engine.
        Returns:
        vital memory allocated for this engine in bytes
      • getDataSize

        long getDataSize()
        Returns a measure of the total size of the keys and values stored in this storage engine.
        Returns:
        size of the stored keys and values in bytes
      • invalidateCache

        void invalidateCache()
        Invalidate any local key/value caches.

        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).

      • destroy

        void destroy()
      • shrink

        boolean shrink()