hubcio opened a new pull request, #4025:
URL: https://github.com/apache/iggy/pull/4025

   A PolledMessages reply concatenated the poll fragments into one
   buffer, walked the batch records into a second, then copied that
   into a zeroed reply frame: three copies plus a memset per poll,
   about four times the payload in memory traffic before the kernel
   copy. Nothing in the format required it, the reply record
   encoding is the storage encoding, except at-rest decryption.
   
   Build the reply as one 272-byte head fragment (ReplyHeader plus
   partition_id, current_offset, count) followed by the journal or
   disk Frozen fragments as they are, deriving count by walking the
   batch headers across fragments. The frame travels end to end as
   BusMessage = ResponseBacking (SmallVec inline for the single
   fragment every other reply is, 32 bytes) through send_to_client,
   the shard reply lane, the connection mailboxes and the writers:
   TCP flattens the fragments into one writev chunked at IOV_MAX,
   QUIC and TLS write per fragment, WS and WSS join once because
   tungstenite takes a single payload buffer. The decrypt path and
   the HTTP JSON handler keep the flattening builder, which also
   pins the wire bytes as the oracle in the new unit tests.
   LifecycleFrame stays 160 bytes.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to