guyinyou opened a new pull request, #9736: URL: https://github.com/apache/rocketmq/pull/9736
- 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 <!-- Please make sure the target branch is right. In most case, the target branch should be `develop`. --> ### Which Issue(s) This PR Fixes <!-- Please ensure that the related issue has already been created, and [link this pull request to that issue using keywords](<https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword>) to ensure automatic closure. --> Fixes #9735 ### Brief Description <!-- Write a brief description for your pull request to help the maintainer understand the reasons behind your changes. --> ### How Did You Test This Change? <!-- In order to ensure the code quality of Apache RocketMQ, we expect every pull request to have undergone thorough testing. --> -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
