|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.h2.mvstore.MVStore
public class MVStore
A persistent storage for maps.
Nested Class Summary | |
---|---|
static class |
MVStore.Builder
A builder for an MVStore. |
Field Summary | |
---|---|
static boolean |
ASSERT
Whether assertions are enabled. |
Method Summary | ||
---|---|---|
void |
close()
Close the file and the store. |
|
void |
closeImmediately()
Close the file and the store, without writing anything. |
|
long |
commit()
Commit the changes. |
|
boolean |
compact(int targetFillRate,
int minSaving)
Try to increase the fill rate by re-writing partially full chunks. |
|
boolean |
compactMoveChunks()
Compact the store by moving all chunks next to each other, if there is free space between chunks. |
|
int |
getAutoCommitDelay()
Get the auto-commit delay. |
|
int |
getAutoCommitPageCount()
Get the maximum number of unsaved pages. |
|
CacheLongKeyLIRS<Page> |
getCache()
Get the cache. |
|
int |
getCacheSize()
Get the maximum cache size, in MB. |
|
int |
getCacheSizeUsed()
Get the amount of memory used for caching, in MB. |
|
long |
getCurrentVersion()
Get the current version of the data. |
|
FileStore |
getFileStore()
Get the file store. |
|
java.lang.String |
getMapName(int id)
Get the name of the given map. |
|
java.util.Set<java.lang.String> |
getMapNames()
Get the set of all map names. |
|
MVMap<java.lang.String,java.lang.String> |
getMetaMap()
Get the metadata map. |
|
int |
getPageSplitSize()
|
|
int |
getRetentionTime()
|
|
boolean |
getReuseSpace()
|
|
java.util.Map<java.lang.String,java.lang.Object> |
getStoreHeader()
Get the store header. |
|
int |
getStoreVersion()
Get the store version. |
|
int |
getUnsavedPageCount()
Get the estimated number of unsaved pages. |
|
long |
getVersionsToKeep()
Get the oldest version to retain in memory (for in-memory stores). |
|
boolean |
hasMap(java.lang.String name)
Check whether a given map exists. |
|
boolean |
hasUnsavedChanges()
Check whether there are any unsaved changes. |
|
boolean |
isClosed()
|
|
static MVStore |
open(java.lang.String fileName)
Open a store in exclusive mode. |
|
|
openMap(java.lang.String name)
Open a map with the default settings. |
|
|
openMap(java.lang.String name,
MVMap.MapBuilder<M,K,V> builder)
Open a map with the given builder. |
|
void |
removeMap(MVMap<?,?> map)
Remove a map. |
|
void |
renameMap(MVMap<?,?> map,
java.lang.String newName)
Rename a map. |
|
void |
rollback()
Revert to the beginning of the current version, reverting all uncommitted changes. |
|
void |
rollbackTo(long version)
Revert to the beginning of the given version. |
|
void |
setAutoCommitDelay(int millis)
Set the maximum delay in milliseconds to auto-commit changes. |
|
void |
setCacheSize(int mb)
Set the read cache size in MB. |
|
void |
setRetentionTime(int ms)
How long to retain old, persisted chunks, in milliseconds. |
|
void |
setReuseSpace(boolean reuseSpace)
Whether empty space in the file should be re-used. |
|
void |
setStoreVersion(int version)
Update the store version. |
|
void |
setVersionsToKeep(int count)
How many versions to retain for in-memory stores. |
|
void |
sync()
Force all stored changes to be written to the storage. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final boolean ASSERT
Method Detail |
---|
public static MVStore open(java.lang.String fileName)
fileName
- the file name (null for in-memory)
public <K,V> MVMap<K,V> openMap(java.lang.String name)
K
- the key typeV
- the value typename
- the name of the map
public <M extends MVMap<K,V>,K,V> M openMap(java.lang.String name, MVMap.MapBuilder<M,K,V> builder)
K
- the key typeV
- the value typename
- the name of the mapbuilder
- the map builder
public java.util.Set<java.lang.String> getMapNames()
public MVMap<java.lang.String,java.lang.String> getMetaMap()
The data in this map should not be modified (changing system data may corrupt the store). If modifications are needed, they need be synchronized on the store.
The metadata map contains the following entries:
chunk.{chunkId} = {chunk metadata} name.{name} = {mapId} map.{mapId} = {map metadata} root.{mapId} = {root position} setting.storeVersion = {version}
public boolean hasMap(java.lang.String name)
name
- the map name
public void close()
public void closeImmediately()
public long commit()
For in-memory stores, this method increments the version.
For persistent stores, it also writes changes to disk. It does nothing if there are no unsaved changes, and returns the old version. It is not necessary to call this method when auto-commit is enabled (the default setting), as in this case it is automatically called from time to time or when enough changes have accumulated. However, it may still be called to flush all changes to disk.
public boolean hasUnsavedChanges()
public boolean compactMoveChunks()
public void sync()
public boolean compact(int targetFillRate, int minSaving)
If the current fill rate is higher than the target fill rate, nothing is done. If not at least a minimum amount of space can be saved, nothing is done.
Please note this method will not necessarily reduce the file size, as empty chunks are not overwritten.
Only data of open maps can be moved. For maps that are not open, the old chunk is still referenced. Therefore, it is recommended to open all maps before calling this method.
targetFillRate
- the minimum percentage of live entriesminSaving
- the minimum amount of saved space
public int getPageSplitSize()
public boolean getReuseSpace()
public void setReuseSpace(boolean reuseSpace)
This setting is specially useful for online backup. To create an online backup, disable this setting, then copy the file (starting at the beginning of the file). In this case, concurrent backup and write operations are possible (obviously the backup process needs to be faster than the write operations).
reuseSpace
- the new valuepublic int getRetentionTime()
public void setRetentionTime(int ms)
The default value is 45000 (45 seconds) when using the default file
store. It is assumed that a file system and hard disk will flush all
write buffers within this time. Using a lower value might be dangerous,
unless the file system and hard disk flush the buffers earlier. To
manually flush the buffers, use
MVStore.getFile().force(true)
, however please note that
according to various tests this does not always work as expected
depending on the operating system and hardware.
This setting is not persisted.
ms
- how many milliseconds to retain old chunks (0 to overwrite them
as early as possible)public void setVersionsToKeep(int count)
count
- the number of versions to keeppublic long getVersionsToKeep()
public int getStoreVersion()
public void setStoreVersion(int version)
version
- the new store versionpublic void rollback()
public void rollbackTo(long version)
version
- the version to revert topublic long getCurrentVersion()
public FileStore getFileStore()
public java.util.Map<java.lang.String,java.lang.Object> getStoreHeader()
public void renameMap(MVMap<?,?> map, java.lang.String newName)
map
- the mapnewName
- the new namepublic void removeMap(MVMap<?,?> map)
map
- the mappublic java.lang.String getMapName(int id)
id
- the map id
public void setCacheSize(int mb)
mb
- the cache size in MB.public boolean isClosed()
public void setAutoCommitDelay(int millis)
To disable auto-commit, set the value to 0. In this case, changes are only committed when explicitly calling commit.
The default is 1000, meaning all changes are committed after at most one second.
millis
- the maximum delaypublic int getAutoCommitDelay()
public int getAutoCommitPageCount()
public int getUnsavedPageCount()
The returned value may not be completely accurate, but can be used to estimate the memory usage for unsaved data.
public int getCacheSizeUsed()
public int getCacheSize()
public CacheLongKeyLIRS<Page> getCache()
|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |