public void backup() { resetDbLock.readLock().lock(); if (logger.isTraceEnabled()) logger.trace("~> RocksDbDataSource.backup(): " + name); Path path = backupPath(); path.toFile().mkdirs(); try (BackupableDBOptions backupOptions = new BackupableDBOptions(path.toString()); BackupEngine backups = BackupEngine.open(Env.getDefault(), backupOptions)) { backups.createNewBackup(db, true); if (logger.isTraceEnabled()) logger.trace("<~ RocksDbDataSource.backup(): " + name + " done"); } catch (RocksDBException e) { logger.error("Failed to backup database '{}'", name, e); hintOnTooManyOpenFiles(e); throw new RuntimeException(e); } finally { resetDbLock.readLock().unlock(); } }
Env env = Env.getDefault(); env.setBackgroundThreads(8, Env.FLUSH_POOL); env.setBackgroundThreads(8, Env.COMPACTION_POOL); Options options = new Options(); options.setCreateIfMissing(true);
/** * <p>Sets the number of background worker threads of the flush pool * for this environment.</p> * <p>Default number: 1</p> * * @param num the number of threads * * @return current {@link RocksEnv} instance. */ public Env setBackgroundThreads(final int num) { return setBackgroundThreads(num, FLUSH_POOL); }
/** * <p>Returns the length of the queue associated with the specified * thread pool.</p> * * @param poolID the id to specified a thread pool. Should be either * FLUSH_POOL or COMPACTION_POOL. * * @return the thread pool queue length. */ public int getThreadPoolQueueLen(final int poolID) { return getThreadPoolQueueLen(nativeHandle_, poolID); }
default_env_ = new RocksEnv(getDefaultEnvInternal());
/** * <p>Sets the number of background worker threads of the specified thread * pool for this environment.</p> * * @param num the number of threads * @param poolID the id to specified a thread pool. Should be either * FLUSH_POOL or COMPACTION_POOL. * * <p>Default number: 1</p> * @return current {@link RocksEnv} instance. */ public Env setBackgroundThreads(final int num, final int poolID) { setBackgroundThreads(nativeHandle_, num, poolID); return this; }
try (BackupableDBOptions backupOptions = new BackupableDBOptions(backupPath().toString()); RestoreOptions restoreOptions = new RestoreOptions(false); BackupEngine backups = BackupEngine.open(Env.getDefault(), backupOptions)) {
public DBSharder(String dbpath, Long timestamp) throws RocksDBException { log = LoggerFactory.getLogger(DBSharder.class); RocksDB.loadLibrary(); options = new Options(); env = options.getEnv(); env.setBackgroundThreads(2); options.setEnv(env); options.setCreateIfMissing(true); options.setDbLogDir(dbpath + "/logs/"); options.setMergeOperator(new StringAppendOperator()); db = RocksDB.open(options, dbpath + "/" + timestamp); }
/** * Construct options for opening a RocksDB. Reusing database options * and column family options. * * @param dbOptions {@link org.rocksdb.DBOptions} instance * @param columnFamilyOptions {@link org.rocksdb.ColumnFamilyOptions} * instance */ public Options(final DBOptions dbOptions, final ColumnFamilyOptions columnFamilyOptions) { super(newOptions(dbOptions.nativeHandle_, columnFamilyOptions.nativeHandle_)); env_ = Env.getDefault(); }
/** * Builds RocksDb {@link Options}. * * @param maxBackgroundThreads * @param levelZeloFileNumCompactionTrigger * @param writeBufferSize * @param targetFileSizeBase * @return */ public static Options buildOptions(int maxBackgroundThreads, int levelZeloFileNumCompactionTrigger, long writeBufferSize, long targetFileSizeBase) { Options rocksOptions = new Options(); rocksOptions.setCreateIfMissing(true).getEnv().setBackgroundThreads(1, Env.FLUSH_POOL) .setBackgroundThreads(maxBackgroundThreads, Env.COMPACTION_POOL); rocksOptions.setMaxBackgroundFlushes(1).setMaxBackgroundCompactions(maxBackgroundThreads); rocksOptions.setWriteBufferSize(writeBufferSize).setMinWriteBufferNumberToMerge(2) .setLevelZeroFileNumCompactionTrigger(levelZeloFileNumCompactionTrigger) .setTargetFileSizeBase(targetFileSizeBase); rocksOptions.setMemTableConfig(new SkipListMemTableConfig()); // rocksOptions.setMemTableConfig(new HashSkipListMemTableConfig()); // rocksOptions.setMemTableConfig(new HashLinkedListMemTableConfig()); return rocksOptions; }
/** * Construct options for opening a RocksDB. * * This constructor will create (by allocating a block of memory) * an {@code rocksdb::Options} in the c++ side. */ public Options() { super(newOptions()); env_ = Env.getDefault(); }
/** * Backups the DB to a local path. * @param backupPath - The local backup path */ protected void backup(String backupPath) throws RocksDBException { File file = new File(backupPath); if(!file.exists()) file.mkdir(); BackupableDBOptions backupOptions = new BackupableDBOptions(backupPath) .setShareTableFiles(true) .setMaxBackgroundOperations(parallelism); BackupEngine backupEngine = BackupEngine.open(Env.getDefault(), backupOptions); backupEngine.createNewBackup(rocksDB, true); backupEngine.purgeOldBackups(backupsToKeep); backupEngine.close(); backupOptions.close(); }
.setShareTableFiles(true) .setMaxBackgroundOperations(parallelism); BackupEngine backupEngine = BackupEngine.open(Env.getDefault(), backupOptions); List<BackupInfo> backupInfo = backupEngine.getBackupInfo(); if(backupInfo.size() > 0) {