You are viewing a plain text version of this content. The canonical link for it is here.
Posted to yarn-issues@hadoop.apache.org by "Daniel Templeton (JIRA)" <ji...@apache.org> on 2016/09/26 21:56:20 UTC

[jira] [Updated] (YARN-5677) RM can be in active-active state for an extended period

     [ https://issues.apache.org/jira/browse/YARN-5677?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Daniel Templeton updated YARN-5677:
-----------------------------------
    Description: 
Both branch-2.8/trunk and branch-2.7 have issues when the active RM loses contact with the ZK node(s).

In branch-2.7, the RM will retry the connection 1000 times by default.  Attempting to contact a node which cannot be reached is slow, which means the active can take over an hour to realize it is no longer active.  I clocked it at about an hour and a half in my tests.  The solution appears to be to add some time awareness into the retry loop.

In branch-2.8/trunk, there is no maximum number of retries that I see.  It appears the connection will be retried forever, with the active never figuring out it's no longer active.  I have a test running, and I'll update this description with empirical findings when I'm done.  The solution appears to be to cap the number of retries or amount of time spent retrying.

This issue is significant because of the asynchronous nature of job submission.  If the active doesn't know it's not active, it will buffer up job submissions until it finally realizes it has become the standby. Then it will fail all the job submissions in bulk. In high-volume workflows, that behavior can create huge mass job failures.

This issue is also important because the node managers will not fail over to the new active until the old active realizes it's the standby.  Workloads submitted after the old active loses contact with ZK will therefore fail to be executed regardless of which RM the clients contact.

  was:
Both branch-2.8/trunk and branch-2.7 have issues when the active RM loses contact with the ZK node(s).

In branch-2.7, the RM will retry the connection 1000 times by default.  Attempting to contact a node which cannot be reached is slow, which means the active can take over an hour to realize it is no longer active.  I clocked it at about an hour and a half in my tests.  The solution appears to be to add some time awareness into the retry loop.

In branch-2.8/trunk, there is no maximum number of retries that I see.  It appears the connection will be retried forever, with the active never figuring out it's no longer active.  I have a test running, and I'll update this description with empirical findings when I'm done.  The solution appears to be to cap the number of retries or amount of time spent retrying.

This issue is significant because of the asynchronous nature of job submission.  If the active doesn't know it's not active, it will buffer up job submissions until it finally realizes it has become the standby. Then it will fail all the job submissions in bulk. In high-volume workflows, that behavior can create huge mass job failures.


> RM can be in active-active state for an extended period
> -------------------------------------------------------
>
>                 Key: YARN-5677
>                 URL: https://issues.apache.org/jira/browse/YARN-5677
>             Project: Hadoop YARN
>          Issue Type: Bug
>          Components: resourcemanager
>    Affects Versions: 2.7.3, 3.0.0-alpha1
>            Reporter: Daniel Templeton
>            Assignee: Daniel Templeton
>            Priority: Critical
>
> Both branch-2.8/trunk and branch-2.7 have issues when the active RM loses contact with the ZK node(s).
> In branch-2.7, the RM will retry the connection 1000 times by default.  Attempting to contact a node which cannot be reached is slow, which means the active can take over an hour to realize it is no longer active.  I clocked it at about an hour and a half in my tests.  The solution appears to be to add some time awareness into the retry loop.
> In branch-2.8/trunk, there is no maximum number of retries that I see.  It appears the connection will be retried forever, with the active never figuring out it's no longer active.  I have a test running, and I'll update this description with empirical findings when I'm done.  The solution appears to be to cap the number of retries or amount of time spent retrying.
> This issue is significant because of the asynchronous nature of job submission.  If the active doesn't know it's not active, it will buffer up job submissions until it finally realizes it has become the standby. Then it will fail all the job submissions in bulk. In high-volume workflows, that behavior can create huge mass job failures.
> This issue is also important because the node managers will not fail over to the new active until the old active realizes it's the standby.  Workloads submitted after the old active loses contact with ZK will therefore fail to be executed regardless of which RM the clients contact.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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