[
https://issues.apache.org/jira/browse/HADOOP-10389?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14033404#comment-14033404
]
Colin Patrick McCabe commented on HADOOP-10389:
-----------------------------------------------
To me this is not that interesting. There are a lot of clients already out
there in various languages... C, C++, even golang. Your code is much smaller
because you didn't implement generation of type-safe RPC wrappers (you just
wrote out everything manually in {{HdfsImpl::Exists}}), didn't integrate the
existing JNIFS code, are not parsing the config XMLs, don't handle errors, etc.
etc. {{boost::asio}} doesn't provide equivalent functionality to {{libuv}}.
It does wrap a lot of network stuff, but doesn't handle things like condition
variables, signals, etc. etc. It uses exceptions, which are problematic. Yes,
you can use boost for some of that stuff, but the boost versions are often not
that good. For example, the boost condition variable actually can let your
thread wake up without recovering the lock (it then has to sleep again). Boost
in general has a versioning problem which is really bad for libraries. If your
library links against version X of boost, any application linking to you needs
to use the same version... otherwise bad stuff happens. You could link it
statically, but it might be too big for that to work (I've never tried).
If you're interested in something even smaller and more minimal, you can check
out this: https://github.com/toddlipcon/libhrpc/ Though I think that that is
for an out-of-date version of hadoop RPC at this point.
> Native RPCv9 client
> -------------------
>
> Key: HADOOP-10389
> URL: https://issues.apache.org/jira/browse/HADOOP-10389
> Project: Hadoop Common
> Issue Type: Sub-task
> Affects Versions: HADOOP-10388
> Reporter: Binglin Chang
> Assignee: Colin Patrick McCabe
> Attachments: HADOOP-10388.001.patch,
> HADOOP-10389-alternative.000.patch, HADOOP-10389.002.patch,
> HADOOP-10389.004.patch, HADOOP-10389.005.patch
>
>
--
This message was sent by Atlassian JIRA
(v6.2#6252)