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

Use single Selector and small thread pool to replace many instances of BlockSender for reads

Log workAgile BoardRank to TopRank to BottomAttach filesAttach ScreenshotAdd voteVotersWatch issueWatchersCreate sub-taskConvert to sub-taskMoveLinkCloneLabelsUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: datanode, performance
    • Labels:
      None

      Description

      Currently, on read requests, the DataXCeiver server allocates a new thread per request, which must allocate its own buffers and leads to higher-than-optimal CPU and memory usage by the sending threads. If we had a single selector and a small threadpool to multiplex request packets, we could theoretically achieve higher performance while taking up fewer resources and leaving more CPU on datanodes available for mapred, hbase or whatever. This can be done without changing any wire protocols.

        Attachments

        1. hbase-hdfs-benchmarks.ods
          23 kB
          Jay Booth
        2. hdfs-918-20100201.patch
          81 kB
          Jay Booth
        3. hdfs-918-20100203.patch
          83 kB
          Jay Booth
        4. hdfs-918-20100211.patch
          82 kB
          Jay Booth
        5. hdfs-918-20100228.patch
          73 kB
          Jay Booth
        6. hdfs-918-20100309.patch
          76 kB
          Jay Booth
        7. hdfs-918-branch20.2.patch
          91 kB
          Jay Booth
        8. hdfs-918-branch20-append.patch
          90 kB
          Jay Booth
        9. hdfs-918-pool.patch
          39 kB
          Jay Booth
        10. hdfs-918-TRUNK.patch
          81 kB
          Jay Booth
        11. hdfs-multiplex.patch
          83 kB
          Jay Booth

        Issue Links

          Activity

          $i18n.getText('security.level.explanation', $currentSelection) Viewable by All Users
          Cancel

            People

              Dates

              • Created:
                Updated:

                Issue deployment