package protocol.run

Mouse Melon logoGet desktop application:
View/edit binary Protocol Buffers messages

message BatchedResult

run.top_level.proto:20

For optimal streaming performance, batches of results can be returned.

Used in: Result

message Config

run.config.proto:47

Used in: Request

message ConfigStreaming

run.config.proto:24

See CBD-4975 for discussion of streaming. The two main points are: 1. Naively sending back results one at a time did not scale. 2. Batching results in BatchedResults increased flow-rate by nearly 2 orders of magnitude.

The next two parameters are only mandatory on grpc.Workloads, which are explicitly testing various streaming approaches. Otherwise they should be regarded as optional hints. If the performer follows them then it will automatically get what has been tested to most reliably return results. But it can override them if it has done its own testing and found its own best path for that language.

Used in: Config

message HorizontalScaling

run.workloads.proto:30

"HorizontalScaling" is an abstraction over there being many forms of concurrency. The core idea is that the driver is trying to increase the parallelism, and it's up to the performer to choose a suitable platform-dependent way to do this. For some languages that will be threads. For some, a larger pool of concurrent Future/Promises. For some, forking a new process. Whatever is produced (thread, new process), it should run the provided workload(s) in a tight loop. So essentially HorizontalScaling is the number of concurrent operations taking place.

Used in: Workloads

message Request

run.top_level.proto:74

Used as request type in: PerformerService.run

message Result

run.top_level.proto:26

The performer returns a stream of run.Result to the driver. When and what results it should return, are detailed elsewhere in the GRPC.

Used as response type in: PerformerService.run

Used as field type in: BatchedResult

message Workload

run.workloads.proto:15

A workload is generally a bunch of commands to run.

Used in: HorizontalScaling

message Workloads

run.workloads.proto:36

Allows running multiple Workloads concurrently.

Used in: Request