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

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • datanode, performance
    • 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

            People

              jbooth Jay Booth
              jbooth Jay Booth
              Votes:
              2 Vote for this issue
              Watchers:
              39 Start watching this issue

              Dates

                Created:
                Updated: