public class DBOptions extends RocksObject implements DBOptionsInterface
RocksDB (i.e., RocksDB.open()).
If RocksObject.dispose() function is not called, then it will be GC'd automatically
and native resources will be released as part of the process.nativeHandle_| Constructor and Description |
|---|
DBOptions()
Construct DBOptions.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
adviseRandomOnOpen()
If set true, will hint the underlying file system that the file
access pattern is random, when a sst file is opened.
|
boolean |
allowMmapReads()
Allow the OS to mmap file for reading sst tables.
|
boolean |
allowMmapWrites()
Allow the OS to mmap file for writing.
|
boolean |
allowOsBuffer()
Data being read from file storage may be buffered in the OS
Default: true
|
long |
bytesPerSync()
Allows OS to incrementally sync files to disk while they are being
written, asynchronously, in the background.
|
boolean |
createIfMissing()
Return true if the create_if_missing flag is set to true.
|
boolean |
createMissingColumnFamilies()
Return true if the create_missing_column_families flag is set
to true.
|
DBOptions |
createStatistics()
Creates statistics object which collects metrics about database operations.
|
java.lang.String |
dbLogDir()
Returns the directory of info log.
|
long |
deleteObsoleteFilesPeriodMicros()
The periodicity when obsolete files get deleted.
|
boolean |
disableDataSync()
If true, then the contents of data files are not synced
to stable storage.
|
protected void |
disposeInternal()
Release the memory allocated for the current instance
in the c++ side.
|
boolean |
errorIfExists()
If true, an error will be thrown during RocksDB.open() if the
database already exists.
|
static DBOptions |
getDBOptionsFromProps(java.util.Properties properties)
Method to get a options instance by using pre-configured
property values.
|
InfoLogLevel |
infoLogLevel()
Returns currently set log level.
|
boolean |
isFdCloseOnExec()
Disable child process inherit open files.
|
long |
keepLogFileNum()
Returns the maximum number of info log files to be kept.
|
long |
logFileTimeToRoll()
Returns the time interval for the info log file to roll (in seconds).
|
long |
manifestPreallocationSize()
Number of bytes to preallocate (via fallocate) the manifest
files.
|
int |
maxBackgroundCompactions()
Returns the maximum number of concurrent background compaction jobs,
submitted to the default LOW priority thread pool.
|
int |
maxBackgroundFlushes()
Returns the maximum number of concurrent background flush jobs.
|
long |
maxLogFileSize()
Returns the maximum size of a info log file.
|
long |
maxManifestFileSize()
Manifest file is rolled over on reaching this limit.
|
int |
maxOpenFiles()
Number of open files that can be used by the DB.
|
long |
maxTotalWalSize()
Returns the max total wal size.
|
boolean |
paranoidChecks()
If true, the implementation will do aggressive checking of the
data it is processing and will stop early if it detects any
errors.
|
DBOptions |
setAdviseRandomOnOpen(boolean adviseRandomOnOpen)
If set true, will hint the underlying file system that the file
access pattern is random, when a sst file is opened.
|
DBOptions |
setAllowMmapReads(boolean allowMmapReads)
Allow the OS to mmap file for reading sst tables.
|
DBOptions |
setAllowMmapWrites(boolean allowMmapWrites)
Allow the OS to mmap file for writing.
|
DBOptions |
setAllowOsBuffer(boolean allowOsBuffer)
Data being read from file storage may be buffered in the OS
Default: true
|
DBOptions |
setBytesPerSync(long bytesPerSync)
Allows OS to incrementally sync files to disk while they are being
written, asynchronously, in the background.
|
DBOptions |
setCreateIfMissing(boolean flag)
If this value is set to true, then the database will be created
if it is missing during
RocksDB.open(). |
DBOptions |
setCreateMissingColumnFamilies(boolean flag)
If true, missing column families will be automatically created
|
DBOptions |
setDbLogDir(java.lang.String dbLogDir)
This specifies the info LOG dir.
|
DBOptions |
setDeleteObsoleteFilesPeriodMicros(long micros)
The periodicity when obsolete files get deleted.
|
DBOptions |
setDisableDataSync(boolean disableDataSync)
If true, then the contents of manifest and data files are
not synced to stable storage.
|
DBOptions |
setErrorIfExists(boolean errorIfExists)
If true, an error will be thrown during RocksDB.open() if the
database already exists.
|
DBOptions |
setIncreaseParallelism(int totalThreads)
By default, RocksDB uses only one background thread for flush and
compaction.
|
DBOptions |
setInfoLogLevel(InfoLogLevel infoLogLevel)
Sets the RocksDB log level.
|
DBOptions |
setIsFdCloseOnExec(boolean isFdCloseOnExec)
Disable child process inherit open files.
|
DBOptions |
setKeepLogFileNum(long keepLogFileNum)
Specifies the maximum number of info log files to be kept.
|
DBOptions |
setLogFileTimeToRoll(long logFileTimeToRoll)
Specifies the time interval for the info log file to roll (in seconds).
|
DBOptions |
setLogger(Logger logger)
Any internal progress/error information generated by
the db will be written to the Logger if it is non-nullptr,
or to a file stored in the same directory as the DB
contents if info_log is nullptr.
|
DBOptions |
setManifestPreallocationSize(long size)
Number of bytes to preallocate (via fallocate) the manifest
files.
|
DBOptions |
setMaxBackgroundCompactions(int maxBackgroundCompactions)
Specifies the maximum number of concurrent background compaction jobs,
submitted to the default LOW priority thread pool.
|
DBOptions |
setMaxBackgroundFlushes(int maxBackgroundFlushes)
Specifies the maximum number of concurrent background flush jobs.
|
DBOptions |
setMaxLogFileSize(long maxLogFileSize)
Specifies the maximum size of a info log file.
|
DBOptions |
setMaxManifestFileSize(long maxManifestFileSize)
Manifest file is rolled over on reaching this limit.
|
DBOptions |
setMaxOpenFiles(int maxOpenFiles)
Number of open files that can be used by the DB.
|
DBOptions |
setMaxTotalWalSize(long maxTotalWalSize)
Once write-ahead logs exceed this size, we will start forcing the
flush of column families whose memtables are backed by the oldest live
WAL file (i.e.
|
DBOptions |
setParanoidChecks(boolean paranoidChecks)
If true, the implementation will do aggressive checking of the
data it is processing and will stop early if it detects any
errors.
|
DBOptions |
setRateLimiterConfig(RateLimiterConfig config)
Use to control write rate of flush and compaction.
|
DBOptions |
setSkipLogErrorOnRecovery(boolean skip)
Deprecated.
|
DBOptions |
setStatsDumpPeriodSec(int statsDumpPeriodSec)
if not zero, dump rocksdb.stats to LOG every stats_dump_period_sec
Default: 3600 (1 hour)
|
DBOptions |
setTableCacheNumshardbits(int tableCacheNumshardbits)
Number of shards used for table cache.
|
DBOptions |
setTableCacheRemoveScanCountLimit(int limit)
During data eviction of table's LRU cache, it would be inefficient
to strictly follow LRU because this piece of memory will not really
be released unless its refcount falls to zero.
|
DBOptions |
setUseAdaptiveMutex(boolean useAdaptiveMutex)
Use adaptive mutex, which spins in the user space before resorting
to kernel.
|
DBOptions |
setUseFsync(boolean useFsync)
If true, then every store to stable storage will issue a fsync.
|
DBOptions |
setWalDir(java.lang.String walDir)
This specifies the absolute dir path for write-ahead logs (WAL).
|
DBOptions |
setWalSizeLimitMB(long sizeLimitMB)
WalTtlSeconds() and walSizeLimitMB() affect how archived logs
will be deleted.
|
DBOptions |
setWalTtlSeconds(long walTtlSeconds)
DBOptionsInterface.walTtlSeconds() and DBOptionsInterface.walSizeLimitMB() affect how archived logs
will be deleted. |
boolean |
skipLogErrorOnRecovery()
Deprecated.
|
Statistics |
statisticsPtr()
Returns statistics object.
|
int |
statsDumpPeriodSec()
If not zero, dump rocksdb.stats to LOG every stats_dump_period_sec
Default: 3600 (1 hour)
|
int |
tableCacheNumshardbits()
Number of shards used for table cache.
|
int |
tableCacheRemoveScanCountLimit()
During data eviction of table's LRU cache, it would be inefficient
to strictly follow LRU because this piece of memory will not really
be released unless its refcount falls to zero.
|
boolean |
useAdaptiveMutex()
Use adaptive mutex, which spins in the user space before resorting
to kernel.
|
boolean |
useFsync()
If true, then every store to stable storage will issue a fsync.
|
java.lang.String |
walDir()
Returns the path to the write-ahead-logs (WAL) directory.
|
long |
walSizeLimitMB()
DBOptionsInterface.walTtlSeconds() and #walSizeLimitMB() affect how archived logs
will be deleted. |
long |
walTtlSeconds()
WalTtlSeconds() and walSizeLimitMB() affect how archived logs
will be deleted.
|
disOwnNativeHandle, dispose, finalize, isInitialized, isOwningNativeHandlepublic DBOptions()
rocksdb::DBOptions in the c++ side.public static DBOptions getDBOptionsFromProps(java.util.Properties properties)
Method to get a options instance by using pre-configured property values. If one or many values are undefined in the context of RocksDB the method will return a null value.
Note: Property keys can be derived from
getter methods within the options class. Example: the method
allowMmapReads() has a property key:
allow_mmap_reads.
properties - Properties instance.instance
or null.java.lang.IllegalArgumentException - if null or empty
Properties instance is passed to the method call.public DBOptions setIncreaseParallelism(int totalThreads)
DBOptionsInterfaceBy default, RocksDB uses only one background thread for flush and compaction. Calling this function will set it up such that total of `total_threads` is used.
You almost definitely want to call this function if your system is bottlenecked by RocksDB.
setIncreaseParallelism in interface DBOptionsInterfacetotalThreads - The total number of threads to be used by RocksDB.
A good value is the number of cores.public DBOptions setCreateIfMissing(boolean flag)
DBOptionsInterfaceRocksDB.open().
Default: falsesetCreateIfMissing in interface DBOptionsInterfaceflag - a flag indicating whether to create a database the
specified database in RocksDB.open(org.rocksdb.Options, String) operation
is missing.RocksDB.open(org.rocksdb.Options, String)public boolean createIfMissing()
DBOptionsInterfacecreateIfMissing in interface DBOptionsInterfaceDBOptionsInterface.setCreateIfMissing(boolean)public DBOptions setCreateMissingColumnFamilies(boolean flag)
DBOptionsInterfaceIf true, missing column families will be automatically created
Default: false
setCreateMissingColumnFamilies in interface DBOptionsInterfaceflag - a flag indicating if missing column families shall be
created automatically.public boolean createMissingColumnFamilies()
DBOptionsInterfacecreateMissingColumnFamilies in interface DBOptionsInterfaceDBOptionsInterface.setCreateMissingColumnFamilies(boolean)public DBOptions setErrorIfExists(boolean errorIfExists)
DBOptionsInterfacesetErrorIfExists in interface DBOptionsInterfaceerrorIfExists - if true, an exception will be thrown
during RocksDB.open() if the database already exists.RocksDB.open(org.rocksdb.Options, String)public boolean errorIfExists()
DBOptionsInterfaceerrorIfExists in interface DBOptionsInterfacepublic DBOptions setParanoidChecks(boolean paranoidChecks)
DBOptionsInterfacesetParanoidChecks in interface DBOptionsInterfaceparanoidChecks - a flag to indicate whether paranoid-check
is on.public boolean paranoidChecks()
DBOptionsInterfaceparanoidChecks in interface DBOptionsInterfacepublic DBOptions setRateLimiterConfig(RateLimiterConfig config)
DBOptionsInterfacesetRateLimiterConfig in interface DBOptionsInterfaceconfig - rate limiter config.public DBOptions setLogger(Logger logger)
DBOptionsInterfaceAny internal progress/error information generated by the db will be written to the Logger if it is non-nullptr, or to a file stored in the same directory as the DB contents if info_log is nullptr.
Default: nullptr
setLogger in interface DBOptionsInterfacelogger - Logger instance.public DBOptions setInfoLogLevel(InfoLogLevel infoLogLevel)
DBOptionsInterfaceSets the RocksDB log level. Default level is INFO
setInfoLogLevel in interface DBOptionsInterfaceinfoLogLevel - log level to set.public InfoLogLevel infoLogLevel()
DBOptionsInterfaceReturns currently set log level.
infoLogLevel in interface DBOptionsInterfaceInfoLogLevel instance.public DBOptions setMaxOpenFiles(int maxOpenFiles)
DBOptionsInterfacetarget_file_size_base and target_file_size_multiplier
for level-based compaction. For universal-style compaction, you can usually
set it to -1.
Default: 5000setMaxOpenFiles in interface DBOptionsInterfacemaxOpenFiles - the maximum number of open files.public int maxOpenFiles()
DBOptionsInterfacetarget_file_size_base and target_file_size_multiplier
for level-based compaction. For universal-style compaction, you can usually
set it to -1.maxOpenFiles in interface DBOptionsInterfacepublic DBOptions setMaxTotalWalSize(long maxTotalWalSize)
DBOptionsInterfaceOnce write-ahead logs exceed this size, we will start forcing the flush of column families whose memtables are backed by the oldest live WAL file (i.e. the ones that are causing all the space amplification).
If set to 0 (default), we will dynamically choose the WAL size limit to be [sum of all write_buffer_size * max_write_buffer_number] * 2
Default: 0
setMaxTotalWalSize in interface DBOptionsInterfacemaxTotalWalSize - max total wal size.public long maxTotalWalSize()
DBOptionsInterfaceReturns the max total wal size. Once write-ahead logs exceed this size, we will start forcing the flush of column families whose memtables are backed by the oldest live WAL file (i.e. the ones that are causing all the space amplification).
If set to 0 (default), we will dynamically choose the WAL size limit to be [sum of all write_buffer_size * max_write_buffer_number] * 2
maxTotalWalSize in interface DBOptionsInterfacepublic DBOptions createStatistics()
DBOptionsInterfaceCreates statistics object which collects metrics about database operations. Statistics objects should not be shared between DB instances as it does not use any locks to prevent concurrent updates.
createStatistics in interface DBOptionsInterfaceRocksDB.open(org.rocksdb.Options, String)public Statistics statisticsPtr()
DBOptionsInterfaceReturns statistics object. Calls DBOptionsInterface.createStatistics() if
C++ returns nullptr for statistics.
statisticsPtr in interface DBOptionsInterfaceDBOptionsInterface.createStatistics()public DBOptions setDisableDataSync(boolean disableDataSync)
DBOptionsInterfaceIf true, then the contents of manifest and data files are not synced to stable storage. Their contents remain in the OS buffers till theOS decides to flush them.
This option is good for bulk-loading of data.
Once the bulk-loading is complete, please issue a sync to the OS to flush all dirty buffers to stable storage.
Default: false
setDisableDataSync in interface DBOptionsInterfacedisableDataSync - a boolean flag to specify whether to
disable data sync.public boolean disableDataSync()
DBOptionsInterfacedisableDataSync in interface DBOptionsInterfacepublic DBOptions setUseFsync(boolean useFsync)
DBOptionsInterfaceIf true, then every store to stable storage will issue a fsync.
If false, then every store to stable storage will issue a fdatasync. This parameter should be set to true while storing data to filesystem like ext3 that can lose files after a reboot.
Default: false
setUseFsync in interface DBOptionsInterfaceuseFsync - a boolean flag to specify whether to use fsyncpublic boolean useFsync()
DBOptionsInterfaceIf true, then every store to stable storage will issue a fsync.
If false, then every store to stable storage will issue a fdatasync. This parameter should be set to true while storing data to filesystem like ext3 that can lose files after a reboot.
useFsync in interface DBOptionsInterfacepublic DBOptions setDbLogDir(java.lang.String dbLogDir)
DBOptionsInterfacesetDbLogDir in interface DBOptionsInterfacedbLogDir - the path to the info log directorypublic java.lang.String dbLogDir()
DBOptionsInterfacedbLogDir in interface DBOptionsInterfacepublic DBOptions setWalDir(java.lang.String walDir)
DBOptionsInterfacesetWalDir in interface DBOptionsInterfacewalDir - the path to the write-ahead-log directory.public java.lang.String walDir()
DBOptionsInterfacewalDir in interface DBOptionsInterfacepublic DBOptions setDeleteObsoleteFilesPeriodMicros(long micros)
DBOptionsInterfacesetDeleteObsoleteFilesPeriodMicros in interface DBOptionsInterfacemicros - the time interval in microspublic long deleteObsoleteFilesPeriodMicros()
DBOptionsInterfacedeleteObsoleteFilesPeriodMicros in interface DBOptionsInterfacepublic DBOptions setMaxBackgroundCompactions(int maxBackgroundCompactions)
DBOptionsInterfacesetMaxBackgroundCompactions in interface DBOptionsInterfacemaxBackgroundCompactions - the maximum number of background
compaction jobs.Env.setBackgroundThreads(int),
Env.setBackgroundThreads(int, int),
DBOptionsInterface.maxBackgroundFlushes()public int maxBackgroundCompactions()
DBOptionsInterfacemaxBackgroundCompactions in interface DBOptionsInterfaceEnv.setBackgroundThreads(int),
Env.setBackgroundThreads(int, int)public DBOptions setMaxBackgroundFlushes(int maxBackgroundFlushes)
DBOptionsInterfacesetMaxBackgroundFlushes in interface DBOptionsInterfacemaxBackgroundFlushes - number of max concurrent flush jobsEnv.setBackgroundThreads(int),
Env.setBackgroundThreads(int, int),
DBOptionsInterface.maxBackgroundCompactions()public int maxBackgroundFlushes()
DBOptionsInterfacemaxBackgroundFlushes in interface DBOptionsInterfaceEnv.setBackgroundThreads(int),
Env.setBackgroundThreads(int, int)public DBOptions setMaxLogFileSize(long maxLogFileSize)
DBOptionsInterfacesetMaxLogFileSize in interface DBOptionsInterfacemaxLogFileSize - the maximum size of a info log file.public long maxLogFileSize()
DBOptionsInterfacemaxLogFileSize in interface DBOptionsInterfacepublic DBOptions setLogFileTimeToRoll(long logFileTimeToRoll)
DBOptionsInterfacesetLogFileTimeToRoll in interface DBOptionsInterfacelogFileTimeToRoll - the time interval in seconds.public long logFileTimeToRoll()
DBOptionsInterfacelogFileTimeToRoll in interface DBOptionsInterfacepublic DBOptions setKeepLogFileNum(long keepLogFileNum)
DBOptionsInterfacesetKeepLogFileNum in interface DBOptionsInterfacekeepLogFileNum - the maximum number of info log files to be kept.public long keepLogFileNum()
DBOptionsInterfacekeepLogFileNum in interface DBOptionsInterfacepublic DBOptions setMaxManifestFileSize(long maxManifestFileSize)
DBOptionsInterfacesetMaxManifestFileSize in interface DBOptionsInterfacemaxManifestFileSize - the size limit of a manifest file.public long maxManifestFileSize()
DBOptionsInterfacemaxManifestFileSize in interface DBOptionsInterfacepublic DBOptions setTableCacheNumshardbits(int tableCacheNumshardbits)
DBOptionsInterfacesetTableCacheNumshardbits in interface DBOptionsInterfacetableCacheNumshardbits - the number of chardspublic int tableCacheNumshardbits()
DBOptionsInterfacetableCacheNumshardbits in interface DBOptionsInterfacepublic DBOptions setTableCacheRemoveScanCountLimit(int limit)
DBOptionsInterfacesetTableCacheRemoveScanCountLimit in interface DBOptionsInterfacelimit - scan count limitpublic int tableCacheRemoveScanCountLimit()
DBOptionsInterfacetableCacheRemoveScanCountLimit in interface DBOptionsInterfacepublic DBOptions setWalTtlSeconds(long walTtlSeconds)
DBOptionsInterfaceDBOptionsInterface.walTtlSeconds() and DBOptionsInterface.walSizeLimitMB() affect how archived logs
will be deleted.
setWalTtlSeconds in interface DBOptionsInterfacewalTtlSeconds - the ttl secondsDBOptionsInterface.setWalSizeLimitMB(long)public long walTtlSeconds()
DBOptionsInterfacewalTtlSeconds in interface DBOptionsInterfaceDBOptionsInterface.walSizeLimitMB()public DBOptions setWalSizeLimitMB(long sizeLimitMB)
DBOptionsInterfacesetWalSizeLimitMB in interface DBOptionsInterfacesizeLimitMB - size limit in mega-bytes.DBOptionsInterface.setWalSizeLimitMB(long)public long walSizeLimitMB()
DBOptionsInterfaceDBOptionsInterface.walTtlSeconds() and #walSizeLimitMB() affect how archived logs
will be deleted.
walSizeLimitMB in interface DBOptionsInterfaceDBOptionsInterface.walSizeLimitMB()public DBOptions setManifestPreallocationSize(long size)
DBOptionsInterfacesetManifestPreallocationSize in interface DBOptionsInterfacesize - the size in bytepublic long manifestPreallocationSize()
DBOptionsInterfacemanifestPreallocationSize in interface DBOptionsInterfacepublic DBOptions setAllowOsBuffer(boolean allowOsBuffer)
DBOptionsInterfacesetAllowOsBuffer in interface DBOptionsInterfaceallowOsBuffer - if true, then OS buffering is allowed.public boolean allowOsBuffer()
DBOptionsInterfaceallowOsBuffer in interface DBOptionsInterfacepublic DBOptions setAllowMmapReads(boolean allowMmapReads)
DBOptionsInterfacesetAllowMmapReads in interface DBOptionsInterfaceallowMmapReads - true if mmap reads are allowed.public boolean allowMmapReads()
DBOptionsInterfaceallowMmapReads in interface DBOptionsInterfacepublic DBOptions setAllowMmapWrites(boolean allowMmapWrites)
DBOptionsInterfacesetAllowMmapWrites in interface DBOptionsInterfaceallowMmapWrites - true if mmap writes are allowd.public boolean allowMmapWrites()
DBOptionsInterfaceallowMmapWrites in interface DBOptionsInterfacepublic DBOptions setIsFdCloseOnExec(boolean isFdCloseOnExec)
DBOptionsInterfacesetIsFdCloseOnExec in interface DBOptionsInterfaceisFdCloseOnExec - true if child process inheriting open
files is disabled.public boolean isFdCloseOnExec()
DBOptionsInterfaceisFdCloseOnExec in interface DBOptionsInterface@Deprecated public DBOptions setSkipLogErrorOnRecovery(boolean skip)
DBOptionsInterfacesetSkipLogErrorOnRecovery in interface DBOptionsInterfaceskip - true if log corruption errors are skipped during recovery.@Deprecated public boolean skipLogErrorOnRecovery()
DBOptionsInterfaceskipLogErrorOnRecovery in interface DBOptionsInterfacepublic DBOptions setStatsDumpPeriodSec(int statsDumpPeriodSec)
DBOptionsInterfacesetStatsDumpPeriodSec in interface DBOptionsInterfacestatsDumpPeriodSec - time interval in seconds.public int statsDumpPeriodSec()
DBOptionsInterfacestatsDumpPeriodSec in interface DBOptionsInterfacepublic DBOptions setAdviseRandomOnOpen(boolean adviseRandomOnOpen)
DBOptionsInterfacesetAdviseRandomOnOpen in interface DBOptionsInterfaceadviseRandomOnOpen - true if hinting random access is on.public boolean adviseRandomOnOpen()
DBOptionsInterfaceadviseRandomOnOpen in interface DBOptionsInterfacepublic DBOptions setUseAdaptiveMutex(boolean useAdaptiveMutex)
DBOptionsInterfacesetUseAdaptiveMutex in interface DBOptionsInterfaceuseAdaptiveMutex - true if adaptive mutex is used.public boolean useAdaptiveMutex()
DBOptionsInterfaceuseAdaptiveMutex in interface DBOptionsInterfacepublic DBOptions setBytesPerSync(long bytesPerSync)
DBOptionsInterfacesetBytesPerSync in interface DBOptionsInterfacebytesPerSync - size in bytespublic long bytesPerSync()
DBOptionsInterfacebytesPerSync in interface DBOptionsInterfaceprotected void disposeInternal()
disposeInternal in class RocksObject