bench: measure Redis commands per job instead of inferring them

Đang mở
#963 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 2 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
68/100
Loại issue
Tính năng
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
python, redis, rust
Lĩnh vực
backend, performance

Hướng nghiên cứu

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.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

enhancement P2 storage

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 RESETSTAT is 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 rule bench/harness/redis_scope.py already follows — the harness
    never calls FLUSHDB either.

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_job is in the artifact for every Redis-backed entrant
  • bench/README.md states how it is derived and when it is approximate
  • the benchmarks page cites it where it currently asserts the round-trip explanation in prose
Ngôn ngữ chính
Rust
Star
20
Fork
2
Merge trung bình
1 ngày 1 giờ
Pull request đã merge (30 ngày)
11

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của ByteVeda/flexiq

Tất cả issue của ByteVeda/flexiq

Issue tương tự

Thêm issue về Rust

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.