Summary:
Remove orphaned Java classes that were missed from commit 9385fd7
Closes https://github.com/facebook/rocksdb/issues/2210
Closes https://github.com/facebook/rocksdb/pull/2212
Differential Revision: D4986199
Pulled By: maysamyabandeh
fbshipit-source-id: 74e866cd8661c172a4754c2c945e30d650f6fa05
main
parent
5e2ebf2bdc
commit
498693cf3e
@ -1,167 +0,0 @@ |
||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||
// This source code is licensed under the BSD-style license found in the
|
||||
// LICENSE file in the root directory of this source tree. An additional grant
|
||||
// of patent rights can be found in the PATENTS file in the same directory.
|
||||
|
||||
package org.rocksdb; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* <p>A subclass of RocksDB which supports |
||||
* backup-related operations.</p> |
||||
* |
||||
* @see org.rocksdb.BackupableDBOptions |
||||
*/ |
||||
public class BackupableDB extends RocksDB { |
||||
/** |
||||
* <p>Open a {@code BackupableDB} under the specified path. |
||||
* Note that the backup path should be set properly in the |
||||
* input BackupableDBOptions.</p> |
||||
* |
||||
* @param opt {@link org.rocksdb.Options} to set for the database. |
||||
* @param bopt {@link org.rocksdb.BackupableDBOptions} to use. |
||||
* @param db_path Path to store data to. The path for storing the backup |
||||
* should be specified in the {@link org.rocksdb.BackupableDBOptions}. |
||||
* |
||||
* @return {@link BackupableDB} reference to the opened database. |
||||
* |
||||
* @throws RocksDBException thrown if error happens in underlying |
||||
* native library. |
||||
*/ |
||||
public static BackupableDB open( |
||||
final Options opt, final BackupableDBOptions bopt, final String db_path) |
||||
throws RocksDBException { |
||||
|
||||
final RocksDB db = RocksDB.open(opt, db_path); |
||||
final BackupableDB bdb = new BackupableDB(open(db.nativeHandle_, |
||||
bopt.nativeHandle_)); |
||||
|
||||
// Prevent the RocksDB object from attempting to delete
|
||||
// the underly C++ DB object.
|
||||
db.disOwnNativeHandle(); |
||||
|
||||
return bdb; |
||||
} |
||||
|
||||
/** |
||||
* <p>Captures the state of the database in the latest backup. |
||||
* Note that this function is not thread-safe.</p> |
||||
* |
||||
* @param flushBeforeBackup if true, then all data will be flushed |
||||
* before creating backup. |
||||
* |
||||
* @throws RocksDBException thrown if error happens in underlying |
||||
* native library. |
||||
*/ |
||||
public void createNewBackup(final boolean flushBeforeBackup) |
||||
throws RocksDBException { |
||||
assert(isOwningHandle()); |
||||
createNewBackup(nativeHandle_, flushBeforeBackup); |
||||
} |
||||
|
||||
/** |
||||
* <p>Deletes old backups, keeping latest numBackupsToKeep alive.</p> |
||||
* |
||||
* @param numBackupsToKeep Number of latest backups to keep. |
||||
* |
||||
* @throws RocksDBException thrown if error happens in underlying |
||||
* native library. |
||||
*/ |
||||
public void purgeOldBackups(final int numBackupsToKeep) |
||||
throws RocksDBException { |
||||
assert(isOwningHandle()); |
||||
purgeOldBackups(nativeHandle_, numBackupsToKeep); |
||||
} |
||||
|
||||
/** |
||||
* <p>Deletes a specific backup.</p> |
||||
* |
||||
* @param backupId of backup to delete. |
||||
* |
||||
* @throws RocksDBException thrown if error happens in underlying |
||||
* native library. |
||||
*/ |
||||
public void deleteBackup(final int backupId) throws RocksDBException { |
||||
assert(isOwningHandle()); |
||||
deleteBackup0(nativeHandle_, backupId); |
||||
} |
||||
|
||||
/** |
||||
* <p>Returns a list of {@link BackupInfo} instances, which describe |
||||
* already made backups.</p> |
||||
* |
||||
* @return List of {@link BackupInfo} instances. |
||||
*/ |
||||
public List<BackupInfo> getBackupInfos() { |
||||
assert(isOwningHandle()); |
||||
return getBackupInfo(nativeHandle_); |
||||
} |
||||
|
||||
/** |
||||
* <p>Returns a list of corrupted backup ids. If there |
||||
* is no corrupted backup the method will return an |
||||
* empty list.</p> |
||||
* |
||||
* @return array of backup ids as int ids. |
||||
*/ |
||||
public int[] getCorruptedBackups() { |
||||
assert(isOwningHandle()); |
||||
return getCorruptedBackups(nativeHandle_); |
||||
} |
||||
|
||||
/** |
||||
* <p>Will delete all the files we don't need anymore. It will |
||||
* do the full scan of the files/ directory and delete all the |
||||
* files that are not referenced.</p> |
||||
* |
||||
* @throws RocksDBException thrown if error happens in underlying |
||||
* native library. |
||||
*/ |
||||
public void garbageCollect() throws RocksDBException { |
||||
assert(isOwningHandle()); |
||||
garbageCollect(nativeHandle_); |
||||
} |
||||
|
||||
/** |
||||
* <p>Close the BackupableDB instance and release resource.</p> |
||||
* |
||||
* <p>Internally, {@link BackupableDB} owns the {@code rocksdb::DB} |
||||
* pointer to its associated {@link org.rocksdb.RocksDB}. |
||||
* 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 void close() { |
||||
super.close(); |
||||
} |
||||
|
||||
/** |
||||
* <p>A protected construction that will be used in the static |
||||
* factory method {@link #open(Options, BackupableDBOptions, String)}. |
||||
* </p> |
||||
* |
||||
* @param nativeHandle The native handle of the C++ BackupableDB object |
||||
*/ |
||||
protected BackupableDB(final long nativeHandle) { |
||||
super(nativeHandle); |
||||
} |
||||
|
||||
@Override protected void finalize() throws Throwable { |
||||
close(); |
||||
super.finalize(); |
||||
} |
||||
|
||||
protected native static long open(final long rocksDBHandle, |
||||
final long backupDBOptionsHandle); |
||||
protected native void createNewBackup(long handle, boolean flag) |
||||
throws RocksDBException; |
||||
protected native void purgeOldBackups(long handle, int numBackupsToKeep) |
||||
throws RocksDBException; |
||||
private native void deleteBackup0(long nativeHandle, int backupId) |
||||
throws RocksDBException; |
||||
protected native List<BackupInfo> getBackupInfo(long handle); |
||||
private native int[] getCorruptedBackups(long handle); |
||||
private native void garbageCollect(long handle) |
||||
throws RocksDBException; |
||||
} |
@ -1,158 +0,0 @@ |
||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||
// This source code is licensed under the BSD-style license found in the
|
||||
// LICENSE file in the root directory of this source tree. An additional grant
|
||||
// of patent rights can be found in the PATENTS file in the same directory.
|
||||
|
||||
package org.rocksdb; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* <p>This class is used to access information about backups and |
||||
* restore from them.</p> |
||||
* |
||||
* <p>Note: {@code dispose()} must be called before this instance |
||||
* become out-of-scope to release the allocated |
||||
* memory in c++.</p> |
||||
* |
||||
*/ |
||||
public class RestoreBackupableDB extends RocksObject { |
||||
/** |
||||
* <p>Construct new estoreBackupableDB instance.</p> |
||||
* |
||||
* @param options {@link org.rocksdb.BackupableDBOptions} instance |
||||
*/ |
||||
public RestoreBackupableDB(final BackupableDBOptions options) { |
||||
super(newRestoreBackupableDB(options.nativeHandle_)); |
||||
} |
||||
|
||||
/** |
||||
* <p>Restore from backup with backup_id.</p> |
||||
* |
||||
* <p><strong>Important</strong>: 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.</p> |
||||
* |
||||
* <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 dbDir database directory to restore to |
||||
* @param walDir directory where wal files are located |
||||
* @param restoreOptions {@link org.rocksdb.RestoreOptions} instance. |
||||
* |
||||
* @throws RocksDBException thrown if error happens in underlying |
||||
* native library. |
||||
*/ |
||||
public void restoreDBFromBackup(final long backupId, final String dbDir, |
||||
final String walDir, final RestoreOptions restoreOptions) |
||||
throws RocksDBException { |
||||
assert(isOwningHandle()); |
||||
restoreDBFromBackup0(nativeHandle_, backupId, dbDir, walDir, |
||||
restoreOptions.nativeHandle_); |
||||
} |
||||
|
||||
/** |
||||
* <p>Restore from the latest backup.</p> |
||||
* |
||||
* @param dbDir database directory to restore to |
||||
* @param walDir directory where wal files are located |
||||
* @param restoreOptions {@link org.rocksdb.RestoreOptions} instance |
||||
* |
||||
* @throws RocksDBException thrown if error happens in underlying |
||||
* native library. |
||||
*/ |
||||
public void restoreDBFromLatestBackup(final String dbDir, |
||||
final String walDir, final RestoreOptions restoreOptions) |
||||
throws RocksDBException { |
||||
assert(isOwningHandle()); |
||||
restoreDBFromLatestBackup0(nativeHandle_, dbDir, walDir, |
||||
restoreOptions.nativeHandle_); |
||||
} |
||||
|
||||
/** |
||||
* <p>Deletes old backups, keeping latest numBackupsToKeep alive.</p> |
||||
* |
||||
* @param numBackupsToKeep of latest backups to keep |
||||
* |
||||
* @throws RocksDBException thrown if error happens in underlying |
||||
* native library. |
||||
*/ |
||||
public void purgeOldBackups(final int numBackupsToKeep) |
||||
throws RocksDBException { |
||||
assert(isOwningHandle()); |
||||
purgeOldBackups0(nativeHandle_, numBackupsToKeep); |
||||
} |
||||
|
||||
/** |
||||
* <p>Deletes a specific backup.</p> |
||||
* |
||||
* @param backupId of backup to delete. |
||||
* |
||||
* @throws RocksDBException thrown if error happens in underlying |
||||
* native library. |
||||
*/ |
||||
public void deleteBackup(final int backupId) |
||||
throws RocksDBException { |
||||
assert(isOwningHandle()); |
||||
deleteBackup0(nativeHandle_, backupId); |
||||
} |
||||
|
||||
/** |
||||
* <p>Returns a list of {@link BackupInfo} instances, which describe |
||||
* already made backups.</p> |
||||
* |
||||
* @return List of {@link BackupInfo} instances. |
||||
*/ |
||||
public List<BackupInfo> getBackupInfos() { |
||||
assert(isOwningHandle()); |
||||
return getBackupInfo(nativeHandle_); |
||||
} |
||||
|
||||
/** |
||||
* <p>Returns a list of corrupted backup ids. If there |
||||
* is no corrupted backup the method will return an |
||||
* empty list.</p> |
||||
* |
||||
* @return array of backup ids as int ids. |
||||
*/ |
||||
public int[] getCorruptedBackups() { |
||||
assert(isOwningHandle()); |
||||
return getCorruptedBackups(nativeHandle_); |
||||
} |
||||
|
||||
/** |
||||
* <p>Will delete all the files we don't need anymore. It will |
||||
* do the full scan of the files/ directory and delete all the |
||||
* files that are not referenced.</p> |
||||
* |
||||
* @throws RocksDBException thrown if error happens in underlying |
||||
* native library. |
||||
*/ |
||||
public void garbageCollect() throws RocksDBException { |
||||
assert(isOwningHandle()); |
||||
garbageCollect(nativeHandle_); |
||||
} |
||||
|
||||
private native static long newRestoreBackupableDB(final long options); |
||||
private native void restoreDBFromBackup0(long nativeHandle, long backupId, |
||||
String dbDir, String walDir, long restoreOptions) |
||||
throws RocksDBException; |
||||
private native void restoreDBFromLatestBackup0(long nativeHandle, |
||||
String dbDir, String walDir, long restoreOptions) |
||||
throws RocksDBException; |
||||
private native void purgeOldBackups0(long nativeHandle, int numBackupsToKeep) |
||||
throws RocksDBException; |
||||
private native void deleteBackup0(long nativeHandle, int backupId) |
||||
throws RocksDBException; |
||||
private native List<BackupInfo> getBackupInfo(long handle); |
||||
private native int[] getCorruptedBackups(long handle); |
||||
private native void garbageCollect(long handle) |
||||
throws RocksDBException; |
||||
@Override protected final native void disposeInternal( |
||||
final long nativeHandle); |
||||
} |
Loading…
Reference in new issue