Expand description
The load: one paced producer per path and one live consumer group per path and isolation level.
Every producer numbers what it sends from zero and writes
record_tag(producer, seq) at the head of each value, so a reader can
say which send a record came from. Sends are pipelined – each tick
enqueues one record and the acknowledgement is awaited beside the next
ticks – because a sequential send caps the rate at one per round trip,
below the 72-hour contract’s rates. Missed ticks are skipped, not caught
up, so a stall during a fault never turns into a burst that inflates the
steady rate after it.
The transactional producer is the exception. It stops ticking while it waits for a transaction’s deliveries and for its commit or abort, every transaction, on a healthy cluster as much as during a fault. Skipping the ticks missed in those waits would hold it below its rate, so it catches them up instead.
Structs§
- Commit
Tracker - The last commit the coordinator acknowledged for one consumer group.
- Load
Context - What every load task shares.
- Load
Context Builder - Use builder syntax to set the inputs and finish with
build(). - Load
Outcome - What a load left behind once every task ended.
- Prepared
Load - Consumers whose group assignment completed before the measured load.
- Producer
Output - What a producer task returns when the load stops.
- Running
Load - Every task of a running load: one producer per path, one consumer group per path and isolation level, and the commit tracker of every group that commits.
Functions§
- aborted_
on_ purpose - Whether transaction
index(counting from zero) is aborted on purpose. - compacted_
key - The key of record
seqon a compacted path:<producer>/k<seq mod keys>. - group_
name - The consumer group of
pathread atisolation. - isolation_
level - key_
index - The key index a compacted key carries.
- prepare
- Join every consumer group before starting the measured load and its fault clock, so coordinator startup does not age the first produced records.
- producer_
name - The one producer of
path, named as the evidence names it. - record_
value - A record value: the tag, padded with
xtopayloadbytes. A tag longer than the payload is sent whole. - run_
consumer - The live consumer group of
pathatisolation, until the load stops. - run_
idempotent - The idempotent or compacted producer of
path, until the load stops. - run_
transactional - The transactional producer of
path, until the load stops. - start
- Start the load
ctxdeclares. It runs untilLoadContext::stoporLoadContext::abandon, andRunningLoad::finishthen collects it. - superseded
- Whether a failed compacted send has been superseded.