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!

Reply via email to