Table of Contents

Class IngestExternalFileOptions

Namespace
RocksDbNet
Assembly
RocksDb.Net.dll

Options controlling how external SST files are ingested into the database.

public sealed class IngestExternalFileOptions : RocksDbHandle, IDisposable
Inheritance
IngestExternalFileOptions
Implements
Inherited Members

Constructors

IngestExternalFileOptions()

Creates a new IngestExternalFileOptions with default settings.

public IngestExternalFileOptions()

Properties

AllowBlockingFlush

When true, the ingest operation may wait and block ongoing flushes. Defaults to true.

public bool AllowBlockingFlush { get; set; }

Property Value

bool

AllowDbGeneratedFiles

When true, files produced by a RocksDb database, rather than by SstFileWriter, may be ingested.

public bool AllowDbGeneratedFiles { get; set; }

Property Value

bool

AllowGlobalSeqno

When true, the global sequence number written in the file is allowed to be modified. Defaults to true.

public bool AllowGlobalSeqno { get; set; }

Property Value

bool

FailIfNotBottommostLevel

When true, ingestion fails unless the files can be placed in the bottommost level.

public bool FailIfNotBottommostLevel { get; set; }

Property Value

bool

FailedMoveFallBackToCopy

When true, a move that fails falls back to copying rather than failing the ingestion.

public bool FailedMoveFallBackToCopy { get; set; }

Property Value

bool

FileOpeningThreads

Number of threads used to open the incoming files. Higher values speed up ingesting many files at once.

public int FileOpeningThreads { get; set; }

Property Value

int

FillCache

When true, blocks read during ingestion are added to the block cache. Leave this off for a bulk load so it does not evict live data.

public bool FillCache { get; set; }

Property Value

bool

IngestBehind

When true, the files are ingested below the existing data rather than on top of it. Requires CfAllowIngestBehind.

public bool IngestBehind { get; set; }

Property Value

bool

LinkFiles

When true, files are hard linked into the database directory instead of copied, which is cheaper but requires the same filesystem.

public bool LinkFiles { get; set; }

Property Value

bool

MoveFiles

When true, the files are moved into the database directory instead of copied. Defaults to false.

public bool MoveFiles { get; set; }

Property Value

bool

PrefetchLmaxIndexAndFilterBlocks

When true, index and filter blocks of files landing in the last level are prefetched.

public bool PrefetchLmaxIndexAndFilterBlocks { get; set; }

Property Value

bool

SnapshotConsistency

When true, ingestion verifies snapshot consistency. Defaults to true.

public bool SnapshotConsistency { get; set; }

Property Value

bool

VerifyChecksumsBeforeIngest

When true, checksums in the incoming files are verified before the files are ingested. Catches a corrupt file before it enters the database.

public bool VerifyChecksumsBeforeIngest { get; set; }

Property Value

bool

VerifyChecksumsReadaheadSize

Readahead size in bytes used while verifying checksums before ingest. 0 lets RocksDb choose.

public ulong VerifyChecksumsReadaheadSize { get; set; }

Property Value

ulong

VerifyFileChecksum

When true, each file's whole-file checksum is verified against the checksum recorded for it.

public bool VerifyFileChecksum { get; set; }

Property Value

bool

WriteGlobalSeqno

When true, the assigned global sequence number is written into the ingested file. When false, it is held in the manifest instead, which leaves the file itself unmodified.

public bool WriteGlobalSeqno { get; set; }

Property Value

bool

Methods

DisposeHandle()

Releases the native handle. Called during disposal.

protected override void DisposeHandle()

Remarks

Protected rather than public: it destroys the native object without marking this instance disposed or clearing the handle, so calling it from outside and then disposing normally would free the same pointer twice. It was the most Dispose-looking member on the type. Callers want Dispose().