Expand description
ShardedSparseHandle: N SparseHandles behind a ShardRouter and a
pool of luciole actors — the sparse counterpart of lucivy_core’s
ShardedHandle.
A dot product is local to a shard: no global statistics are needed to
merge results, so a search is a scatter of the same (query, limit, filter) to every shard and a k-way merge of (id, score) by score.
Storage is abstracted by SparseShardStorage: a filesystem layout
({base}/shard_{i} plus root files) or a blob store (namespaces
Sparse_{name}/shard_{i}, root files under Sparse_{name}), both built on
lucistore’s shard storages.
Lifecycle contract, identical to the FTS handle: commit() persists every
shard and the router; close() commits, stops the actors and makes the
handle inert (every entry point answers "handle is closed");
drop_index() closes and destroys the storage.
Structs§
- Blob
Sparse Storage - Blob storage: shard
iis theSparseHandlenamespaceSparse_{name}/shard_{i}, root files live underSparse_{name}. The local cache undercache_baseis disposable; the store is the truth. - FsSparse
Storage - Filesystem storage:
{base}/shard_{i}/per shard, root files in{base}. - Sharded
Sparse Config - Persisted as
_sparse_config.jsonat the root of the storage. - Sharded
Sparse Handle
Constants§
- CONFIG_
VERSION - What this build writes into
_sparse_config.json.
Traits§
- Sparse
Shard Storage - Where the shards and the root files of a sharded sparse index live.