Skip to main content

Module load

Module load 

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

CommitTracker
The last commit the coordinator acknowledged for one consumer group.
LoadContext
What every load task shares.
LoadContextBuilder
Use builder syntax to set the inputs and finish with build().
LoadOutcome
What a load left behind once every task ended.
PreparedLoad
Consumers whose group assignment completed before the measured load.
ProducerOutput
What a producer task returns when the load stops.
RunningLoad
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 seq on a compacted path: <producer>/k<seq mod keys>.
group_name
The consumer group of path read at isolation.
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 x to payload bytes. A tag longer than the payload is sent whole.
run_consumer
The live consumer group of path at isolation, 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 ctx declares. It runs until LoadContext::stop or LoadContext::abandon, and RunningLoad::finish then collects it.
superseded
Whether a failed compacted send has been superseded.