Uploaded image for project: 'Hadoop Common'
  1. Hadoop Common
  2. HADOOP-19279

ABFS: Disabling Apache Http Client as Default Http Client for ABFS Driver

    XMLWordPrintableJSON

Details

    Description

      As part of work done under HADOOP-19120 [ABFS]: ApacheHttpClient adaptation as network library - ASF JIRA
      Apache Http Client was introduced as an alternative Network Library that can be used with ABFS Driver. Earlier JDK Http Client was the only supported network library.

      Apache Http Client was found to be more helpful in terms of controls and knobs it provides to better manage the Network aspects of driver. Hence it was made the default Network Client to be used with ABFS Driver.

      Recently while running scale workloads, we observed a regression where some unexpected wait time was observed while establishing connections. A possible fix has been identified and we are working on getting it fixed.
      One scenario identified during internal tests revealed that, with the current Apache client implementation, a connection cannot become stale. As a result, it is safe to remove the check for stale connections when closing them. This change will optimize the connection handling process by eliminating unnecessary delays and reducing the risk of potential failures caused by redundant checks.
      There was also a possible NPE scenario which was identified on the new network client code recently.

      Until we are done with the code fixes and have revalidated the whole Apache client flow, we would like to make JDK Client as default client again. The new support for Apache Http Client will still be there, but it will be disabled behind a config.

      Attachments

        Issue Links

          Activity

            People

              manika137 Manika Joshi
              manika137 Manika Joshi
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: