cycle clock like most clocks is affected by thread context switching, and maybe this is what causes
test failures. Try to increase the parameter to even further.
Also, add benchmarks for the clock as well as fix some compiler warnings around parser.cc
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
Generate command with long strings. We will first create number of
random samples that will be used to match keys for which we are generating huge
strings. Total length of huge value string will be divided equally between elements in
generated command.
Closes#4430
Signed-off-by: mkaruza <mario@dragonflydb.io>
1. Fix a crash bug in RESETSTAT when number of shards is less than number of threads.
2. Tune regtests parameters for pipelining tests to pass.
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
Fixes#4998.
1. Reduces agressive yielding when reading multiple requests since it humpers pipeline efficiency.
Now we yield consistently based on cpu time spend since the last resume point (via flag with sane defaults).
2. Increases socket read buffer size effectively allowing processing more requests in bulk.
`./dragonfly --cluster_mode=emulated`
latencies (usec) for pipeline sizes 80-199:
p50: 1887, p75: 2367, p90: 2897, p99: 6266
`./dragonfly --cluster_mode=emulated --experimental_cluster_shard_by_slot`
latencies (usec) for pipeline sizes 80-199:
p50: 813, p75: 976, p90: 1216, p99: 3528
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
* chore: Make snapshotting more responsive
This should improve situation around #4787 -
maybe not solve it completely but improve it significantly.
On my tests when doing snapshotting under read traffic with master
(memtier_benchmark --ratio 0:1 -d 256 --test-time=400 --distinct-client-seed --key-maximum=2000000 -c 5 -t 2 --pipeline=3)
I got drop from 250K qps to 8K qps during the full sync phase.
With this PR, the throughput went up to 70-80K qps.
---------
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
Pytest test_exit_on_s3_snapshot_load_err can raise exception on start in
some test environments. Now wait for exception in instance start and
stop.
Signed-off-by: mkaruza <mario@dragonflydb.io>
Exit process if error is reported when we try to initially load snapshot from
cloud storage or local directory.
Fixes#4840
Signed-off-by: mkaruza <mario@dragonflydb.io>
Bumpup logic is moved to OnCbFinish. Previously keys which are going to
be delete were also bumped up but with this change if key doesn't exists
on callback we will skip it.
Closes#4775
Signed-off-by: mkaruza <mario@dragonflydb.io>
* rename StaticSeeder to DebugPopulateSeeder to show intent
* add a DCHECK in debug populate that triggers if there is a registered replica that hasn't reached stable sync
* small cleanup
Signed-off-by: kostas <kostas@dragonflydb.io>
Test `test_s3_save_local_dir` fails sporadically. Possible explanation is that parallel tests working
with same bucket remove saved snapshot files - to mitigate this now snapshots will be saved
into S3 temp directory.
Closes#4783
Signed-off-by: mkaruza <mario@dragonflydb.io>
Using `pubsub.ssubscribe` function doesn't wait for any response from
server. Fixed by switching to execute SSUBSCRIBE commands in client directly.
Signed-off-by: mkaruza <mario@dragonflydb.io>