dragonflydb / dragonflydb/dragonfly
[Milstone 2] Cloud Benchmark: IoLoopV2 vs V1 (Async, PubSub, ZADD)
- Dominant language
- C++
- Stars
- 31.5k
- Forks
- 1.3k
- Avg merge
- 1d 10h
- Merged PRs (30d)
- 137
Description
Before enabling IoLoopV2 for RESP by default (`--enable_resp_io_loop_v2=true`), we need cloud-environment performance validation across three workload classes.
Results posted here will drive the Go/No-Go decision for default-enabling V2 and prioritize M3/M4 work items.
Parent Epic: #6006
## Workloads
### 1. Async-Supported Commands (GET, SET, MGET)
* **Goal:** V2 ≥ V1 throughput. With lock contention removed, V2 should match or exceed V1.
### 2. PubSub Fan-out (p=1, p=10, p=100)
* **Goal:** Verify PR #7437 successfully closed the 2x syscall regression. V2 RPS should be within 10% of V1.
### 3. Commands Without Async Dispatch (ZADD, pipelined)
* **Goal:** Quantify the architectural impact of V2 lacking V1's `SquashPipeline()`.
* **Action:** If regression is >15%, we port `SquashPipeline()` to V2 (Task 13 in the optimization plan). If ≤15%, we accept the deferred flush behavior and deprioritize.
## Methodology
- **Environment:** Cloud instances (not local laptops) - post topology, instance type, and kernel version.
- **Metrics:** Report RPS, p50/p99 latency, CPU%, and syscall counts (`strace -c` or `perf stat`).
- **Pipeline Depths:** Run at p=1, p=10, and p=100.
## Tasks
- [ ] Provision cloud instances and document topology.
- [ ] Workload 1: Async commands — post results.
- [ ] Workload 2: PubSub fan-out — post results.
- [ ] Workload 3: ZADD pipelined — post results.
- [ ] Final verdict: Enable `--enable_resp_io_loop_v2=true` by default? (Y/N with justification).
Contributor guide
Research direction
Start by reviewing the RESP IoLoopV2 flag, parent epic #6006, and PR #7437, then provision cloud instances and run the GET/SET/MGET, PubSub, and pipelined ZADD workloads at the specified depths. Record topology, instance type, kernel version, RPS, p50/p99 latency, CPU usage, and syscall counts; done means posting results and a justified default-enable verdict.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cloud, cpp
- Domain
- cloud, databases, performance
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100