Uploaded image for project: 'Hadoop Common'
  1. Hadoop Common
  2. HADOOP-18103 High performance vectored read API in Hadoop
  3. HADOOP-18106

Handle memory fragmentation in S3 Vectored IO implementation.

    XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 3.3.5
    • fs/s3

    Description

      As we have implemented merging of ranges in the S3AInputStream implementation of vectored IO api, it can lead to memory fragmentation. Let me explain by example.

       

      Suppose client requests for 3 ranges. 

      0-500, 700-1000 and 1200-1500.

      Now because of merging, all the above ranges will get merged into one and we will allocate a big byte buffer of 0-1500 size but return sliced byte buffers for the desired ranges.

      Now once the client is done reading all the ranges, it will only be able to free the memory for requested ranges and memory of the gaps will never be released for eg here (500-700 and 1000-1200).

       

      Attachments

        Activity

          People

            mthakur Mukund Thakur
            mthakur Mukund Thakur
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0h
                0h
                Logged:
                Time Spent - 4.5h
                4.5h