Hi, Jianyun It’s a wonderful job, thank you very much for your contribution.
Thanks, --------------------------------------- Houliang Qi BONC, Ltd On 10/25/2021 10:32,jianyun cheng<[email protected]> wrote: Hi, all Thanks for the contribution from Dr. Huang, Xinyu Tan and Sijia Li, the work of refactor cluster module is ready to review after months work. Especially thanks to Dr. Huang, who have lead the refactor and made a lot of work before the others join. Here is the summary of why we do that and what we have done. The Goal of Refactor The main goal of the refactor is make the code structure of cluster module more clear. Before the refactor, the structure of cluster module is a bit mess. It is not easy to understand even the one has been familiar with code of server module. As the server module is clear enough, and most of developer look into server when starts joining the project. So we decided to refer the structure of server module to refactor the cluster module. What we have done 1. Split Thrift RPC service and RPC implementation to make the logic here clear. For detail, refer the discuss: [Cluster-refactor] About refine classes name · Issue #3881 · apache/iotdb (github.com)<https://github.com/apache/iotdb/issues/3881> 2. Weaken the role of MetaGroupMember. metaGroupMember is just an engine for serving meta raft group, which should not control the whole server too deep. Many fields (like coordinator, etc.) are extracted to ClusterIoTDB (renamed from ClusterMain), and ClusterIoTDB is responsible for creating them. 3. Similar with the relationship between StorageEngine and StorageProcessor in the server module, DataGroupMember can be considered as StorageProcessor, we created a DataGroupEngine to control them. 4. Refactored thrift client class hierarchy to reduce the duplication and imported Apache commons-pool the help manager thrift client object. 5. Write related unit tests for new adding code. For existing code, fixed all failed unit test cases 6. Performance verify. Performance verify is on going, the result will be updated in the PR description. Although we have done the refactor very carefully, but as we don’t know everything very well, the unintentional mistakes especially when do code merge is hard to avoid. Your review and comments is very import for us. PR link: [IOTDB-1639] Refactoring the cluster class structure to make it consistent with the server module by LebronAl · Pull Request #4079 · apache/iotdb (github.com)<https://github.com/apache/iotdb/pull/4079> ---------------------------------------------------------- Jianyun Cheng Thanks!
