bench: measure Redis commands per job instead of inferring them
维护者通常 2 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 68/100
- Issue 类型
- 功能
- 描述清晰度
- 基本清楚
- 活跃度
- 活跃
- 领域
- backend, performance
调研方向
Start with bench/harness/redis_scope.py to understand the existing non-destructive Redis handling, then locate the measured phases and artifact generation for each Redis-backed entrant. Use before-and-after INFO commandstats deltas divided by job count, report commands_per_job for every entrant, and update bench/README.md plus the benchmarks page to explain the approximation caveat and round-trip comparison.
由索引模型根据 Issue 内容生成。
描述
Epic: #958
Why
#958 asserts that FlexiQ loses the networked comparison because it spends more round trips per
job than the engines above it. Four are verified by reading the code, and the rest of the
per-job cost — the completion write, the result path, heartbeats — is inferred from a timing
that happens to fit. Inference is the wrong footing for the one claim the whole epic rests on,
and it is the wrong footing for a benchmark whose selling point is that a stranger can check it.
Commands per job is also the only figure in this comparison that is invariant to the link. It
explains a slow run on a 36 ms hop and it predicts a fast one on a local socket, which no
latency number here does.
Shape
Measure the Redis command count each entrant spends per job, and put it in the artifact beside
the timings. INFO commandstats gives per-command call counts; a delta across an entrant's
measured phase, divided by the job count, is the number.
Two honest caveats to encode rather than hide:
- The instance may be shared. The published run used one that already held keys from the
contract suites, so a delta is approximate and the artifact should say so. On a dedicated
Redis it is exact. CONFIG RESETSTATis not ours to call on a server the harness does not own. Take a
before-and-after delta instead of resetting; it is the same arithmetic without the side
effect. This matches the rulebench/harness/redis_scope.pyalready follows — the harness
never callsFLUSHDBeither.
Reporting it per entrant makes the comparison self-evident: a queue that is one blocking pop
per job and a queue that is four round trips per job stop needing an argument.
Done when
commands_per_jobis in the artifact for every Redis-backed entrantbench/README.mdstates how it is derived and when it is approximate- the benchmarks page cites it where it currently asserts the round-trip explanation in prose
- 主要语言
- Rust
- 星标
- 20
- 派生
- 2
- 平均合并
- 1 天 1 小时
- 30 天内合并 PR
- 11
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
ByteVeda/flexiq 的其他 Issue
-
docs enhancement P1
难度 4/5 3-5 天 新手友好度 48/100
维护者通常 2 天内回复
-
enhancement node P2 rust
难度 4/5 3-5 天 新手友好度 48/100
维护者通常 2 天内回复
-
enhancement epic P1 rust storage
难度 5/5 一周以上 新手友好度 30/100
维护者通常 2 天内回复
-
P2 rust tests
难度 3/5 1-2 天 新手友好度 65/100
维护者通常 2 天内回复
-
deployment epic P2
难度 5/5 一周以上 新手友好度 35/100
维护者通常 2 天内回复
相似的 Issue
-
SPLADE `/embed_sparse` output depends on the other inputs in the batch (candle BertModel / DistilBertModel)可能已有人在做 @0z5a 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 72/100
huggingface/text-embeddings-inference#979 ·
维护者通常 1 天内回复
-
good first issue help wanted
难度 2/5 1-3 小时 新手友好度 78/100
servo/rust-smallvec#874 ·
-
难度 1/5 1 小时以内 新手友好度 94/100
维护者通常 1 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 65/100
维护者通常 2 天内回复
-
ci enhancement need-triage
难度 2/5 1-3 小时 新手友好度 86/100
维护者通常 1 天内回复