Class Store

java.lang.Object
org.h2.mvstore.db.Store

public final class Store extends Object
A store with open tables.
  • Field Details

    • tableMap

      private final ConcurrentHashMap<String,MVTable> tableMap
      The map of open tables. Key: the map name, value: the table.
    • mvStore

      private final MVStore mvStore
      The store.
    • transactionStore

      private final TransactionStore transactionStore
      The transaction store.
    • statisticsStart

      private long statisticsStart
    • temporaryMapId

      private int temporaryMapId
    • encrypted

      private final boolean encrypted
    • fileName

      private final String fileName
  • Constructor Details

    • Store

      public Store(Database db)
      Creates the store.
      Parameters:
      db - the database
  • Method Details

    • decodePassword

      static char[] decodePassword(byte[] key)
      Convert password from byte[] to char[].
      Parameters:
      key - password as byte[]
      Returns:
      password as char[].
    • convertMVStoreException

      DbException convertMVStoreException(MVStoreException e)
      Convert a MVStoreException to the similar exception used for the table/sql layers.
      Parameters:
      e - the illegal state exception
      Returns:
      the database exception
    • getMvStore

      public MVStore getMvStore()
    • getTransactionStore

      public TransactionStore getTransactionStore()
    • getTable

      public MVTable getTable(String tableName)
      Get MVTable by table name.
      Parameters:
      tableName - table name
      Returns:
      MVTable
    • createTable

      public MVTable createTable(CreateTableData data)
      Create a table.
      Parameters:
      data - CreateTableData
      Returns:
      table created
    • removeTable

      public void removeTable(MVTable table)
      Remove a table.
      Parameters:
      table - the table
    • flush

      public void flush()
      Store all pending changes.
    • closeImmediately

      public void closeImmediately()
      Close the store, without persisting changes.
    • removeTemporaryMaps

      public void removeTemporaryMaps(BitSet objectIds)
      Remove all temporary maps.
      Parameters:
      objectIds - the ids of the objects to keep
    • nextTemporaryMapName

      public String nextTemporaryMapName()
      Get the name of the next available temporary map.
      Returns:
      the map name
    • prepareCommit

      public void prepareCommit(SessionLocal session, String transactionName)
      Prepare a transaction.
      Parameters:
      session - the session
      transactionName - the transaction name (may be null)
    • getInDoubtTransactions

      public ArrayList<InDoubtTransaction> getInDoubtTransactions()
    • setCacheSize

      public void setCacheSize(int kb)
      Set the maximum memory to be used by the cache.
      Parameters:
      kb - the maximum size in KB
    • getInputStream

      public InputStream getInputStream()
    • sync

      public void sync()
      Force the changes to disk.
    • compactFile

      public void compactFile(int maxCompactTime)
      Compact the database file, that is, compact blocks that have a low fill rate, and move chunks next to each other. This will typically shrink the database file. Changes are flushed to the file, and old chunks are overwritten.
      Parameters:
      maxCompactTime - the maximum time in milliseconds to compact
    • close

      public void close(int allowedCompactionTime)
      Close the store. Pending changes are persisted. If time is allocated for housekeeping, chunks with a low fill rate are compacted, and some chunks are put next to each other. If time is unlimited then full compaction is performed, which uses different algorithm - opens alternative temp store and writes all live data there, then replaces this store with a new one.
      Parameters:
      allowedCompactionTime - time (in milliseconds) alloted for file compaction activity, 0 means no compaction, -1 means unlimited time (full compaction)
    • statisticsStart

      public void statisticsStart()
      Start collecting statistics.
    • statisticsEnd

      public Map<String,Integer> statisticsEnd()
      Stop collecting statistics.
      Returns:
      the statistics