Package org.h2.mvstore.db
Class Store
java.lang.Object
org.h2.mvstore.db.Store
A store with open tables.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final boolean
private final String
private final MVStore
The store.private long
private final ConcurrentHashMap
<String, MVTable> The map of open tables.private int
private final TransactionStore
The transaction store. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
close
(int allowedCompactionTime) Close the store.void
Close the store, without persisting changes.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.(package private) DbException
Convert a MVStoreException to the similar exception used for the table/sql layers.createTable
(CreateTableData data) Create a table.(package private) static char[]
decodePassword
(byte[] key) Convert password from byte[] to char[].void
flush()
Store all pending changes.Get MVTable by table name.Get the name of the next available temporary map.void
prepareCommit
(SessionLocal session, String transactionName) Prepare a transaction.void
removeTable
(MVTable table) Remove a table.void
removeTemporaryMaps
(BitSet objectIds) Remove all temporary maps.void
setCacheSize
(int kb) Set the maximum memory to be used by the cache.Stop collecting statistics.void
Start collecting statistics.void
sync()
Force the changes to disk.
-
Field Details
-
tableMap
The map of open tables. Key: the map name, value: the table. -
mvStore
The store. -
transactionStore
The transaction store. -
statisticsStart
private long statisticsStart -
temporaryMapId
private int temporaryMapId -
encrypted
private final boolean encrypted -
fileName
-
-
Constructor Details
-
Store
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
Convert a MVStoreException to the similar exception used for the table/sql layers.- Parameters:
e
- the illegal state exception- Returns:
- the database exception
-
getMvStore
-
getTransactionStore
-
getTable
Get MVTable by table name.- Parameters:
tableName
- table name- Returns:
- MVTable
-
createTable
Create a table.- Parameters:
data
- CreateTableData- Returns:
- table created
-
removeTable
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
Remove all temporary maps.- Parameters:
objectIds
- the ids of the objects to keep
-
nextTemporaryMapName
Get the name of the next available temporary map.- Returns:
- the map name
-
prepareCommit
Prepare a transaction.- Parameters:
session
- the sessiontransactionName
- the transaction name (may be null)
-
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
-
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
Stop collecting statistics.- Returns:
- the statistics
-