org.rocksdb.IngestExternalFileOptions Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of rocksdbjni Show documentation
Show all versions of rocksdbjni Show documentation
RocksDB fat jar that contains .so files for linux32 and linux64 (glibc and musl-libc), jnilib files
for Mac OSX, and a .dll for Windows x64.
package org.rocksdb;
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
// This source code is licensed under both the GPLv2 (found in the
// COPYING file in the root directory) and Apache 2.0 License
// (found in the LICENSE.Apache file in the root directory).
import java.util.List;
/**
* IngestExternalFileOptions is used by {@link RocksDB#ingestExternalFile(ColumnFamilyHandle, List, IngestExternalFileOptions)}
*/
public class IngestExternalFileOptions extends RocksObject {
public IngestExternalFileOptions() {
super(newIngestExternalFileOptions());
}
/**
* @param moveFiles {@link #setMoveFiles(boolean)}
* @param snapshotConsistency {@link #setSnapshotConsistency(boolean)}
* @param allowGlobalSeqNo {@link #setAllowGlobalSeqNo(boolean)}
* @param allowBlockingFlush {@link #setAllowBlockingFlush(boolean)}
*/
public IngestExternalFileOptions(final boolean moveFiles,
final boolean snapshotConsistency, final boolean allowGlobalSeqNo,
final boolean allowBlockingFlush) {
super(newIngestExternalFileOptions(moveFiles, snapshotConsistency,
allowGlobalSeqNo, allowBlockingFlush));
}
/**
* Can be set to true to move the files instead of copying them.
*
* @return true if files will be moved
*/
public boolean moveFiles() {
return moveFiles(nativeHandle_);
}
/**
* Can be set to true to move the files instead of copying them.
*
* @param moveFiles true if files should be moved instead of copied
*/
public void setMoveFiles(final boolean moveFiles) {
setMoveFiles(nativeHandle_, moveFiles);
}
/**
* If set to false, an ingested file keys could appear in existing snapshots
* that where created before the file was ingested.
*
* @return true if snapshot consistency is assured
*/
public boolean snapshotConsistency() {
return snapshotConsistency(nativeHandle_);
}
/**
* If set to false, an ingested file keys could appear in existing snapshots
* that where created before the file was ingested.
*
* @param snapshotConsistency true if snapshot consistency is required
*/
public void setSnapshotConsistency(final boolean snapshotConsistency) {
setSnapshotConsistency(nativeHandle_, snapshotConsistency);
}
/**
* If set to false, {@link RocksDB#ingestExternalFile(ColumnFamilyHandle, List, IngestExternalFileOptions)}
* will fail if the file key range overlaps with existing keys or tombstones in the DB.
*
* @return true if global seq numbers are assured
*/
public boolean allowGlobalSeqNo() {
return allowGlobalSeqNo(nativeHandle_);
}
/**
* If set to false, {@link RocksDB#ingestExternalFile(ColumnFamilyHandle, List, IngestExternalFileOptions)}
* will fail if the file key range overlaps with existing keys or tombstones in the DB.
*
* @param allowGlobalSeqNo true if global seq numbers are required
*/
public void setAllowGlobalSeqNo(final boolean allowGlobalSeqNo) {
setAllowGlobalSeqNo(nativeHandle_, allowGlobalSeqNo);
}
/**
* If set to false and the file key range overlaps with the memtable key range
* (memtable flush required), IngestExternalFile will fail.
*
* @return true if blocking flushes may occur
*/
public boolean allowBlockingFlush() {
return allowBlockingFlush(nativeHandle_);
}
/**
* If set to false and the file key range overlaps with the memtable key range
* (memtable flush required), IngestExternalFile will fail.
*
* @param allowBlockingFlush true if blocking flushes are allowed
*/
public void setAllowBlockingFlush(final boolean allowBlockingFlush) {
setAllowBlockingFlush(nativeHandle_, allowBlockingFlush);
}
private native static long newIngestExternalFileOptions();
private native static long newIngestExternalFileOptions(
final boolean moveFiles, final boolean snapshotConsistency,
final boolean allowGlobalSeqNo, final boolean allowBlockingFlush);
private native boolean moveFiles(final long handle);
private native void setMoveFiles(final long handle, final boolean move_files);
private native boolean snapshotConsistency(final long handle);
private native void setSnapshotConsistency(final long handle,
final boolean snapshotConsistency);
private native boolean allowGlobalSeqNo(final long handle);
private native void setAllowGlobalSeqNo(final long handle,
final boolean allowGloablSeqNo);
private native boolean allowBlockingFlush(final long handle);
private native void setAllowBlockingFlush(final long handle,
final boolean allowBlockingFlush);
@Override protected final native void disposeInternal(final long handle);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy