Avoid memory copies on gRPC's read path

XMLWordPrintableJSON

    • Server Programmability
    • None
    • 3
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      We use a custom memory layout for our SharedBuffer objects, which reserve a few bytes at the beginning of each contiguous memory region for metadata (e.g., the capacity of the buffer). As a result, we cannot have SharedBuffer own the memory allocated by gRPC to read from a server stream. This requires an additional heap allocation and memory copy on the critical path.

      We can avoid the copy by either changing the layout of the byte-array sent through gRPC streams, or modify SharedBuffer to accepts raw buffers.

              Assignee:
              Unassigned
              Reporter:
              Amirsaman Memaripour
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated: