Motr  M0
Workload module for client.
Collaboration diagram for Workload module for client.:

Crate IO workload overview.

Crate supports two types of object I/O Operations:

  1. Multiple threads writing/reading on/from the same object.
  2. Each thread writing/reading on/from different objects.

For each of the above task I/O can be generated sequentially or parallely. For example, Two threads to share the object and write randomly:

NR_THREADS: 2
THREAD_OPS: 1
RAND_IO: 1
IOSIZE: 10M
BLOCK_SIZE: 32768

It is means, that crate performs next operations:

Spawns two threads.
Create a single object.
Each thread writes 4096 bytes Randomly on a shared object.

Crate I/O workload detailed description.

Workload has following parameters:

Measurements

Currently, only execution time is measured during the test. It measures with m0_time* functions. Crate prints result to stdout when test is finished.

Logging

crate has own logging system, which based on fprintf(stderr...). (see crlog and see cr_log).

Execution time limits

There are two ways to limit execution time. The first, is operations time limit, which checks after operation executed (as described in HLD).