Documentation
¶
Overview ¶
Command memdrv is equivalence-spec §3.6's synthetic session driver for gotth-live: it opens N real sessions against a memsrv, holds them IDLE, and keeps them alive for as long as the harness needs them.
§ 3.6 defines the driver as one that "speaks each stack's actual protocol — gotth-live: liquid proto over the ADR-001 transport, real handshake, real events — and consumes and discards pushed payloads at the rate a browser would (no artificial backpressure)". Three things follow and each is done here rather than approximated:
- The handshake is the real one: the gotth-live.v1 subprotocol is offered, an Origin the server's allowlist contains is sent, and a session that is refused is counted as refused rather than retried into existence.
- Every Snapshot and Patch is ACKNOWLEDGED as soon as it is read. Not acknowledging would leave patches occupying the server's unacked window, which is per-session memory the server would be holding because of the driver — the artificial backpressure §3.6 forbids, in the direction that inflates the number being measured.
- Every server Heartbeat is echoed. Liveness in this protocol is the Heartbeat FRAME, not an RFC 6455 ping (protocol.md §3.4), so a driver that only read would be evicted at HeartbeatTimeout and the run would measure a server whose sessions were dying.
Idle means idle: after the mount snapshot, this sends nothing except those acknowledgements and heartbeat echoes. That is the Idle workload of §3.4.
Usage:
memdrv -url ws://127.0.0.1:18080/live -origin http://127.0.0.1:18080 \
-n 1000 -status 127.0.0.1:19080
Click to show internal directories.
Click to hide internal directories.