You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
init: Get number concurrent workers needed, generate child specs for all; entry points for eprof profiling
basho_bench_worker (gen_server): invokes tests
start_link: start_link_local or _distributed based on config flag
run(Pids): send run/infinity message to workers
init
Setup RNG seed for worker sub-process to use; incorporate worker ID to ensure consistency in load-gen
Gets config from environment (Driver, Ops, ShutdownOnError)
Initialize key and value generation
Use dedicated sub-process to do actual work so it can sleep/etc as needed and avoids unnecessary polling of message queue.
ops_tuple: Expand operations list into tuple suitable for weighted, random draw
worker_init: Trap exits from linked parent process; use this to ensure the driver gets a chance to cleanup; calls worker_idle_loop
worker_idle_loop
receive(init_driver): (Spin up the driver implementation)
receive(run): based on mode, call max_worker_run_loop() or rate_worker_run_loop() (which is where we calculate rate control amounts, don’t expect greater than one second
worker_next_op/1
Based on worker_next_op(State, OpTag) handle op_complete calls, errors, exti
——- Supporting utilities —————–
basho_bench_config (gen_server): load config file, support getters/setters
basho_bench_measurement_erlangvm: make RPC calls to Node, returning info on memory/cpu/processes/filehandles/et
basho_bench_stats_writer_*: various forms out stats output(basic, csv, ETS, riemann)
basho_bench_keygen: key generator patterns
basho_bench_valgen: value generator patterns
basho_bench_uuid: generates a random UUID, conversion utilities