Replies: 5 comments 6 replies
-
@majin1102 Good to see the proposal for improvement on the module dependencies! LGTM in general. My 2 cents: could we extract the metric module out of ams-server in this refactoring? Cause shortly we may need the metric reporter in the optimizers as well. |
Beta Was this translation helpful? Give feedback.
-
+1 for the new module strucuture. |
Beta Was this translation helpful? Give feedback.
-
Thanks for driving this, Optimizing the module can make we to maintain the project easier. I have some minor question here:
|
Beta Was this translation helpful? Give feedback.
-
I don't quite understand why you would want to move ams thrift-api and it's generated codes to core. This part looks like the code which is depended by the optimizers and AMS. Currently core is basically designed for mixed-iceberg format. I remember that the Amoro project was going to design the table-format to be plug-in, and it seemed like it violated that design goal if the core was to be put at the bottom. In the most extreme case, if the user doesn't use mixed-format, he can compile the project without compiling the core module and mixed module. |
Beta Was this translation helpful? Give feedback.
-
Core module is not meant to include only mixed-format, if so why we need two modules? only format is just fine. |
Beta Was this translation helpful? Give feedback.
-
Let's have a look at modules of Amoro right now:
Current module structure has a very long evolution path which I don't wanna talk much. Here I mainly want to adress some problems with this module structure.
So I propose to optimize module structure to clearify core, ams and format relationships. First we need to determine what module should be shared by ams and format: ams-api, core or both.
By postioning, core is designed to be shared for computing engines and service. In the past we put thrift api and generated codes in ams-api, that's why currently we have to make core depend on ams-api. But generated codes don't have to be located in ams-api, and we don't have to put ams-api under core. Instead we should put the whole ams on top of core.
The new structure shall be like:
This will make each module more cohesion and solve problems above. Meanwhile I remove metric-reporter as an independent module because it is a sub module of ams-server and the content is not that complex to be pulled out.
Beta Was this translation helpful? Give feedback.
All reactions