Class DatabaseIdMapping

  • All Implemented Interfaces:
    IdMapping

    public class DatabaseIdMapping
    extends AbstractIdMapping
    Database based mapping for IDs during a defragmentation run. Use this mapping to keep memory consumption lower than when using the InMemoryIdMapping.
    See Also:
    Defragment
    • Constructor Summary

      Constructors 
      Constructor Description
      DatabaseIdMapping​(java.lang.String fileName)
      Will maintain the ID mapping as a BTree in the file with the given path.
      DatabaseIdMapping​(java.lang.String fileName, int nodeSize, int commitFrequency)
      Will maintain the ID mapping as a BTree in the file with the given path.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int addressForId​(int id)
      returns the slot address for an ID
      void close()
      Shuts down the mapping after use.
      void commit()  
      void mapId​(int id, Slot slot)
      Maps an ID to a slot
      protected void mapNonClassIDs​(int origID, int mappedID)  
      int mappedId​(int oldID)
      Returns a previously registered mapping ID for the given ID if it exists.
      void open()
      Prepares the mapping for use.
      Visitable<SlotChange> slotChanges()
      provides a Visitable of all mappings of IDs to slots.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • DatabaseIdMapping

        public DatabaseIdMapping​(java.lang.String fileName)
        Will maintain the ID mapping as a BTree in the file with the given path. If a file exists in this location, it will be DELETED. Node size and cache height of the tree will be the default values used by the BTree implementation. The tree will never commit.
        Parameters:
        fileName - The location where the BTree file should be created.
      • DatabaseIdMapping

        public DatabaseIdMapping​(java.lang.String fileName,
                                 int nodeSize,
                                 int commitFrequency)
        Will maintain the ID mapping as a BTree in the file with the given path. If a file exists in this location, it will be DELETED.
        Parameters:
        fileName - The location where the BTree file should be created.
        nodeSize - The size of a BTree node
        commitFrequency - The number of inserts after which a commit should be issued (<=0: never commit)
    • Method Detail

      • mappedId

        public int mappedId​(int oldID)
        Description copied from interface: IdMapping
        Returns a previously registered mapping ID for the given ID if it exists.
        Returns:
        The mapping ID for the given original ID or 0, if none has been registered.
      • open

        public void open()
                  throws java.io.IOException
        Description copied from interface: IdMapping
        Prepares the mapping for use.
        Throws:
        java.io.IOException
      • close

        public void close()
        Description copied from interface: IdMapping
        Shuts down the mapping after use.
      • mapId

        public void mapId​(int id,
                          Slot slot)
        Description copied from interface: IdMapping
        Maps an ID to a slot
      • slotChanges

        public Visitable<SlotChange> slotChanges()
        Description copied from interface: IdMapping
        provides a Visitable of all mappings of IDs to slots.
      • addressForId

        public int addressForId​(int id)
        Description copied from interface: IdMapping
        returns the slot address for an ID
      • commit

        public void commit()