-
Couldn't load subscription status.
- Fork 12k
[ISSUE #9735] Add TimerWheel snapshot mechanism for reliable recovery #9736
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: develop
Are you sure you want to change the base?
[ISSUE #9735] Add TimerWheel snapshot mechanism for reliable recovery #9736
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## develop #9736 +/- ##
=============================================
- Coverage 48.36% 48.21% -0.16%
+ Complexity 12204 12178 -26
=============================================
Files 1313 1313
Lines 93340 93440 +100
Branches 11962 11982 +20
=============================================
- Hits 45148 45051 -97
- Misses 42627 42802 +175
- Partials 5565 5587 +22 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
908f5ae to
bcd8268
Compare
c4a54dd to
a2a3fe3
Compare
store/src/main/java/org/apache/rocketmq/store/timer/TimerMessageStore.java
Outdated
Show resolved
Hide resolved
29f2234 to
23e30a1
Compare
- Add snapshot backup and recovery functionality to TimerWheel - Add configuration options for snapshot control with backward compatibility - Implement atomic flush operations with synchronization locks - Add snapshot file management (creation, cleanup, selection) - Support recovery from snapshot files to avoid rebuilding TimerWheel - Add TimerFlushService.flush() method for manual flush operations This addresses the issue where discrete TimerWheel state cannot be recovered from TimerLog alone, ensuring data consistency and improving recovery performance. Configuration changes: - timerWheelSnapshotFlush: enable/disable snapshot functionality (default: false) - timerWheelDefaultFlush: enable/disable default flush behavior (default: true) - timerWheelSnapshotIntervalMs: snapshot creation interval (default: 10s) Change-Id: I801ce7ca6330d02aefcae905e59e1e2b7642ebf5
Change-Id: I1c7c2895efebfef0185411c0630bbd2da23ce3c7
23e30a1 to
98f73e1
Compare
This addresses the issue where discrete TimerWheel state cannot be recovered from TimerLog alone, ensuring data consistency and improving recovery performance.
Configuration changes:
Change-Id: I801ce7ca6330d02aefcae905e59e1e2b7642ebf5
Which Issue(s) This PR Fixes
Fixes #9735
Brief Description
How Did You Test This Change?