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

Zero-copy ByteBuffer-based compressor / decompressor API

Add voteVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

    Details

    • Type: New Feature
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: io, performance
    • Labels:
      None

      Description

      Per Todd Lipcon's comment in HDFS-2834, "
      Whenever a native decompression codec is being used, ... we generally have the following copies:

      1) Socket -> DirectByteBuffer (in SocketChannel implementation)
      2) DirectByteBuffer -> byte[] (in SocketInputStream)
      3) byte[] -> Native buffer (set up for decompression)
      4*) decompression to a different native buffer (not really a copy - decompression necessarily rewrites)
      5) native buffer -> byte[]

      with the proposed improvement we can hopefully eliminate #2,#3 for all applications, and #2,#3,and #5 for libhdfs.
      "

      The interfaces in the attached patch attempt to address:
      A - Compression and decompression based on ByteBuffers (HDFS-2834)
      B - Zero-copy compression and decompression (HDFS-3051)
      C - Provide the caller a way to know how the max space required to hold compressed output.

        Attachments

        1. hadoop8148.patch
          8 kB
          Tim Broberg
        2. hadoop-8148.patch
          6 kB
          Owen O'Malley
        3. zerocopyifc.tgz
          2 kB
          Tim Broberg

        Issue Links

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              tbroberg Tim Broberg

              Dates

              • Created:
                Updated:

                Issue deployment