hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Akira Ajisaka (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HDFS-14090) RBF: Improved isolation for downstream name nodes.
Date Tue, 30 Jul 2019 19:35:00 GMT

    [ https://issues.apache.org/jira/browse/HDFS-14090?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16896442#comment-16896442
] 

Akira Ajisaka commented on HDFS-14090:
--------------------------------------

Thanks [~crh] for the great work. Mostly looks good to me. Minor suggestions:

1. Would you document "dfs.federation.router.fairness.handler.count.concurrent" in rbf-default.xml?
2. The arguments for acquirePermit and releasePermit methods should be final to avoid potential
inconsistency.
3. Now we can use AssertJ API for tests. For example,
{code}
      assertTrue(overloadException.get() > 0);
{code}
can be replaced with
{code}
      assertThat(overloadException.get()).isGreaterThan(0);
{code}
by AssertJ API. This change makes the error message more useful.

> RBF: Improved isolation for downstream name nodes.
> --------------------------------------------------
>
>                 Key: HDFS-14090
>                 URL: https://issues.apache.org/jira/browse/HDFS-14090
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>            Reporter: CR Hota
>            Assignee: CR Hota
>            Priority: Major
>         Attachments: HDFS-14090-HDFS-13891.001.patch, HDFS-14090-HDFS-13891.002.patch,
HDFS-14090-HDFS-13891.003.patch, HDFS-14090-HDFS-13891.004.patch, HDFS-14090-HDFS-13891.005.patch,
HDFS-14090.006.patch, HDFS-14090.007.patch, RBF_ Isolation design.pdf
>
>
> Router is a gateway to underlying name nodes. Gateway architectures, should help minimize
impact of clients connecting to healthy clusters vs unhealthy clusters.
> For example - If there are 2 name nodes downstream, and one of them is heavily loaded
with calls spiking rpc queue times, due to back pressure the same with start reflecting on
the router. As a result of this, clients connecting to healthy/faster name nodes will also
slow down as same rpc queue is maintained for all calls at the router layer. Essentially the
same IPC thread pool is used by router to connect to all name nodes.
> Currently router uses one single rpc queue for all calls. Lets discuss how we can change
the architecture and add some throttling logic for unhealthy/slow/overloaded name nodes.
> One way could be to read from current call queue, immediately identify downstream name
node and maintain a separate queue for each underlying name node. Another simpler way is to
maintain some sort of rate limiter configured for each name node and let routers drop/reject/send
error requests after certain threshold. 
> This won’t be a simple change as router’s ‘Server’ layer would need redesign
and implementation. Currently this layer is the same as name node.
> Opening this ticket to discuss, design and implement this feature.
>  



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-help@hadoop.apache.org


Mime
View raw message