feat(store): the sqlite constructor wiring — the default-build store shapes
- KvEngine::Sqlite slots in; all six kv ops dispatch; the kv cursor body dispatches through a new KvCursor sub-enum behind AnyCursor's one kv arm (the kv-arm-over-multiple-kv-engines design point, recorded) - dual_tier_sqlite_local (kv = sqlite + large = local, the default-build production shape) and kv_only_sqlite constructors — both feature-gated on sqlite (default-on), both taking the threshold and the delete-window delay, fallible where I/O is fallible (Err(Error::Io) per the dual_tier_mem_local pattern) - ensure_gc_schema runs at construction via the engine-neutral KvEngine call (sqlite's body creates gc_window only); the window-delay shipped default is the pinned DEFAULT_DELETE_WINDOW_DELAY (5 min, ADR-008 §2), constructor- tunable, Duration::ZERO legal — the store carries the value for the sweep's durable form to consume - the one-window-host posture recorded in the module doc (the durable window hosts on the kv engine when it is SQL-backed; wave 5's pg-lo dormancy slots in without reshaping) - stale empty-set scaffolding updated to the landed state: the #[allow(unused_variables)] attrs off the KvEngine methods; the scope notes in store.rs, backend.rs, sqlite.rs, gc.rs - constructor unit tests: mode/threshold/window-delay introspection, the GC schema observed in the fresh database (window table present, gc_pins never), kv-only rejection wiring unchanged, and the dual-tier shape round-tripping end-to-end through both tiers Verification: cargo test 62 passed (default; 5 new tests), cargo test --all-features 117, cargo test --features mem 117, --no-default- features --features mem 97; cargo clippy --all-targets -- -D warnings clean (default + all-features); cargo fmt --check clean; cargo doc --no-deps at the pre-existing warning baseline.
This commit is contained in:
1 parent
51d8f6525f
commit
2993df0e36
6 files changed
+673
-64
No files matched your search
+7
-3
@@ -31,9 +31,13 @@
|
||||
//! the crate-internal engine-state companion seam lives in [`crate::gc`].
|
||||
//!
|
||||
//! The `#![allow(dead_code)]` below still has real scope: `Backend`
|
||||
//! trait items with no in-tree caller yet (reporting names, the kv
|
||||
//! engines' whole-value `put` before wave 3) plus the wave-1 seam
|
||||
//! tests' doubles. It shrinks as the waves land.
|
||||
//! trait items with no in-tree caller yet (the engines' reporting
|
||||
//! names — the dispatch/conformance identity the reporting and fleet
|
||||
//! waves consume) plus the wave-1 seam tests' doubles. The kv engines'
|
||||
//! whole-value `put` gained its in-tree callers in wave 3 (sqlite is
|
||||
//! the default build's kv engine and the facade's put seam drives the
|
||||
//! kv tier through it); the allow shrinks as the remaining callers
|
||||
//! land.
|
||||
|
||||
#![allow(dead_code)]
|
||||
|
||||
|
||||
Reference in new issue
Block a user