[RocksJava] Cleanup Backupable implementations
- Correct usage of isInitialized() - Adjusted JavaDoc
This commit is contained in:
parent
fa703efb28
commit
d7529b2de9
@ -8,21 +8,23 @@ package org.rocksdb;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A subclass of RocksDB which supports backup-related operations.
|
* <p>A subclass of RocksDB which supports
|
||||||
|
* backup-related operations.</p>
|
||||||
*
|
*
|
||||||
* @see org.rocksdb.BackupableDBOptions
|
* @see org.rocksdb.BackupableDBOptions
|
||||||
*/
|
*/
|
||||||
public class BackupableDB extends RocksDB {
|
public class BackupableDB extends RocksDB {
|
||||||
/**
|
/**
|
||||||
* Open a {@code BackupableDB} under the specified path.
|
* <p>Open a {@code BackupableDB} under the specified path.
|
||||||
* Note that the backup path should be set properly in the
|
* Note that the backup path should be set properly in the
|
||||||
* input BackupableDBOptions.
|
* input BackupableDBOptions.</p>
|
||||||
*
|
*
|
||||||
* @param opt {@link org.rocksdb.Options} to set for the database.
|
* @param opt {@link org.rocksdb.Options} to set for the database.
|
||||||
* @param bopt {@link org.rocksdb.BackupableDBOptions} to use.
|
* @param bopt {@link org.rocksdb.BackupableDBOptions} to use.
|
||||||
* @param db_path Path to store data to. The path for storing the backup should be
|
* @param db_path Path to store data to. The path for storing the backup should be
|
||||||
* specified in the {@link org.rocksdb.BackupableDBOptions}.
|
* specified in the {@link org.rocksdb.BackupableDBOptions}.
|
||||||
* @return BackupableDB reference to the opened database.
|
*
|
||||||
|
* @return {@link BackupableDB} reference to the opened database.
|
||||||
*
|
*
|
||||||
* @throws RocksDBException thrown if error happens in underlying
|
* @throws RocksDBException thrown if error happens in underlying
|
||||||
* native library.
|
* native library.
|
||||||
@ -43,8 +45,8 @@ public class BackupableDB extends RocksDB {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Captures the state of the database in the latest backup.
|
* <p>Captures the state of the database in the latest backup.
|
||||||
* Note that this function is not thread-safe.
|
* Note that this function is not thread-safe.</p>
|
||||||
*
|
*
|
||||||
* @param flushBeforeBackup if true, then all data will be flushed
|
* @param flushBeforeBackup if true, then all data will be flushed
|
||||||
* before creating backup.
|
* before creating backup.
|
||||||
@ -54,11 +56,12 @@ public class BackupableDB extends RocksDB {
|
|||||||
*/
|
*/
|
||||||
public void createNewBackup(boolean flushBeforeBackup)
|
public void createNewBackup(boolean flushBeforeBackup)
|
||||||
throws RocksDBException {
|
throws RocksDBException {
|
||||||
|
assert(isInitialized());
|
||||||
createNewBackup(nativeHandle_, flushBeforeBackup);
|
createNewBackup(nativeHandle_, flushBeforeBackup);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Deletes old backups, keeping latest numBackupsToKeep alive.
|
* <p>Deletes old backups, keeping latest numBackupsToKeep alive.</p>
|
||||||
*
|
*
|
||||||
* @param numBackupsToKeep Number of latest backups to keep.
|
* @param numBackupsToKeep Number of latest backups to keep.
|
||||||
*
|
*
|
||||||
@ -67,11 +70,12 @@ public class BackupableDB extends RocksDB {
|
|||||||
*/
|
*/
|
||||||
public void purgeOldBackups(int numBackupsToKeep)
|
public void purgeOldBackups(int numBackupsToKeep)
|
||||||
throws RocksDBException {
|
throws RocksDBException {
|
||||||
|
assert(isInitialized());
|
||||||
purgeOldBackups(nativeHandle_, numBackupsToKeep);
|
purgeOldBackups(nativeHandle_, numBackupsToKeep);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Deletes a specific backup.
|
* <p>Deletes a specific backup.</p>
|
||||||
*
|
*
|
||||||
* @param backupId of backup to delete.
|
* @param backupId of backup to delete.
|
||||||
*
|
*
|
||||||
@ -79,16 +83,18 @@ public class BackupableDB extends RocksDB {
|
|||||||
* native library.
|
* native library.
|
||||||
*/
|
*/
|
||||||
public void deleteBackup(int backupId) throws RocksDBException {
|
public void deleteBackup(int backupId) throws RocksDBException {
|
||||||
|
assert(isInitialized());
|
||||||
deleteBackup0(nativeHandle_, backupId);
|
deleteBackup0(nativeHandle_, backupId);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a list of {@link BackupInfo} instances, which describe
|
* <p>Returns a list of {@link BackupInfo} instances, which describe
|
||||||
* already made backups.
|
* already made backups.</p>
|
||||||
*
|
*
|
||||||
* @return List of {@link BackupInfo} instances.
|
* @return List of {@link BackupInfo} instances.
|
||||||
*/
|
*/
|
||||||
public List<BackupInfo> getBackupInfos() {
|
public List<BackupInfo> getBackupInfos() {
|
||||||
|
assert(isInitialized());
|
||||||
return getBackupInfo(nativeHandle_);
|
return getBackupInfo(nativeHandle_);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -100,6 +106,7 @@ public class BackupableDB extends RocksDB {
|
|||||||
* @return list of backup ids as Integer.
|
* @return list of backup ids as Integer.
|
||||||
*/
|
*/
|
||||||
public List<Integer> getCorruptedBackups() {
|
public List<Integer> getCorruptedBackups() {
|
||||||
|
assert(isInitialized());
|
||||||
return getCorruptedBackups(nativeHandle_);
|
return getCorruptedBackups(nativeHandle_);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -112,15 +119,18 @@ public class BackupableDB extends RocksDB {
|
|||||||
* native library.
|
* native library.
|
||||||
*/
|
*/
|
||||||
public void garbageCollect() throws RocksDBException {
|
public void garbageCollect() throws RocksDBException {
|
||||||
|
assert(isInitialized());
|
||||||
garbageCollect(nativeHandle_);
|
garbageCollect(nativeHandle_);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Close the BackupableDB instance and release resource.
|
* <p>Close the BackupableDB instance and release resource.</p>
|
||||||
*
|
*
|
||||||
* Internally, BackupableDB owns the {@code rocksdb::DB} pointer to its associated
|
* <p>Internally, {@link BackupableDB} owns the {@code rocksdb::DB}
|
||||||
* {@link org.rocksdb.RocksDB}. The release of that RocksDB pointer is handled in the destructor
|
* pointer to its associated {@link org.rocksdb.RocksDB}.
|
||||||
* of the c++ {@code rocksdb::BackupableDB} and should be transparent to Java developers.
|
* The release of that RocksDB pointer is handled in the destructor
|
||||||
|
* of the c++ {@code rocksdb::BackupableDB} and should be transparent
|
||||||
|
* to Java developers.</p>
|
||||||
*/
|
*/
|
||||||
@Override public synchronized void close() {
|
@Override public synchronized void close() {
|
||||||
if (isInitialized()) {
|
if (isInitialized()) {
|
||||||
@ -129,8 +139,9 @@ public class BackupableDB extends RocksDB {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A protected construction that will be used in the static factory
|
* <p>A protected construction that will be used in the static
|
||||||
* method {@link #open(Options, BackupableDBOptions, String)}.
|
* factory method {@link #open(Options, BackupableDBOptions, String)}.
|
||||||
|
* </p>
|
||||||
*/
|
*/
|
||||||
protected BackupableDB() {
|
protected BackupableDB() {
|
||||||
super();
|
super();
|
||||||
|
@ -8,15 +8,17 @@ package org.rocksdb;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This class is used to access information about backups and restore from them.
|
* <p>This class is used to access information about backups and
|
||||||
|
* restore from them.</p>
|
||||||
*
|
*
|
||||||
* Note that dispose() must be called before this instance become out-of-scope
|
* <p>Note: {@code dispose()} must be called before this instance
|
||||||
* to release the allocated memory in c++.
|
* become out-of-scope to release the allocated
|
||||||
|
* memory in c++.</p>
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class RestoreBackupableDB extends RocksObject {
|
public class RestoreBackupableDB extends RocksObject {
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* <p>Construct new estoreBackupableDB instance.</p>
|
||||||
*
|
*
|
||||||
* @param options {@link org.rocksdb.BackupableDBOptions} instance
|
* @param options {@link org.rocksdb.BackupableDBOptions} instance
|
||||||
*/
|
*/
|
||||||
@ -26,16 +28,18 @@ public class RestoreBackupableDB extends RocksObject {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Restore from backup with backup_id
|
* <p>Restore from backup with backup_id.</p>
|
||||||
* IMPORTANT -- if options_.share_table_files == true and you restore DB
|
|
||||||
* from some backup that is not the latest, and you start creating new
|
|
||||||
* backups from the new DB, they will probably fail.
|
|
||||||
*
|
*
|
||||||
* Example: Let's say you have backups 1, 2, 3, 4, 5 and you restore 3.
|
* <p><strong>Important</strong>: If options_.share_table_files == true
|
||||||
* If you add new data to the DB and try creating a new backup now, the
|
* and you restore DB from some backup that is not the latest, and you
|
||||||
* database will diverge from backups 4 and 5 and the new backup will fail.
|
* start creating new backups from the new DB, they will probably
|
||||||
* If you want to create new backup, you will first have to delete backups 4
|
* fail.</p>
|
||||||
* and 5.
|
*
|
||||||
|
* <p><strong>Example</strong>: Let's say you have backups 1, 2, 3, 4, 5
|
||||||
|
* and you restore 3. If you add new data to the DB and try creating a new
|
||||||
|
* backup now, the database will diverge from backups 4 and 5 and the new
|
||||||
|
* backup will fail. If you want to create new backup, you will first have
|
||||||
|
* to delete backups 4 and 5.</p>
|
||||||
*
|
*
|
||||||
* @param backupId id pointing to backup
|
* @param backupId id pointing to backup
|
||||||
* @param dbDir database directory to restore to
|
* @param dbDir database directory to restore to
|
||||||
@ -47,12 +51,13 @@ public class RestoreBackupableDB extends RocksObject {
|
|||||||
*/
|
*/
|
||||||
public void restoreDBFromBackup(long backupId, String dbDir, String walDir,
|
public void restoreDBFromBackup(long backupId, String dbDir, String walDir,
|
||||||
RestoreOptions restoreOptions) throws RocksDBException {
|
RestoreOptions restoreOptions) throws RocksDBException {
|
||||||
|
assert(isInitialized());
|
||||||
restoreDBFromBackup0(nativeHandle_, backupId, dbDir, walDir,
|
restoreDBFromBackup0(nativeHandle_, backupId, dbDir, walDir,
|
||||||
restoreOptions.nativeHandle_);
|
restoreOptions.nativeHandle_);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Restore from the latest backup.
|
* <p>Restore from the latest backup.</p>
|
||||||
*
|
*
|
||||||
* @param dbDir database directory to restore to
|
* @param dbDir database directory to restore to
|
||||||
* @param walDir directory where wal files are located
|
* @param walDir directory where wal files are located
|
||||||
@ -63,12 +68,13 @@ public class RestoreBackupableDB extends RocksObject {
|
|||||||
*/
|
*/
|
||||||
public void restoreDBFromLatestBackup(String dbDir, String walDir,
|
public void restoreDBFromLatestBackup(String dbDir, String walDir,
|
||||||
RestoreOptions restoreOptions) throws RocksDBException {
|
RestoreOptions restoreOptions) throws RocksDBException {
|
||||||
|
assert(isInitialized());
|
||||||
restoreDBFromLatestBackup0(nativeHandle_, dbDir, walDir,
|
restoreDBFromLatestBackup0(nativeHandle_, dbDir, walDir,
|
||||||
restoreOptions.nativeHandle_);
|
restoreOptions.nativeHandle_);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Deletes old backups, keeping latest numBackupsToKeep alive.
|
* <p>Deletes old backups, keeping latest numBackupsToKeep alive.</p>
|
||||||
*
|
*
|
||||||
* @param numBackupsToKeep of latest backups to keep
|
* @param numBackupsToKeep of latest backups to keep
|
||||||
*
|
*
|
||||||
@ -76,11 +82,12 @@ public class RestoreBackupableDB extends RocksObject {
|
|||||||
* native library.
|
* native library.
|
||||||
*/
|
*/
|
||||||
public void purgeOldBackups(int numBackupsToKeep) throws RocksDBException {
|
public void purgeOldBackups(int numBackupsToKeep) throws RocksDBException {
|
||||||
|
assert(isInitialized());
|
||||||
purgeOldBackups0(nativeHandle_, numBackupsToKeep);
|
purgeOldBackups0(nativeHandle_, numBackupsToKeep);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Deletes a specific backup.
|
* <p>Deletes a specific backup.</p>
|
||||||
*
|
*
|
||||||
* @param backupId of backup to delete.
|
* @param backupId of backup to delete.
|
||||||
*
|
*
|
||||||
@ -88,16 +95,18 @@ public class RestoreBackupableDB extends RocksObject {
|
|||||||
* native library.
|
* native library.
|
||||||
*/
|
*/
|
||||||
public void deleteBackup(int backupId) throws RocksDBException {
|
public void deleteBackup(int backupId) throws RocksDBException {
|
||||||
|
assert(isInitialized());
|
||||||
deleteBackup0(nativeHandle_, backupId);
|
deleteBackup0(nativeHandle_, backupId);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a list of {@link BackupInfo} instances, which describe
|
* <p>Returns a list of {@link BackupInfo} instances, which describe
|
||||||
* already made backups.
|
* already made backups.</p>
|
||||||
*
|
*
|
||||||
* @return List of {@link BackupInfo} instances.
|
* @return List of {@link BackupInfo} instances.
|
||||||
*/
|
*/
|
||||||
public List<BackupInfo> getBackupInfos() {
|
public List<BackupInfo> getBackupInfos() {
|
||||||
|
assert(isInitialized());
|
||||||
return getBackupInfo(nativeHandle_);
|
return getBackupInfo(nativeHandle_);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -109,6 +118,7 @@ public class RestoreBackupableDB extends RocksObject {
|
|||||||
* @return list of backup ids as Integer.
|
* @return list of backup ids as Integer.
|
||||||
*/
|
*/
|
||||||
public List<Integer> getCorruptedBackups() {
|
public List<Integer> getCorruptedBackups() {
|
||||||
|
assert(isInitialized());
|
||||||
return getCorruptedBackups(nativeHandle_);
|
return getCorruptedBackups(nativeHandle_);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -121,15 +131,15 @@ public class RestoreBackupableDB extends RocksObject {
|
|||||||
* native library.
|
* native library.
|
||||||
*/
|
*/
|
||||||
public void garbageCollect() throws RocksDBException {
|
public void garbageCollect() throws RocksDBException {
|
||||||
|
assert(isInitialized());
|
||||||
garbageCollect(nativeHandle_);
|
garbageCollect(nativeHandle_);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Release the memory allocated for the current instance
|
* <p>Release the memory allocated for the current instance
|
||||||
* in the c++ side.
|
* in the c++ side.</p>
|
||||||
*/
|
*/
|
||||||
@Override public synchronized void disposeInternal() {
|
@Override public synchronized void disposeInternal() {
|
||||||
assert(isInitialized());
|
|
||||||
dispose(nativeHandle_);
|
dispose(nativeHandle_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user