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.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
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