mirror of
https://github.com/scylladb/scylladb.git
synced 2026-04-21 17:10:35 +00:00
" query_singular() accepts a partition_range_vector, corresponding to an IN query. But such queries are rare compared to single-partition queries. Co-routinise the code and special case non-IN queries by avoiding the call to map_reduce. Also replace executers array with small_vector to avoid an allocation in the common case. perf_simple_query --smp 1 --operations-per-shard 1000000 --task-quota-ms 10: before: median 204545.04 tps ( 81.1 allocs/op, 15.1 tasks/op, 48828 insns/op) after: median 219769.97 tps ( 74.1 allocs/op, 12.1 tasks/op, 46495 insns/op) So, a ~7% improvement in tps and 5% improvement in instructions per op. Also large reduction in tasks and allocations. This is an alternative proposal to https://github.com/scylladb/scylla/pull/8909. The benefit of this one is that it does not duplicate any code (almost). " * 'query_singular-coroutine' of github.com:scylladb/scylla-dev: storage_proxy: avoid map_reduce in storage_proxy::query_singular if only one pk is queried storage_proxy: use small_vector in storage_proxy::query_singular to store executors storage_proxy: co-routinize storage_proxy::query_singular()