Cargo Features
Verneuil has no features set by default.
[dependencies]
verneuil = { version = "0.6.4", features = ["vendor_sqlite", "dynamic_vfs", "mix_ctime_in_version_id", "no_xattr", "test_random_chunk_action", "test_vfs", "test_validate_writes", "test_validate_reads", "test_validate_all", "clap"] }
- vendor_sqlite
- dynamic_vfs
-
Build the runtime-loadable VFS shared object; conflicts with vendor_sqlite.
- mix_ctime_in_version_id
-
Consider the source db's ctime in the version id.
This is more conservative (less likely to leave changes undetected),
but also more prone to false positives: we have observed no-op writes to db files after empty "IMMEDIATE" transactions, mostly after writes to scratch pages that are never committed into active duty. These false positive trigger a recovery path in Verneuil,
where the whole db is re-uploaded.
It probably only makes sense to enable this feature when debugging replication failures (not lag, but outright incorrect snapshots),
especially when writing to the same replicated db with both the verneuil VFS and the regular Unix VFS on fault-prone storage. - no_xattr
-
Remove the xattr code to simulate feature-poor filesystems.
- test_random_chunk_action
-
Randomly decide what to do with base chunks
- test_vfs test_validate_reads? test_validate_writes? = blake2b_simd, tracing-subscriber
-
Build an archive for sqlite3 tests.
Affects
verneuil::sqlite3_verneuil_test_only_register
… - test_validate_writes test_validate_all? = test_vfs
-
Validate snapshots after writes
- test_validate_reads test_validate_all? = test_vfs
-
Validate snapshots after reads as well (extra slow)
- test_validate_all = test_validate_reads, test_validate_writes
Features from optional dependencies
In crates that don't use the dep:
syntax, optional dependencies automatically become Cargo features. These features may have been created by mistake, and this functionality may be removed in the future.
- blake2b_simd test_vfs?
-
Enables blake2b_simd
We use blake2b to compare the actual db file and our replicated snapshot,
but only during tests. - clap implicit feature
-
Enables clap ^3
Having dev dependencies as optional makes it possible to build verneuil's examples out of tree.
- tracing-subscriber test_vfs?
-
Enables tracing-subscriber
Also collect log! calls.