Background re-embedding + relocation of memory entries from
non-canonical Milvus collections (e.g. legacy 768-d
hive_mcp_memory) into per-dim collections (hive_mcp_memory_1024d,
hive_mcp_memory_4096d) driven by current type-routing config.
Idempotent + resumable. entries/relocate-entry! is itself a no-op
once an entry is already in its canonical collection, so resume
never duplicates.
Background re-embedding + relocation of memory entries from non-canonical Milvus collections (e.g. legacy 768-d `hive_mcp_memory`) into per-dim collections (`hive_mcp_memory_1024d`, `hive_mcp_memory_4096d`) driven by current type-routing config. Idempotent + resumable. `entries/relocate-entry!` is itself a no-op once an entry is already in its canonical collection, so resume never duplicates.
(reset-cursor!)(reset-cursor! source-coll)(reset-cursor! source-coll cursor-base)Delete the on-disk cursor for a source collection.
Delete the on-disk cursor for a source collection.
(start! config-atom)(start! config-atom
{:keys [mode source-coll batch-size cursor-base concurrency id-source
relocate-fn max-excluded]
:or {mode :move
source-coll default-source-collection
batch-size default-batch-size
cursor-base default-cursor-base
concurrency 1
max-excluded plan/default-max-excluded}})Spawn a background relocation pass. Returns immediately with the new job's metadata, or {:already-running? true} when a previous job is still :running.
:mode :move (default) removes each row from the source once it has landed in the target, and iterates by re-reading the head of the source.
:mode :copy leaves every source row where it is. The old collection stays a complete backup. Because nothing is removed, the head would never empty, so the pass enumerates the source's ids up front and works through that snapshot.
Counters are per-run. Rows the pass cannot place (already-canonical no-ops, hard failures) are excluded from subsequent pages so the run terminates; they are reported, never silently counted as placed.
Opts: :mode :source-coll :batch-size :cursor-base :concurrency :max-excluded :id-source (IIdSource, overrides the mode's default source) :relocate-fn (id -> result, overrides the mode's default operation)
Spawn a background relocation pass. Returns immediately with the new
job's metadata, or {:already-running? true} when a previous job is
still :running.
:mode :move (default) removes each row from the source once it has landed in
the target, and iterates by re-reading the head of the source.
:mode :copy leaves every source row where it is. The old collection stays a
complete backup. Because nothing is removed, the head would never empty, so
the pass enumerates the source's ids up front and works through that snapshot.
Counters are per-run. Rows the pass cannot place (already-canonical no-ops,
hard failures) are excluded from subsequent pages so the run terminates; they
are reported, never silently counted as placed.
Opts: :mode :source-coll :batch-size :cursor-base :concurrency :max-excluded
:id-source (IIdSource, overrides the mode's default source)
:relocate-fn (id -> result, overrides the mode's default operation)(status)Return current relocation state snapshot + on-disk cursor.
Return current relocation state snapshot + on-disk cursor.
(stop!)Request the running relocation to stop after the current batch.
Request the running relocation to stop after the current batch.
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |