public class IngestExternalFileOptions extends RocksObject
RocksDB.ingestExternalFile(ColumnFamilyHandle, List, IngestExternalFileOptions)
.nativeHandle_
owningHandle_
Constructor and Description |
---|
IngestExternalFileOptions() |
IngestExternalFileOptions(boolean moveFiles,
boolean snapshotConsistency,
boolean allowGlobalSeqNo,
boolean allowBlockingFlush) |
Modifier and Type | Method and Description |
---|---|
boolean |
allowBlockingFlush()
If set to false and the file key range overlaps with the memtable key range
(memtable flush required), IngestExternalFile will fail.
|
boolean |
allowGlobalSeqNo()
If set to false,
RocksDB.ingestExternalFile(ColumnFamilyHandle, List, IngestExternalFileOptions)
will fail if the file key range overlaps with existing keys or tombstones in the DB. |
protected void |
disposeInternal(long handle) |
boolean |
ingestBehind()
Returns true if duplicate keys in the file being ingested are
to be skipped rather than overwriting existing data under that key.
|
boolean |
moveFiles()
Can be set to true to move the files instead of copying them.
|
IngestExternalFileOptions |
setAllowBlockingFlush(boolean allowBlockingFlush)
If set to false and the file key range overlaps with the memtable key range
(memtable flush required), IngestExternalFile will fail.
|
IngestExternalFileOptions |
setAllowGlobalSeqNo(boolean allowGlobalSeqNo)
If set to false,
RocksDB.ingestExternalFile(ColumnFamilyHandle, List, IngestExternalFileOptions)
will fail if the file key range overlaps with existing keys or tombstones in the DB. |
IngestExternalFileOptions |
setIngestBehind(boolean ingestBehind)
Set to true if you would like duplicate keys in the file being ingested
to be skipped rather than overwriting existing data under that key.
|
IngestExternalFileOptions |
setMoveFiles(boolean moveFiles)
Can be set to true to move the files instead of copying them.
|
IngestExternalFileOptions |
setSnapshotConsistency(boolean snapshotConsistency)
If set to false, an ingested file keys could appear in existing snapshots
that where created before the file was ingested.
|
IngestExternalFileOptions |
setWriteGlobalSeqno(boolean writeGlobalSeqno)
Set to true if you would like to write the global_seqno to a given offset
in the external SST file for backward compatibility.
|
boolean |
snapshotConsistency()
If set to false, an ingested file keys could appear in existing snapshots
that where created before the file was ingested.
|
boolean |
writeGlobalSeqno()
Returns true write if the global_seqno is written to a given offset
in the external SST file for backward compatibility.
|
disposeInternal, getNativeHandle
close, disOwnNativeHandle, isOwningHandle
dispose, finalize
public IngestExternalFileOptions()
public IngestExternalFileOptions(boolean moveFiles, boolean snapshotConsistency, boolean allowGlobalSeqNo, boolean allowBlockingFlush)
moveFiles
- setMoveFiles(boolean)
snapshotConsistency
- setSnapshotConsistency(boolean)
allowGlobalSeqNo
- setAllowGlobalSeqNo(boolean)
allowBlockingFlush
- setAllowBlockingFlush(boolean)
public boolean moveFiles()
public IngestExternalFileOptions setMoveFiles(boolean moveFiles)
moveFiles
- true if files should be moved instead of copiedpublic boolean snapshotConsistency()
public IngestExternalFileOptions setSnapshotConsistency(boolean snapshotConsistency)
snapshotConsistency
- true if snapshot consistency is requiredpublic boolean allowGlobalSeqNo()
RocksDB.ingestExternalFile(ColumnFamilyHandle, List, IngestExternalFileOptions)
will fail if the file key range overlaps with existing keys or tombstones in the DB.public IngestExternalFileOptions setAllowGlobalSeqNo(boolean allowGlobalSeqNo)
RocksDB.ingestExternalFile(ColumnFamilyHandle, List, IngestExternalFileOptions)
will fail if the file key range overlaps with existing keys or tombstones in the DB.allowGlobalSeqNo
- true if global seq numbers are requiredpublic boolean allowBlockingFlush()
public IngestExternalFileOptions setAllowBlockingFlush(boolean allowBlockingFlush)
allowBlockingFlush
- true if blocking flushes are allowedpublic boolean ingestBehind()
public IngestExternalFileOptions setIngestBehind(boolean ingestBehind)
ingestBehind
- true if you would like duplicate keys in the file being
ingested to be skipped.public boolean writeGlobalSeqno()
setWriteGlobalSeqno(boolean)
.public IngestExternalFileOptions setWriteGlobalSeqno(boolean writeGlobalSeqno)
writeGlobalSeqno()
to true.
If your service is just starting to use the new RocksDB, we recommend that
you set this option to false, which brings two benefits:
1. No extra random write for global_seqno during ingestion.
2. Without writing external SST file, it's possible to do checksum.
We have a plan to set this option to false by default in the future.
Default: truewriteGlobalSeqno
- true to write the gloal_seqno to a given offset,
false otherwiseprotected final void disposeInternal(long handle)
disposeInternal
in class RocksObject