Uploaded image for project: 'Apache Ozone'
  1. Apache Ozone
  2. HDDS-9536

Datanode perf: Copying (heap) buffers is costly

    XMLWordPrintableJSON

Details

    Description

      Today, datanodes don't use direct buffers for WriteChunk data. When the chunks are written to disk, NIO converts those buffers to direct ones and the conversion seems to be very costly (please see attached datanode-on-write2.html).

      Chunk data proto should be serialized from network/ratis using (pooled) direct buffers. That would avoid lots of extra costs not only from buffer copying but also from GCing the immediate buffers.

      Attachments

        1. datanode-read-ratis-after-mapped-buffer.html
          954 kB
          Duong
        2. datanode-read-ratis.html
          171 kB
          Duong
        3. datanode-on-write2.html
          353 kB
          Duong
        4. Screenshot 2023-10-25 at 8.44.16 AM.png
          538 kB
          Duong

        Issue Links

          Activity

            People

              szetszwo Tsz-wo Sze
              duongnguyen Duong
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: