Merge 'perf: add alternator frontend to perf_simple_query' from Piotr Sarna
The perf_simple_query tool is extended with another protocol
aside from CQL - alternator. The alternative (pun intended) benchmark
can be executed by using the `--alternator X` parameter, where X
specifies one of the alternator's mandatory write isolation options:
- "forbid_rmw" - forbids RMW (read-modify-write) requests
- "unsafe" - never uses LWT (lightweight transactions), even for RMW
- "always_use_lwt" - uses LWT even for non-RMW requests
- "only_rmw_uses_lwt" - that one's rather self-explanatory
Alternator cooperates with existing `--write` and `--delete` parameters.
Aside from being able to check for improvements/regressions
in the alternator module, it's also possible to check how different
isolation levels influence the number of allocations and overall
performance, or to compare alternator against CQL.
Example output showing the difference in isolation levels:
```bash
$ ./build/release/test/perf/perf_simple_query_g --smp 1 \
--write --alternator only_rmw_uses_lwt --default-log-level error
random-seed=1235000092
Started alternator executor
10873.76 tps (202.9 allocs/op, 12.4 tasks/op, 369921 insns/op)
11096.09 tps (202.7 allocs/op, 12.1 tasks/op, 374792 insns/op)
11100.09 tps (203.0 allocs/op, 12.1 tasks/op, 376469 insns/op)
11068.98 tps (203.1 allocs/op, 12.1 tasks/op, 377132 insns/op)
11081.24 tps (203.2 allocs/op, 12.1 tasks/op, 377290 insns/op)
median 11081.24 tps (203.2 allocs/op, 12.1 tasks/op, 377290 insns/op)
median absolute deviation: 14.85
maximum: 11100.09
minimum: 10873.76
$ ./build/release/test/perf/perf_simple_query_g --smp 1 \
--random-seed 1235000092 --write --alternator always_use_lwt \
--default-log-level error
random-seed=1235000092
Started alternator executor
3605.35 tps (877.4 allocs/op, 174.6 tasks/op, 986666 insns/op)
3555.71 tps (890.0 allocs/op, 174.4 tasks/op, 1006945 insns/op)
3530.20 tps (899.7 allocs/op, 174.1 tasks/op, 1021908 insns/op)
3437.65 tps (908.2 allocs/op, 174.6 tasks/op, 1033992 insns/op)
3409.88 tps (913.2 allocs/op, 174.4 tasks/op, 1041240 insns/op)
median 3530.20 tps (899.7 allocs/op, 174.1 tasks/op, 1021908 insns/op)
median absolute deviation: 75.15
maximum: 3605.35
minimum: 3409.88
```
Closes #8656
* github.com:scylladb/scylla:
perf: add alternator frontend to perf_simple_query
cdc: make metadata.hh self-sufficient
test: add minimal alternator_test_env