Isolate Redis blocking replay workers - #1142
Conversation
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (6)
📝 WalkthroughWalkthroughSecondary blocking replay に専用の設定、容量検証、セマフォ、キュー、ディスパッチャを追加し、Blocking コマンドの replay 経路と positive integer replay の結果処理を更新しています。 ChangesBlocking replay の分離実行
Estimated code review effort: 4 (Complex) | ~45 minutes Sequence Diagram(s)sequenceDiagram
participant Client
participant DualWriter
participant blockingReplayQueue
participant Secondary
Client->>DualWriter: Blocking command
DualWriter->>blockingReplayQueue: goBlockingReplay で replay を投入
blockingReplayQueue->>Secondary: 専用 dispatcher が replay 実行
Secondary-->>DualWriter: replay 結果
DualWriter-->>Client: Blocking 結果
Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
bootjp
commented
Jul 22, 2026
@codex review |
Caution The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit:a8fd7880c1
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| func defaultSecondaryBlockingReplayConcurrency(poolSize, writeConcurrency int) int { | ||
| return atLeastOne(poolSize - writeConcurrency) |
There was a problem hiding this comment.
Allow one-connection secondary pools to start
When the CLI is run in a dual-write mode with -elastickv-pool-size=1 (or elastickv-primary with -primary-pool-size=1), this default derives writeConcurrency=1 and blockingReplayConcurrency=1; validateSecondaryConcurrency then rejects the config because their sum exceeds the single secondary connection. Since 0 for -secondary-blocking-replay-concurrency means “derive” and negative values are rejected, there is no CLI value that disables the new blocking replay worker, so deployments that intentionally use a single secondary backend connection can no longer start.
Useful? React with 👍 / 👎.
bootjp
commented
Jul 22, 2026
Addressed the single-connection secondary pool case by deriving blocking replay concurrency to 0 when no secondary pool capacity remains after normal writes. Added tests for the disabled replay path. @codex review |
Codex Review: Didn't find any major issues. Swish! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Author: bootjp
Summary
Verification
Risk
Summary by CodeRabbit
新機能
改善