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

   The link shard that owns a peer's replica socket burns a full
   core under sustained replicated writes. Nothing batches its reads:
   read_message issues one io_uring read for the 256-byte header and
   a second for the body. Bytes already sitting in the kernel receive
   queue wait for the next call.
   
   A read-ahead buffer sized by message_bus.replica_read_buffer_size
   lets one socket read serve a whole burst. It adds no latency, because
   the reader never waits for the buffer to fill. One fill delivers
   at most one buffer, so a body above that size crosses the buffer in
   buffer-sized pieces and pays one extra pass over the payload and one
   read per piece. A read that large goes straight into the frame's own
   buffer instead.
   
   Zero keeps the unbuffered path, so the A/B baseline is a config change
   and not a separate build. The plaintext writer already coalesces into
   one writev, so it is left alone.
   
   replica_socket_reads_total and replica_inbound_frames_total carry the
   evidence on the real workload: their ratio is the batching factor,
   and only link shards bump them. A read counts once it completes,
   so a link torn down mid-read cannot inflate the ratio.
   


-- 
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