chore(8.0): delete vectorStore:mmap wiring — dead in the 8.0 provider world
The mmap-vector backend was a 2.x-era accelerator for the JS HNSW read path: a native provider registered under 'vectorStore:mmap' supplied a single-file mmap'd vector store, and JsHnswVectorIndex tried it before per-entity storage reads with lazy write-back migration. In the 8.0 provider world nothing registers that key — the native plugin's 3.0 line replaces the entire vector index under the 'vector' provider key (vectors live inside its own index file), and the open-core path never had an mmap provider. The wiring is unreachable; per the no-unwired-code rule it goes away: - src/hnsw/mmapVectorBackend.ts deleted (175 LOC) - wireMmapVectorBackend() + its init call site removed from brainy.ts - VectorStoreMmapProvider + VectorStoreMmapInstance contracts removed from plugin.ts - JsHnswVectorIndex loses the vectorBackend field, setVectorBackend(), and the mmap-first branches in getVectorSafe/preloadVectors — the storage + UnifiedCache path is now the single read path - tests/unit/hnsw/mmap-vector-backend.test.ts deleted The 7.x line keeps the wiring and got the capacity-NaN bugfix as 7.31.3 (see the platform handoff mmap thread). EntityIdMapperProvider stays — the connections codec and the id mapper still implement it. 1403/1403 tests, build clean.
This commit is contained in:
parent
42159f2bd7
commit
62f6472fa0
5 changed files with 2 additions and 640 deletions
|
|
@ -285,55 +285,6 @@ export interface GraphCompressionProvider {
|
|||
decode(data: Buffer): number[]
|
||||
}
|
||||
|
||||
/**
|
||||
* The `'vectorStore:mmap'` provider — a static factory class for an mmap-backed
|
||||
* vector file. Brainy's JsHnswVectorIndex uses the static `.create()` / `.open()`
|
||||
* factories to open a single-file store at a derived path on disk-resident
|
||||
* storage adapters; non-FS adapters with no local-path support skip the mmap
|
||||
* layer and fall back to per-entity vector reads.
|
||||
*
|
||||
* Cortex registers `NativeMmapVectorStore` as this provider — a Rust mmap'd
|
||||
* f32 array with a header, batch read/write APIs, and madvise prefetch. Slot
|
||||
* indices are the stable ints from `EntityIdMapper`; lazy migration on read
|
||||
* miss writes back from per-entity storage into the slot, converging an
|
||||
* upgraded install to the fast path without a big-bang step.
|
||||
*/
|
||||
export interface VectorStoreMmapProvider {
|
||||
/** Create a new vector file with pre-allocated slot capacity. */
|
||||
create(path: string, dim: number, capacity: number): VectorStoreMmapInstance
|
||||
/** Open an existing vector file for read + write. */
|
||||
open(path: string): VectorStoreMmapInstance
|
||||
/** Open an existing vector file for read-only access. */
|
||||
openReadOnly(path: string): VectorStoreMmapInstance
|
||||
}
|
||||
|
||||
/**
|
||||
* An open mmap-vector-store instance — the surface brainy's JsHnswVectorIndex consumes
|
||||
* for batch vector reads + lazy migration from per-entity storage on miss.
|
||||
*/
|
||||
export interface VectorStoreMmapInstance {
|
||||
/** Number of vectors written (highest written index + 1). */
|
||||
readonly count: number
|
||||
/** Maximum slot capacity before resize is needed. */
|
||||
readonly capacity: number
|
||||
/** Vector dimensionality. */
|
||||
readonly dim: number
|
||||
/** Write a single vector at `index`. Vector is f64 in JS, stored as f32. */
|
||||
writeVector(index: number, vector: number[]): void
|
||||
/** Write a flat batch starting at `startIndex`. Returns vectors written. */
|
||||
writeVectorsBatch(startIndex: number, vectorsFlat: number[]): number
|
||||
/** Read a single vector at `index`. Returns f64[]. */
|
||||
readVector(index: number): number[]
|
||||
/** Read multiple vectors by index. Returns flat f64[] of length n × dim. */
|
||||
readVectorsBatch(indices: number[]): number[]
|
||||
/** Prefetch via madvise(WILLNEED); no-op on unsupported platforms. */
|
||||
prefetch(indices: number[]): void
|
||||
/** Grow the vector file to a larger slot capacity. Re-maps the file. */
|
||||
resize(newCapacity: number): void
|
||||
/** msync — flush pending writes to disk. */
|
||||
flush(): void
|
||||
}
|
||||
|
||||
/**
|
||||
* Storage adapter factory — plugins register these to provide
|
||||
* new storage backends that users reference by name.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue