Hi RocketMQ Community, In RocketMQ 5.0, the DLedger Controller component was introduced (RIP-44) to allow automatic master-slave switching. Briefly speaking, it is a strong consistent metadata center based on the DLedger (Raft), which stores metadata related to the Master/Slave selection.
However, given the lack of snapshot capability from the DLedger, the DLedger Controller would face the following problems: 1. The DLedger Controller requires replaying the complete log from the store while restarting the node to restore its state. This might cost a considerable amount of time once the log size gets large. 2. The log will continue to expand over time and is likely to cause insufficient storage space in the end. Therefore, the DLedger Controller (or perhaps other future components which require DLedger (Raft) abilities) needs the snapshot capability from DLedger to enhance its space and time performance in certain aspects. This drives us to introduce this improvement. The links to our (GitHub id: tsunghanjacktsai, hzh0425, TheR1sing3un) proposal are given below (both Google Docs and Shimo Docs versions were provided to prevent someone cannot access the specific app): 1. https://docs.google.com/document/d/1jiKtv5WRDqlgZLGYK0oHuZww1r7KKrnTdRGf_eDIQy8/edit?usp=sharing 1. https://shimo.im/docs/WlArzngm9JhzY0A2 Best regards, Tsung-Han (Jack) Tsai [https://lh3.googleusercontent.com/XHxxV7hiSMsczrfIHVKpeTOrPWe1w7_WQ3zcEpfTROVElQGU-gGR22mTYHl4dY3Yn-YeYGji0eLx0g=w1200-h630-p]<https://docs.google.com/document/d/1jiKtv5WRDqlgZLGYK0oHuZww1r7KKrnTdRGf_eDIQy8/edit?usp=sharing> RIP-59 Support DLedger Controller Snapshot<https://docs.google.com/document/d/1jiKtv5WRDqlgZLGYK0oHuZww1r7KKrnTdRGf_eDIQy8/edit?usp=sharing> RIP-59 Support DLedger Controller Snapshot Status Current State: Draft Authors: tsunghanjacktsai, hzh0425, TheR1sing3un Shepherds: RongtongJin Mailing List discussion: dev@rocketmq.apache.org Pull Request: Released: no Background & Motivation What do we need to do Will we add a new module? 无 Will... docs.google.com