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

Zero-Copy in EC GRPC (write)

    XMLWordPrintableJSON

Details

    Description

      Today EC with GRPC copies input data buffer several times:

      • when parsing protobuf objects from the input network stream, data is copied from the original netty direct buffer to heap.
      • when writing data to files, the heap buffer needs to be copied to direct buffers by NIO.

      The cost of buffer copies themself is inefficient, it comes with GC consequences of cleaning up the intermediate buffers. Those together slow EC I/O down.

      We can use the ZeroCopyMarshaller from RATIS-1932 to avoid all those issues.

      Attachments

        1. ec-ncopies.png
          372 kB
          Duong
        2. ec-dn-io-comparison.png
          1.04 MB
          Duong
        3. ec_jvm_metric_comparison.png
          1.43 MB
          Duong
        4. datanode-on-write-ec-zerocopies.html
          383 kB
          Duong
        5. datanode-on-write-ec-ncopies.html
          364 kB
          Duong

        Issue Links

          Activity

            People

              duongnguyen Duong
              duongnguyen Duong
              Votes:
              1 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: