Thanx Hexiaoqiao for putting this up.
As already discussed at the JIRA
The Approach A sounds best to me.

-Ayush

> On 11-Apr-2019, at 11:50 PM, Giovanni Matteo Fumarola 
> <giovanni.fumar...@gmail.com> wrote:
> 
> +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
>>> 
>>> 
>> 

---------------------------------------------------------------------
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