Table of Contents

Enum VerifyOutputFlags

Namespace
RocksDbNet
Assembly
RocksDb.Net.dll

Which verifications RocksDb runs over the files a compaction produces, and when.

[Flags]
public enum VerifyOutputFlags : uint

Fields

All = 4294967295

Every verification, on every kind of compaction.

Every bit, including ones RocksDb has not defined yet, so a later version may make this mean more than it does today.

BlockChecksum = 1

Verify the block checksums of each output file.

EnableForLocalCompaction = 1024

Run the selected verifications on compactions this process performs.

EnableForRemoteCompaction = 2048

Run the selected verifications on compactions performed remotely.

FileChecksum = 4

Verify the file-level checksum of each output file.

Iteration = 2

Read each output file back and compare a hash of every key and value against what was written into it.

The most thorough and the most expensive of the three.

None = 0

Verify nothing. The default.

Remarks

Mirrors VerifyOutputFlags in include/rocksdb/advanced_options.h at the pinned version.

The bits come in two groups, and a value needs at least one from each to do anything: the first three say what to verify, and the two EnableFor bits say which compactions to verify it on. That is why BlockChecksum on its own has no observable effect.

This was a plain int, described as flags RocksDb does not expose. The C API takes and returns int while RocksDb keeps a uint32_t, which is why All arrives there as -1 and why setting -1 through the old int property was, unintentionally, asking for everything.