aboutsummaryrefslogtreecommitdiffstats
path: root/CHECKPOINT.md
diff options
context:
space:
mode:
authoreunhhu <[email protected]>2026-09-28 20:10:49 +0100
committereunhhu <[email protected]>2026-09-28 20:10:49 +0100
commitee7f97001b0e193a766a0f889ae16f9d5af40fea (patch)
tree1e92063bcdeca959605cc34a436764e7a5b07d12 /CHECKPOINT.md
parent91754a57ad7b7a92f9935509367590db951f903b (diff)
downloadpure-ee7f97001b0e193a766a0f889ae16f9d5af40fea.tar.gz
pure-ee7f97001b0e193a766a0f889ae16f9d5af40fea.zip
Wake a link's thread only when it sleeps, once
Every queued record wrote the link's eventfd, a system call each, and woke the thread to send a packet of a few records. A record queued now wakes the thread only when it sleeps and nobody woke it yet; one queued while it sends marks the link, and the thread looks again before it sleeps. With records queued one at a time as fast as a thread can, 200,000 small ones went at 400k a second, and now at 730k; queuing one costs 0.43 us, not 1.0. research/experiments/019-idle-links/transport.c measures the transport alone: a link and a listener in one process, no app, no store. A backlog of 200,000 records of 61 bytes drains at 3 to 4 million a second, 0.24 us a record on each side.
Diffstat (limited to 'CHECKPOINT.md')
0 files changed, 0 insertions, 0 deletions