pub fn bench_client<'a, Client, Payload>(
clients: &Cluster<'a, Client>,
workload_generator: impl FnOnce(&Cluster<'a, Client>, Stream<(u32, Option<Payload>), Cluster<'a, Client>, Unbounded, NoOrder>) -> Stream<(u32, Payload), Cluster<'a, Client>, Unbounded, NoOrder>,
transaction_cycle: impl FnOnce(Stream<(u32, Payload), Cluster<'a, Client>, Unbounded>) -> Stream<(u32, Payload), Cluster<'a, Client>, Unbounded, NoOrder>,
num_clients_per_node: usize,
nondet_throughput_window: NonDet,
) -> BenchResult<'a, Client>where
Payload: Clone,
Expand description
Benchmarks transactional workloads by concurrently submitting workloads
(up to num_clients_per_node
per machine), measuring the latency
of each transaction and throughput over the entire workload.
workload_generator
- Generates a payloadP
for each virtual clienttransaction_cycle
- Processes the payloads and returns after processing
ยงNon-Determinism
This function uses non-deterministic wall-clock windows for measuring throughput.