-
Notifications
You must be signed in to change notification settings - Fork 24
Use dedicated reactor for RaftReplService timers #854
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
|
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #854 +/- ##
==========================================
- Coverage 56.51% 48.38% -8.13%
==========================================
Files 108 110 +2
Lines 10300 12818 +2518
Branches 1402 6152 +4750
==========================================
+ Hits 5821 6202 +381
+ Misses 3894 2532 -1362
- Partials 585 4084 +3499 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR addresses potential deadlock issues by moving RaftReplService timers from global worker reactors to a dedicated reactor, preventing timer competition with high-priority IO tasks.
Changes:
- Replaced global timers with thread timers running on a dedicated "raft_repl_svc_timer" reactor
- Wrapped timer cancellation in
run_on_waitto ensure execution on the correct reactor fiber - Bumped version from 7.2.1 to 7.2.2
Reviewed changes
Copilot reviewed 2 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| src/lib/replication/service/raft_repl_service.cpp | Refactored timer initialization to use dedicated reactor and thread timers instead of global timers |
| conanfile.py | Incremented version number to reflect the changes |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Global timers using `all_worker` regex can compete with default worker reactors, potentially jamming high-priority IO tasks and causing deadlocks. Signed-off-by: Jilong Kou <jkou@ebay.com>
JacksonYao287
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Global timers using
all_workerregex can compete with default worker reactors, potentially jamming high-priority IO tasks and causing deadlocks.Context: #847