+1 on Approach A.

On Thu, Apr 11, 2019 at 10:30 AM Iñigo Goiri <elgo...@gmail.com> wrote:

> Thanks Hexiaoqiao for starting the vote.
> As I said in the JIRA, I prefer Approach A.
>
> I wanted to bring a broader audience as this has changes in RBF, HDFS and
> Commons.
> I think adding a new optional field to the RPC header should be lightweight
> enough.
> The idea of passing a proxied client is already available in places like
> UGI but not to this level.
> I haven't been able to figure other uses but maybe other applications could
> take advantage of this new field.
>
> Please, raise any concerns regarding any of the 3 approaches proposed.
>
> On Wed, Apr 10, 2019 at 11:53 PM Akira Ajisaka <aajis...@apache.org>
> wrote:
>
> > The Approach A looks good to me.
> >
> > Thanks,
> > Akira
> >
> > On Thu, Apr 11, 2019 at 2:30 PM Xiaoqiao He <xq.he2...@gmail.com> wrote:
> > >
> > > Hi forks,
> > >
> > > The current implementation of RBF is not sensitive about data locality,
> > > since NameNode could not get real client hostname by invoke
> > > Server#getRemoteAddress when RPC request forward by Router to NameNode.
> > > Therefore, it will lead to several challenges, for instance,
> > >
> > >    - a. Client could have to go for remote read instead of local read,
> > >    Short-Circuit could not be used in most cases.
> > >    - b. Block placement policy could not run as except based on defined
> > >    rack aware. Thus it will loss local node write.
> > >
> > > There are some different solutions to solve data locality issue after
> > > discussion, some of them will change RPC protocol, so we look forward
> to
> > > furthermore suggestions and votes. HDFS-13248 is tracking the issue.
> > >
> > >    - Approach A: Changing IPC/RPC layer protocol
> > (IpcConnectionContextProto
> > >    or RpcHeader#RpcRequestHeaderProto) and add extra field about client
> > >    hostname. Of course the new field is optional, only input by Router
> > and
> > >    parse by Namenode in generally. This approach is compatibility and
> > Client
> > >    should do nothing after changing.
> > >    - Approach B: Changing ClientProtocol and add extra interface
> > >    create/append/getBlockLocations with additional parameter about
> client
> > >    hostname. As approach A, it is input by Router and parse by
> Namenode,
> > and
> > >    also is compatibility.
> > >    - Approach C: Solve write and read locality separately based on
> > current
> > >    interface and no changes, for write, hack client hostname as one of
> > favor
> > >    nodes for addBlocks, for read, reorder targets at Router after
> > Namenode
> > >    returns result to Router.
> > >
> > > As discussion and evaluation in HDFS-13248, we prefer to change IPC/RPC
> > > layer protocol to support RPC data locality. We welcome more
> suggestions,
> > > votes or just give us feedback to push forward this feature. Thanks.
> > >
> > > Best Regards,
> > > Hexiaoqiao
> > >
> > > reference
> > > [1] https://issues.apache.org/jira/browse/HDFS-13248
> > > [2] https://issues.apache.org/jira/browse/HDFS-10467
> > >
> > > [3] https://issues.apache.org/jira/browse/HDFS-12615
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: hdfs-dev-unsubscr...@hadoop.apache.org
> > For additional commands, e-mail: hdfs-dev-h...@hadoop.apache.org
> >
> >
>

Reply via email to