refactor: rename obikpartitionner crate to obikpartition

Update Cargo manifests, dependency paths, and Rust imports across the workspace to reflect the `obikpartitionner` to `obikpartition` rename. Synchronize architecture and implementation documentation with the new module structure. Fix minor syntax issues in test assertions to ensure compilation compatibility. No behavioral or API changes are introduced.
This commit is contained in:
Eric Coissac
2026-08-20 16:41:22 +02:00
parent f9ef6b8391
commit 9379bbaad8
63 changed files with 80 additions and 80 deletions
@@ -16,7 +16,7 @@ explicitly, since two of the names below are misleading.
but it holds the *whole* multi-partition structure below — the name
suggests "one partition", the value is all of them.
- **Partition, the collection (not one partition)** =
`obikpartitionner::KmerPartition`. Despite the singular name, this owns
`obikpartition::KmerPartition`. Despite the singular name, this owns
*every* partition of the index: `root_path`, `n_partitions`, and
per-partition accessors that all take an explicit index `i`
(`partition_dir(i)`, `index_dir(i)`, `layer_dir(i, l)`,
@@ -95,7 +95,7 @@ auto-detection" turns up three unrelated implementations:
|---|---|---|---|
| `Layer<D>` | `obilayeredmap` | one layer, `D` fixed at compile time | held alive by whoever owns the `Layer`, no policy of its own |
| `Mat` | `obikphylo::siblings::cache` | one layer, format resolved per instance from an enum of 3 `Layer<D>` variants | yes, via `PartitionCache` |
| `QueryLayer` | `obikpartitionner::query_layer` | one layer, `(MphfLayer, PersistentBitMatrix\|PersistentCompactIntMatrix)` pair, bypasses `Layer<D>` entirely | **no** — opened fresh inside `query_partition_with` on every call |
| `QueryLayer` | `obikpartition::query_layer` | one layer, `(MphfLayer, PersistentBitMatrix\|PersistentCompactIntMatrix)` pair, bypasses `Layer<D>` entirely | **no** — opened fresh inside `query_partition_with` on every call |
`query_partition_with` is `obikmer query`'s normal query path — the one
most exposed to repeated cross-partition lookups — and it is the one with
@@ -164,7 +164,7 @@ Established in discussion, not yet coded:
`open_data`/`layer_dir` — see git history around 2026-08-20). One
`LayeredMap<D>` (or its heterogeneous-`D` successor) = one partition.
- Nobody currently owns "the collection of partitions" as reusable state.
`obikpartitionner::KmerPartition` is the closest candidate — it already
`obikpartition::KmerPartition` is the closest candidate — it already
owns `n_partitions()`/`part_dir(i)` — but today it is a pure
config/path resolver, not a state holder: `dereplicate`, `count_kmer`,
`obikindex`'s `distance.rs`/`stats.rs`, and
@@ -182,9 +182,9 @@ Established in discussion, not yet coded:
2. A cache spanning multiple partitions, keeping (2)'s layer type open per
partition per layer, for the whole lifetime of a long-running command —
generalising `PartitionCache` minus its sibling-specific parts
(`fast_mode`, `find_presence_batch`) — living in `obikpartitionner`
(`fast_mode`, `find_presence_batch`) — living in `obikpartition`
(owner of the partition dimension) and built on top of (1).
3. `obikpartitionner::query_partition_with` — the normal query path,
3. `obikpartition::query_partition_with` — the normal query path,
currently uncached — becomes a consumer of (2), not just
`obikphylo::PartitionCache`.
@@ -198,7 +198,7 @@ real number behind it for this codebase's scale).
Groundwork for (1)/(2), landed ahead of the design itself:
- `KmerPartition` (`obikpartitionner`) gained `partition_dir`/`index_dir`/
- `KmerPartition` (`obikpartition`) gained `partition_dir`/`index_dir`/
`layer_dir` as the single source of truth for a partition's on-disk
layout, replacing per-module duplicated `const INDEX_SUBDIR: &str =
"index"` (7 copies) and ad hoc path joins — including one found
@@ -266,7 +266,7 @@ storage decisions, now a *third* copy of the same logic to keep in sync)
`Mat::open` already reads the result back in the sibling-annex path.
Stale comment, not corrected.
- **Retracted (2026-08-20)**: an earlier pass through this doc claimed
`obikpartitionner::query_layer::QueryLayer::open` had no sparse-format
`obikpartition::query_layer::QueryLayer::open` had no sparse-format
detection and would silently corrupt reads on a `pack --sparse`d layer.
False — `PersistentBitMatrix` (`obicompactvec::bitmatrix::persistent`)
is a 4-way enum (`Columnar`/`Packed`/`Sparse`/`Implicit`), not 3-way as