Avoid memory copies on gRPC's read path

XMLWordPrintableJSON

    • Server Programmability
    • None
    • 3
    • 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: