Skip to content

Comprehensive v0.23 benchmark: indexing at scale, Redis reads, reranked search #1248

Description

@phernandez

Why

The single-metric LoCoMo retrieval comparison (run artifacts v0221-baseline-long-r1 vs
main-rerank-*-long-r1, discussed on #1234/#951) measures one dimension — sequential
single-client query latency — and misses the dimensions v0.23 was actually built for. On
that narrow metric v0.22.1 looks faster (122ms vs 256ms mean, rerank off); but v0.22.1
under real concurrent load deadlocks on the relation table until jobs terminally fail
(#1213, 16 Logfire fingerprints), silently accumulates duplicate observations (37%
redundancy in a day in the #1214 field report), and misranks the queries reranking now
fixes. The v0.23 performance story is composite: correct, scalable indexing + cached
reads + reranked search, together
. This issue defines the benchmark that measures that
story, v0.22.1 vs v0.23, and produces the numbers for release notes.

Benchmark axes

1. Indexing at scale

2. Redis read cache

3. Reranked search

4. Composite "multi-agent day" scenario

  • Concurrent writers + readers + searchers against one project for a sustained window,
    v0.22.1 vs v0.23 (same hardware, isolated homes, worktree + --bm-local-path workflow).
  • The claim to validate: v0.23 sustains concurrent multi-agent load with zero deadlocks
    and zero data duplication at comparable-or-better throughput, while ranking results
    meaningfully better.

Also resolve while in here

  • Contextualize the sequential-baseline delta (v0.22.1 122ms → v0.23 256ms mean, rerank
    off): how much is full-content FTS (fix(core): search complete SQLite note content #1071 — indexes all text instead of truncating at
    ~6KB), generation-fence candidate over-fetch, vs run noise. Decide whether any of it is
    reclaimable or all justified-and-accepted.

Tooling

basic-memory-benchmarks (bm-bench) + worktree/--bm-local-path revision comparison.
Needs: a concurrent-writer driver, a redis on/off toggle, indexing-throughput and
row-integrity metrics (duplicate-tuple counts post-run). The run-rerank-comparison.sh /
run-cap-sweep.sh scripts in that repo are the single-axis precedents.

Deliverable

A results write-up (issue comment + Basic Memory note) with the v0.22.1-vs-v0.23 table
per axis — the source of truth for release-notes/blog performance claims. Changelog perf
claims in #1244 intentionally wait on these numbers.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions