fix-userver-slo-latency#628
Conversation
There was a problem hiding this comment.
Pull request overview
This PR updates the userver-based SLO key/value workload runner to manage async work using userver::concurrent::BackgroundTaskStorage (instead of manually tracking tasks), and adds a repository-root .dockerignore to support Docker builds with the repo root as build context.
Changes:
- Switched read/write workload execution in
run.cppfromSemaphore + TaskWithResult vectortoBackgroundTaskStoragewith an atomic in-flight limiter. - Switched initial data generation in
create.cpptoBackgroundTaskStorage(while retaining the semaphore limit). - Added a root-level
.dockerignore(matchingtests/slo_workloads/.dockerignore) for Docker build context filtering.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 6 comments.
| File | Description |
|---|---|
| tests/slo_workloads/userver/key_value/run.cpp | Reworks read/write request dispatching to use BackgroundTaskStorage and a custom in-flight limiter. |
| tests/slo_workloads/userver/key_value/create.cpp | Reworks initial data upload dispatching to use BackgroundTaskStorage alongside the existing semaphore. |
| .dockerignore | Adds root-level Docker ignore rules for builds using repo root as context. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
AI Review Summary
Verdict: ❌ 0 critical issues found, but 2 major issues require attention
Critical issues
No critical issues found.
Other findings
- Major | Medium: RPS tokens consumed but requests dropped when inflight limit is reached (read loop) —
tests/slo_workloads/userver/key_value/run.cpp:239 - Major | Medium: RPS tokens consumed but requests dropped when inflight limit is reached (write loop) —
tests/slo_workloads/userver/key_value/run.cpp:319 - Minor | Medium:
inflightcounter not decremented if task lambda throws beforefetch_sub(read loop) —tests/slo_workloads/userver/key_value/run.cpp:263 - Minor | Medium:
inflightcounter not decremented if task lambda throws beforefetch_sub(write loop) —tests/slo_workloads/userver/key_value/run.cpp:340 - Minor | Medium:
GetEnv()called on every metrics record (hot path) instead of being cached —tests/slo_workloads/utils/metrics.cpp:146 - Nit | High:
!requirements.txtexclusion override has no effect —.dockerignore:36
This review was generated automatically. Critical issues require attention; other findings are advisory.
If this comment was useful, please give it a 👍 — it helps us improve the review bot.
|
Analysis performed by claude, claude-opus-4-6. |
🌋 SLO Test Results🟡 2 workload(s) tested — 1 workload(s) exceeded warning thresholds
Threshold violations: cpp-key-value:
Generated by ydb-slo-action |
No description provided.