mirror of
https://github.com/dragonflydb/dragonfly.git
synced 2025-05-10 18:05:44 +02:00
* feat(dfly_bench): allow regulated throughput in 3 modes 1. Coordinated omission - with --qps=0, each request is sent and then we wait for the response and so on. For pipeline mode, k requests are sent and then we wait for them to return to send another k 2. qps > 0: we schedule sending requests at frequency "qps" per connection but if pending requests count crosses a limit we slow down by throttling request sending. This mode enables gentle uncoordinated omission, where the schedule converges to the real throughput capacity of the backend (if it's slower than the target throughput). 3. qps < 0, similar as (2) but does not adjust its scheduling and may overload the server if target QPS is too high. Signed-off-by: Roman Gershman <roman@dragonflydb.io> * chore: change pipelining and coordinated omission logic Before that the uncoordinated omission only worked without pipelining. Now, with pipelining mode with send a burst of P requests and then: a) For coordinated omission - wait for all of them to complete before proceeding further b) For non-coordinated omission - we sleep to pace our single connection throughput as defined by the qps setting. Signed-off-by: Roman Gershman <roman@dragonflydb.io> --------- Signed-off-by: Roman Gershman <roman@dragonflydb.io> |
||
---|---|---|
.. | ||
benchmark | ||
docker | ||
eviction | ||
local | ||
packaging | ||
replay | ||
balls_bins.py | ||
cache_logs_player.py | ||
cache_testing.py | ||
cluster_mgr.py | ||
defrag_db.py | ||
defrag_mem_test.py | ||
generate-tls-files.sh | ||
json_benchmark.py | ||
parse_allocator_tracking_logs.py | ||
release.sh | ||
requirements.txt |