[
https://issues.apache.org/jira/browse/RATIS-744?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16968774#comment-16968774
]
Henrik Hegardt commented on RATIS-744:
--------------------------------------
What I'm trying to point out is that hadoop-common pulls in a lot of transitive
dependencies, such as zookeeper, and I doubt that that is used in ratis or the
code in hadoop-common invokes. As a user you don't want to see all of that
since it may be dead weight, but it could also be something that's used. And to
slim down your deployments you'd like to get rid of that dead weight but
excluding them may be risky. It would be nice if Ratis would take care of that
so a user doesn't need to exclude/handle those packages.
I interpret the ratis-hadoop as an integration module for hadoop by using RPC
and then I would not expect code from hadoop in my app? As an example for this
is elasticsearch, where the full server code with all it's dependencies are
included with the client, which is not a nice thing when you try to run with
slim deployments and trying to fit all the dependencies together. And since
it's been around for so long, it seems like it's hard to decouple it.
Looking at the ratis-logservice it seems like it should be in a separate
project since it seems like it's more of a specific implementation for hadoop?
If the logservice would be implemented as a standalone version without hadoop
and then "plug" hadoop as a storage in a separate project, the code would
probably be less dependent on hadoop? Or I may have misunderstood the purpose
of ratis-logservice.:)
Don't get me wrong, hadoop is awesome, it's just that sometimes code gets
influenced by attached code inadvertently just because it's available. I'm not
sure if this was your idea too.
> Minimize the dependency on hadoop-common
> ----------------------------------------
>
> Key: RATIS-744
> URL: https://issues.apache.org/jira/browse/RATIS-744
> Project: Ratis
> Issue Type: Improvement
> Components: HadoopRPC, LogService
> Reporter: Henrik Hegardt
> Priority: Major
>
> What I would think would be an improvement is to somehow fix/remove the
> dependency on the hadoop-common dependency. To just use ratis-logservice adds
> an additional 48Mb to your application and adds a lot of potential dependency
> conflicts.
> I believe the addition of the dependency is to get easy access to other
> solved solutions in hadoop, which is understandable. And hopefully this issue
> acts as a reminder to do something about it.
> Or is the suggested solution to exclude all unwanted dependencies in the
> build? If so, what are those? And could that be done in Ratis?
> Thank you.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)