Interface LoadedPagesMap

All Known Implementing Classes:
RobinHoodBackwardShiftHashMap

public interface LoadedPagesMap
Interface for storing correspondence of page ID in a cache group to long value (address in offheap segment).
Map support versioning of entries. Outdated entry (entry having version lower than requested), is not provided in case of get, outdated return value is provided instead.
This mapping is not thread safe. Operations should be protected by outside locking.
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Interface
    Description
    static interface 
    Entry consumer.
    static interface 
    Interface describing a predicate for Key (cache group ID, page ID).
  • Method Summary

    Modifier and Type
    Method
    Description
    int
     
    void
    Removes all entries from the map.
    void
    Scans all the elements in this table.
    long
    get(int grpId, int pageId, int reqVer, long absent, long outdated)
    Gets value associated with the given key.
    getNearestAt(int idxStart)
    Find nearest presented value from specified position to the right.
    void
    put(int grpId, int pageId, long val, int ver)
    Associates the given key with the given value.
    long
    refresh(int grpId, int pageId, int ver)
    Refresh outdated value.
    boolean
    remove(int grpId, int pageId)
    Removes key-value association for the given key.
    removeIf(int startIdxToClear, int endIdxToClear, LoadedPagesMap.KeyPredicate keyPred)
    Removes entities matching provided predicate at specified mapping range.
    default GridLongList
    Removes entities matching provided predicate.
    int
     
  • Method Details

    • get

      long get(int grpId, int pageId, int reqVer, long absent, long outdated)
      Gets value associated with the given key.
      Parameters:
      grpId - Cache Group ID. First part of the key.
      pageId - Page ID. Second part of the key.
      reqVer - Requested entry version, counter associated with value.
      absent - return if provided page is not presented in map.
      outdated - return if provided reqVer version is greater than value in map (was used for put).
      Returns:
      A value associated with the given key.
    • put

      void put(int grpId, int pageId, long val, int ver)
      Associates the given key with the given value.
      Parameters:
      grpId - Cache Group ID. First part of the key.
      pageId - Page ID. Second part of the key.
      val - Value to set.
      ver - Version/counter associated with value, can be used to check if value is outdated.
    • refresh

      long refresh(int grpId, int pageId, int ver)
      Refresh outdated value. Sets provided version to value associated with cache and page. Method should be called only for key present and only if version was outdated. Method may be called in case #get(int, long, int, long, long) returned outdated return value.
      Parameters:
      grpId - First part of the key. Cache Group ID.
      pageId - Second part of the key. Page ID.
      ver - Partition tag.
      Returns:
      A value associated with the given key.
      Throws:
      IllegalArgumentException - if method is called for absent key or key with fresh version.
    • remove

      boolean remove(int grpId, int pageId)
      Removes key-value association for the given key.
      Parameters:
      grpId - First part of the key. Cache Group ID.
      pageId - Second part of the key. Page ID.
      Returns:
      True if value was actually found and removed.
    • capacity

      int capacity()
      Returns:
      Maximum number of entries in the map. This maximum can not be always reached.
    • size

      int size()
      Returns:
      Current number of entries in the map.
    • clear

      void clear()
      Removes all entries from the map.
    • getNearestAt

      ReplaceCandidate getNearestAt(int idxStart)
      Find nearest presented value from specified position to the right.
      Parameters:
      idxStart - Index to start searching from. Bounded with capacity().
      Returns:
      Closest value to the index and it's partition tag or null value that will be returned if no values present.
    • removeIf

      GridLongList removeIf(int startIdxToClear, int endIdxToClear, LoadedPagesMap.KeyPredicate keyPred)
      Removes entities matching provided predicate at specified mapping range.
      Parameters:
      startIdxToClear - Index to clear value at, inclusive. Bounded with capacity().
      endIdxToClear - Index to clear value at, inclusive. Bounded with capacity().
      keyPred - Test predicate for (cache group ID, page ID).
      Returns:
      List with removed values, value is not added to list for empty cell or if key is not matching to predicate.
    • removeIf

      default GridLongList removeIf(LoadedPagesMap.KeyPredicate keyPred)
      Removes entities matching provided predicate.
      Parameters:
      keyPred - Test predicate for (cache group ID, page ID).
      Returns:
      List with removed values, value is not added to list for empty cell or if key is not matching to predicate.
    • forEach

      void forEach(LoadedPagesMap.EntryConsumer act)
      Scans all the elements in this table.
      Parameters:
      act - Visitor/action to be applied to each not empty cell.