Uploaded image for project: 'Hadoop HDFS'
  1. Hadoop HDFS
  2. HDFS-8708

DFSClient should ignore dfs.client.retry.policy.enabled for HA proxies

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Critical
    • Resolution: Won't Fix
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      None
    • Target Version/s:

      Description

      DFSClient should ignore dfs.client.retry.policy.enabled for HA proxies to ensure fast failover. Otherwise, dfsclient retries the NN which is no longer active and delays the failover.

        Issue Links

          Activity

          Hide
          brahmareddy Brahma Reddy Battula added a comment -

          It's good point,going to close this issue,if anyone disagree please feel free to reopen.

          Show
          brahmareddy Brahma Reddy Battula added a comment - It's good point,going to close this issue,if anyone disagree please feel free to reopen.
          Hide
          kihwal Kihwal Lee added a comment -

          The default value is false for HA. I think it's good enough.

          I agree. Besides, there are cases where we want this to be on and work with HA. E.g. the IP address change detection code in ipc Client does not work, if the exception bubbles upto HA retey logic. It only works when retry is done within the same Client instance.

          Show
          kihwal Kihwal Lee added a comment - The default value is false for HA. I think it's good enough. I agree. Besides, there are cases where we want this to be on and work with HA. E.g. the IP address change detection code in ipc Client does not work, if the exception bubbles upto HA retey logic. It only works when retry is done within the same Client instance.
          Hide
          walter.k.su Walter Su added a comment -

          Current default value is false itself right? and the Retry policy set is TRY_ONCE_THEN_FAIL by default.

          Agree.

          DFSClient should ignore dfs.client.retry.policy.enabled for HA proxies

          The default value is false for HA. I think it's good enough. But we should not force Client to ignore dfs.client.retry.policy.enabled.

          Assume a situation:
          1. Client lost network connection to activeNN somehow. But activeNN works correctly, so no failover in server side.
          2. Then Client failover 15 times(default max retries), and fails.
          3. the network issues fixed somehow.
          What if user want to retry connecting to activeNN multiple times, and doesn't want to failover so quickly, user can wait a minute before failover? If so, user can enable this config.

          I think we should give user the option. Any ideas?

          Show
          walter.k.su Walter Su added a comment - Current default value is false itself right? and the Retry policy set is TRY_ONCE_THEN_FAIL by default. Agree. DFSClient should ignore dfs.client.retry.policy.enabled for HA proxies The default value is false for HA. I think it's good enough. But we should not force Client to ignore dfs.client.retry.policy.enabled. Assume a situation: 1. Client lost network connection to activeNN somehow. But activeNN works correctly, so no failover in server side. 2. Then Client failover 15 times(default max retries), and fails. 3. the network issues fixed somehow. What if user want to retry connecting to activeNN multiple times, and doesn't want to failover so quickly, user can wait a minute before failover? If so, user can enable this config. I think we should give user the option. Any ideas?
          Hide
          brahmareddy Brahma Reddy Battula added a comment -

          You mean to say, even if enabled, should not use them?

          AFAIK,Yes, when it's enabled dfsclient should not use for HA proxies.

          Show
          brahmareddy Brahma Reddy Battula added a comment - You mean to say, even if enabled, should not use them? AFAIK,Yes, when it's enabled dfsclient should not use for HA proxies.
          Hide
          vinayrpet Vinayakumar B added a comment -

          Current default value is false itself right? and the Retry policy set is TRY_ONCE_THEN_FAIL by default.

          You mean to say, even if enabled, should not use them?

          Show
          vinayrpet Vinayakumar B added a comment - Current default value is false itself right? and the Retry policy set is TRY_ONCE_THEN_FAIL by default. You mean to say, even if enabled, should not use them?

            People

            • Assignee:
              brahmareddy Brahma Reddy Battula
              Reporter:
              jnp Jitendra Nath Pandey
            • Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development