public class BackupEngineOptions extends RocksObject
BackupEngineOptions controls the behavior of a
BackupEngine
.
Note that dispose() must be called before an Options instance become out-of-scope to release the allocated memory in c++.
BackupEngine
nativeHandle_
owningHandle_
Constructor and Description |
---|
BackupEngineOptions(java.lang.String path)
BackupEngineOptions constructor.
|
Modifier and Type | Method and Description |
---|---|
java.lang.String |
backupDir()
Returns the path to the BackupEngine directory.
|
Env |
backupEnv()
Backup Env object.
|
boolean |
backupLogFiles()
Return information if log files shall be persisted.
|
long |
backupRateLimit()
Return backup rate limit which described the max bytes that can be
transferred in a second during backup.
|
RateLimiter |
backupRateLimiter()
Backup rate limiter.
|
long |
callbackTriggerIntervalSize()
During backup user can get callback every time next
#callbackTriggerIntervalSize() bytes being copied. |
boolean |
destroyOldData()
Returns if old data will be destroyed will performing new backups.
|
protected void |
disposeInternal(long handle) |
Logger |
infoLog()
Set the logger to use for Backup info and error messages
|
int |
maxBackgroundOperations()
Up to this many background threads will copy files for
BackupEngine.createNewBackup(RocksDB, boolean) and
BackupEngine.restoreDbFromBackup(int, String, String, RestoreOptions)
Default: 1 |
long |
restoreRateLimit()
Return restore rate limit which described the max bytes that can be
transferred in a second during restore.
|
RateLimiter |
restoreRateLimiter()
Restore rate limiter.
|
BackupEngineOptions |
setBackupEnv(Env env)
Backup Env object.
|
BackupEngineOptions |
setBackupLogFiles(boolean backupLogFiles)
Set if log files shall be persisted.
|
BackupEngineOptions |
setBackupRateLimit(long backupRateLimit)
Set backup rate limit.
|
BackupEngineOptions |
setBackupRateLimiter(RateLimiter backupRateLimiter)
Backup rate limiter.
|
BackupEngineOptions |
setCallbackTriggerIntervalSize(long callbackTriggerIntervalSize)
During backup user can get callback every time next
callbackTriggerIntervalSize() bytes being copied. |
BackupEngineOptions |
setDestroyOldData(boolean destroyOldData)
Set if old data will be destroyed.
|
BackupEngineOptions |
setInfoLog(Logger logger)
Set the logger to use for Backup info and error messages
|
BackupEngineOptions |
setMaxBackgroundOperations(int maxBackgroundOperations)
Up to this many background threads will copy files for
BackupEngine.createNewBackup(RocksDB, boolean) and
BackupEngine.restoreDbFromBackup(int, String, String, RestoreOptions)
Default: 1 |
BackupEngineOptions |
setRestoreRateLimit(long restoreRateLimit)
Set restore rate limit.
|
BackupEngineOptions |
setRestoreRateLimiter(RateLimiter restoreRateLimiter)
Restore rate limiter.
|
BackupEngineOptions |
setShareFilesWithChecksum(boolean shareFilesWithChecksum)
Only used if share_table_files is set to true.
|
BackupEngineOptions |
setShareTableFiles(boolean shareTableFiles)
Share table files between backups.
|
BackupEngineOptions |
setSync(boolean sync)
Set synchronous backups.
|
boolean |
shareFilesWithChecksum()
Return of share files with checksum is active.
|
boolean |
shareTableFiles()
Share table files between backups.
|
boolean |
sync()
Are synchronous backups activated.
|
disposeInternal, getNativeHandle
close, disOwnNativeHandle, isOwningHandle
public BackupEngineOptions(java.lang.String path)
BackupEngineOptions constructor.
path
- Where to keep the backup files. Has to be different from db
name. Best to set this to db name_ + "/backups"
java.lang.IllegalArgumentException
- if illegal path is used.public java.lang.String backupDir()
Returns the path to the BackupEngine directory.
public BackupEngineOptions setBackupEnv(Env env)
Default: null
env
- The environment to usepublic Env backupEnv()
Default: null
public BackupEngineOptions setShareTableFiles(boolean shareTableFiles)
Share table files between backups.
shareTableFiles
- If share_table_files == true
, backup will
assume that table files with same name have the same contents. This
enables incremental backups and avoids unnecessary data copies. If
share_table_files == false
, each backup will be on its own and
will not share any data with other backups.
Default: true
public boolean shareTableFiles()
Share table files between backups.
public BackupEngineOptions setInfoLog(Logger logger)
logger
- The logger to use for the backuppublic Logger infoLog()
Default: null
public BackupEngineOptions setSync(boolean sync)
Set synchronous backups.
sync
- If sync == true
, we can guarantee you'll get consistent
backup even on a machine crash/reboot. Backup process is slower with sync
enabled. If sync == false
, we don't guarantee anything on machine
reboot. However, chances are some backups are consistent.
Default: true
public boolean sync()
Are synchronous backups activated.
public BackupEngineOptions setDestroyOldData(boolean destroyOldData)
Set if old data will be destroyed.
destroyOldData
- If true, it will delete whatever backups there are
already.
Default: false
public boolean destroyOldData()
Returns if old data will be destroyed will performing new backups.
public BackupEngineOptions setBackupLogFiles(boolean backupLogFiles)
Set if log files shall be persisted.
backupLogFiles
- If false, we won't back up log files. This option can
be useful for backing up in-memory databases where log file are
persisted, but table files are in memory.
Default: true
public boolean backupLogFiles()
Return information if log files shall be persisted.
public BackupEngineOptions setBackupRateLimit(long backupRateLimit)
Set backup rate limit.
backupRateLimit
- Max bytes that can be transferred in a second during
backup. If 0 or negative, then go as fast as you can.
Default: 0
public long backupRateLimit()
Return backup rate limit which described the max bytes that can be transferred in a second during backup.
public BackupEngineOptions setBackupRateLimiter(RateLimiter backupRateLimiter)
backupRateLimit()
is ignored.
Default: null
backupRateLimiter
- The rate limiter to use for the backuppublic RateLimiter backupRateLimiter()
backupRateLimit()
is ignored.
Default: null
public BackupEngineOptions setRestoreRateLimit(long restoreRateLimit)
Set restore rate limit.
restoreRateLimit
- Max bytes that can be transferred in a second
during restore. If 0 or negative, then go as fast as you can.
Default: 0
public long restoreRateLimit()
Return restore rate limit which described the max bytes that can be transferred in a second during restore.
public BackupEngineOptions setRestoreRateLimiter(RateLimiter restoreRateLimiter)
restoreRateLimit()
is ignored.
Default: null
restoreRateLimiter
- The rate limiter to use during restorepublic RateLimiter restoreRateLimiter()
restoreRateLimit()
is ignored.
Default: null
public BackupEngineOptions setShareFilesWithChecksum(boolean shareFilesWithChecksum)
Only used if share_table_files is set to true. If true, will consider that backups can come from different databases, hence a sst is not uniquely identified by its name, but by the triple (file name, crc32, file length)
shareFilesWithChecksum
- boolean value indicating if SST files are
stored using the triple (file name, crc32, file length) and not its name.
Note: this is an experimental option, and you'll need to set it manually turn it on only if you know what you're doing*
Default: false
public boolean shareFilesWithChecksum()
Return of share files with checksum is active.
public BackupEngineOptions setMaxBackgroundOperations(int maxBackgroundOperations)
BackupEngine.createNewBackup(RocksDB, boolean)
and
BackupEngine.restoreDbFromBackup(int, String, String, RestoreOptions)
Default: 1maxBackgroundOperations
- The maximum number of background threadspublic int maxBackgroundOperations()
BackupEngine.createNewBackup(RocksDB, boolean)
and
BackupEngine.restoreDbFromBackup(int, String, String, RestoreOptions)
Default: 1public BackupEngineOptions setCallbackTriggerIntervalSize(long callbackTriggerIntervalSize)
callbackTriggerIntervalSize()
bytes being copied.
Default: 4194304
callbackTriggerIntervalSize
- The interval size for the
callback triggerpublic long callbackTriggerIntervalSize()
#callbackTriggerIntervalSize()
bytes being copied.
Default: 4194304
protected final void disposeInternal(long handle)
disposeInternal
in class RocksObject