rocketmq
rocketmq copied to clipboard
[ISSUE #8066] Tiered storage support primary/backup mode
Which Issue(s) This PR Fixes
Fixes #8066
Brief Description
- 限制从节点分级存储行为
1.1. 修改
MessageStoreDispatcherImpl#dispatch:从节点不将消息分发到分级存储; 1.2. 修改FlatFileStore#load:从节点不进行 recover 操作; - 主从节点数据同步
2.1. 在
SlaveSynchronize#syncAll中增加syncTieredMetadata方法,定时同步分级存储元数据; 2.2. 在BrokerController中增加SyncTieredIndexService,同步DispatchRequest以使得从节点可以构建IndexFile; - 从节点切主时执行数据恢复
3.1 在
TieredMessageStore中增加接口RecoverService,负责切主时恢复Metadata,FlatFile与IndexFile;若冷存中文件信息与本地元数据出现不一致,以冷存为准; - 其他
4.1. 修改部分日志,使其更为合理;
4.2. 为防止切主时位点出现错误,
FlatCommitLogFile构造函数中不再初始化位点,理论上不影响主节点构造FlatMessageFile;
How Did You Test This Change?
Codecov Report
Attention: Patch coverage is 29.16667% with 255 lines in your changes are missing coverage. Please review.
Project coverage is 42.80%. Comparing base (
9c8fdb7) to head (476d286).
Additional details and impacted files
@@ Coverage Diff @@
## develop #8218 +/- ##
=============================================
- Coverage 42.93% 42.80% -0.13%
- Complexity 10377 10394 +17
=============================================
Files 1270 1276 +6
Lines 88727 89029 +302
Branches 11407 11448 +41
=============================================
+ Hits 38095 38109 +14
- Misses 45936 46191 +255
- Partials 4696 4729 +33
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
This PR is stale because it has been open for 365 days with no activity. It will be closed in 3 days if no further activity occurs. If you wish not to mark it as stale, please leave a comment in this PR.
This PR was closed because it has been inactive for 3 days since being marked as stale.