redis-benchmarks-specification 0.1.102__py3-none-any.whl → 0.1.150__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of redis-benchmarks-specification might be problematic. Click here for more details.
- redis_benchmarks_specification/__builder__/builder.py +186 -76
- redis_benchmarks_specification/__cli__/args.py +38 -5
- redis_benchmarks_specification/__cli__/cli.py +142 -8
- redis_benchmarks_specification/__common__/builder_schema.py +6 -1
- redis_benchmarks_specification/__common__/env.py +1 -1
- redis_benchmarks_specification/__common__/github.py +44 -39
- redis_benchmarks_specification/__common__/runner.py +15 -3
- redis_benchmarks_specification/__common__/spec.py +52 -0
- redis_benchmarks_specification/__common__/timeseries.py +1551 -0
- redis_benchmarks_specification/__compare__/args.py +28 -0
- redis_benchmarks_specification/__compare__/compare.py +479 -84
- redis_benchmarks_specification/__runner__/runner.py +21 -6
- redis_benchmarks_specification/__self_contained_coordinator__/args.py +0 -5
- redis_benchmarks_specification/__self_contained_coordinator__/artifacts.py +18 -15
- redis_benchmarks_specification/__self_contained_coordinator__/build_info.py +5 -3
- redis_benchmarks_specification/__self_contained_coordinator__/docker.py +7 -3
- redis_benchmarks_specification/__self_contained_coordinator__/prepopulation.py +4 -1
- redis_benchmarks_specification/__self_contained_coordinator__/runners.py +7 -3
- redis_benchmarks_specification/__self_contained_coordinator__/self_contained_coordinator.py +317 -125
- redis_benchmarks_specification/__spec__/cli.py +7 -7
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-100Kkeys-hash-hgetall-50-fields-100B-values.yml +51 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-100Kkeys-load-hash-50-fields-with-1000B-values.yml +46 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-100Kkeys-load-hash-50-fields-with-100B-values.yml +46 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-100Kkeys-load-hash-50-fields-with-10B-values.yml +46 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-10Mkeys-load-hash-5-fields-with-100B-values-pipeline-10.yml +36 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-10Mkeys-load-hash-5-fields-with-100B-values.yml +36 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-10Mkeys-load-hash-5-fields-with-10B-values-pipeline-10.yml +36 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-10Mkeys-load-hash-5-fields-with-10B-values.yml +36 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-100B-expire-use-case.yml +45 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-10B-expire-use-case.yml +45 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-1KiB-expire-use-case.yml +45 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-4KiB-expire-use-case.yml +45 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-bitmap-getbit-pipeline-10.yml +41 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-generic-exists-pipeline-10.yml +40 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-generic-expire-pipeline-10.yml +38 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-generic-expireat-pipeline-10.yml +39 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-generic-pexpire-pipeline-10.yml +38 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-generic-scan-pipeline-10.yml +37 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-generic-touch-pipeline-10.yml +38 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-generic-ttl-pipeline-10.yml +37 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-hash-hexists.yml +41 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-hash-hget-hgetall-hkeys-hvals-with-100B-values.yml +46 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-hash-hgetall-50-fields-10B-values.yml +51 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-hash-hincrby.yml +40 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-hash-hmget-5-fields-with-100B-values-pipeline-10.yml +42 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-hash-transactions-multi-exec-pipeline-20.yml +45 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-list-lpop-rpop-with-100B-values.yml +41 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-list-lpop-rpop-with-10B-values.yml +41 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-list-lpop-rpop-with-1KiB-values.yml +41 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-hash-5-fields-with-1000B-values-pipeline-10.yml +36 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-hash-5-fields-with-1000B-values.yml +36 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-hash-hmset-5-fields-with-1000B-values.yml +36 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-list-with-100B-values.yml +34 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-list-with-10B-values.yml +34 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-list-with-1KiB-values.yml +34 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-set-intset-with-100-elements-pipeline-10.yml +42 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-set-intset-with-100-elements.yml +42 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-stream-1-fields-with-100B-values-pipeline-10.yml +34 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-stream-1-fields-with-100B-values.yml +34 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-stream-5-fields-with-100B-values-pipeline-10.yml +36 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-stream-5-fields-with-100B-values.yml +36 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-string-with-100B-values-pipeline-10.yml +34 -0
- redis_benchmarks_specification/{test-suites/memtier_benchmark-1Mkeys-load-string-with-2MB-values.yml → latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-string-with-100B-values.yml} +10 -9
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-string-with-10B-values-pipeline-10.yml +34 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-string-with-10B-values.yml +34 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-string-with-1KiB-values.yml +34 -0
- redis_benchmarks_specification/{test-suites/memtier_benchmark-1Mkeys-load-string-with-200KiB-values.yml → latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-string-with-20KiB-values.yml} +10 -9
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-zset-with-10-elements-double-score.yml +36 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-zset-with-10-elements-int-score.yml +35 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-append-1-100B-pipeline-10.yml +40 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-append-1-100B.yml +39 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-decr.yml +39 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-get-100B-pipeline-10.yml +38 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-get-100B.yml +37 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-get-10B-pipeline-10.yml +38 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-get-10B.yml +37 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-get-1KiB-pipeline-10.yml +38 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-get-1KiB.yml +37 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-get-20KiB.yml +37 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-incrby-pipeline-10.yml +32 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-incrby.yml +31 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-incrbyfloat-pipeline-10.yml +32 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-incrbyfloat.yml +31 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-mget-1KiB.yml +38 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-setex-100B-pipeline-10.yml +38 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-setrange-100B-pipeline-10.yml +39 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-setrange-100B.yml +38 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-geo-2-elements-geopos.yml +35 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-geo-2-elements-geosearch-fromlonlat-withcoord.yml +38 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-geo-60M-elements-geodist-pipeline-10.yml +36 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-geo-60M-elements-geodist.yml +35 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-geo-60M-elements-geohash-pipeline-10.yml +36 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-geo-60M-elements-geohash.yml +35 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-geo-60M-elements-geopos-pipeline-10.yml +36 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-geo-60M-elements-geopos.yml +35 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-bybox.yml +36 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-pipeline-10.yml +36 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat.yml +36 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-hash-hscan-50-fields-10B-values.yml +50 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-list-10-elements-lrange-all-elements-pipeline-10.yml +37 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-list-10-elements-lrange-all-elements.yml +37 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-list-100-elements-lrange-all-elements-pipeline-10.yml +52 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-list-100-elements-lrange-all-elements.yml +52 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-list-10K-elements-lindex-integer.yml +40 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-list-10K-elements-lindex-string.yml +40 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-list-1K-elements-lrange-all-elements-pipeline-10.yml +202 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-list-1K-elements-lrange-all-elements.yml +202 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-pfadd-4KB-values-pipeline-10.yml +33 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-set-10-elements-smembers-pipeline-10.yml +37 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-set-10-elements-smembers.yml +36 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-set-10-elements-smismember.yml +36 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-set-100-elements-sismember-is-a-member.yml +52 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-set-100-elements-sismember-not-a-member.yml +52 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-set-100-elements-smembers.yml +50 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-set-100-elements-smismember.yml +53 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-set-100-elements-sscan.yml +50 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-set-10M-elements-sismember-50pct-chance.yml +39 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-set-1K-elements-smembers.yml +200 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-set-1M-elements-sismember-50pct-chance.yml +39 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-set-200K-elements-sadd-constant.yml +38 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-set-2M-elements-sadd-increasing.yml +33 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-zincrby-1M-elements-pipeline-1.yml +40 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-zrank-1M-elements-pipeline-1.yml +40 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-zrem-5M-elements-pipeline-1.yml +47 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-zrevrangebyscore-256K-elements-pipeline-1.yml +40 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-zrevrank-1M-elements-pipeline-1.yml +40 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-zset-10-elements-zrange-all-elements-long-scores.yml +39 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-zset-10-elements-zrange-all-elements.yml +38 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-zset-100-elements-zrange-all-elements.yml +64 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements-long-scores.yml +64 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements.yml +64 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-zset-100-elements-zscan.yml +63 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-zset-1M-elements-zcard-pipeline-10.yml +39 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-zset-1M-elements-zrevrange-5-elements.yml +40 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-zset-1M-elements-zscore-pipeline-10.yml +39 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-2keys-lua-eval-hset-expire.yml +37 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-2keys-lua-evalsha-hset-expire.yml +42 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-2keys-set-10-100-elements-sdiff.yml +55 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-2keys-set-10-100-elements-sinter.yml +56 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-2keys-set-10-100-elements-sunion.yml +56 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-2keys-stream-5-entries-xread-all-entries-pipeline-10.yml +45 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-2keys-stream-5-entries-xread-all-entries.yml +45 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-3Mkeys-load-string-with-512B-values.yml +41 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-connection-hello.yml +32 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-1000_qps-memtier_benchmark-10Kkeys-load-hash-50-fields-with-10000B-values.yml +46 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-1000_qps-memtier_benchmark-1Mkeys-load-zset-listpack-with-100-elements-double-score.yml +92 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-1000_qps-memtier_benchmark-1key-100M-bits-bitmap-bitcount.yml +43 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-1000_qps-memtier_benchmark-1key-list-10K-elements-linsert-lrem-integer.yml +43 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-1000_qps-memtier_benchmark-1key-list-10K-elements-linsert-lrem-string.yml +44 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-1000_qps-memtier_benchmark-1key-list-10K-elements-lpos-integer.yml +40 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-1000_qps-memtier_benchmark-1key-list-10K-elements-lpos-string.yml +40 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-1000_qps-memtier_benchmark-1key-list-2K-elements-quicklist-lrange-all-elements-longs.yml +259 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-1000_qps-memtier_benchmark-1key-zset-1K-elements-zrange-all-elements.yml +321 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-1000_qps-memtier_benchmark-2keys-zset-300-elements-skiplist-encoded-zunion.yml +433 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-1000_qps-memtier_benchmark-2keys-zset-300-elements-skiplist-encoded-zunionstore.yml +433 -0
- redis_benchmarks_specification/latency-test-suites/latency-rate-limited-100_qps-memtier_benchmark-1key-1Billion-bits-bitmap-bitcount.yml +44 -0
- redis_benchmarks_specification/setups/topologies/topologies.yml +65 -0
- redis_benchmarks_specification/test-suites/defaults.yml +5 -1
- redis_benchmarks_specification/test-suites/memtier_benchmark-100Kkeys-hash-hgetall-50-fields-100B-values.yml +34 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-100Kkeys-load-hash-20-fields-with-1B-values-pipeline-30.yml +30 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-100Kkeys-load-hash-50-fields-with-1000B-values.yml +30 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-100Kkeys-load-hash-50-fields-with-100B-values.yml +30 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-100Kkeys-load-hash-50-fields-with-10B-values.yml +30 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-10Kkeys-load-hash-50-fields-with-10000B-values.yml +30 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-10Kkeys-load-list-with-10B-values-pipeline-50.yml +30 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-100B-values-pipeline-10.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-100B-values.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-10B-values-pipeline-10.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-10B-values.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-100B-expire-use-case.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-10B-expire-use-case.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-1KiB-expire-use-case.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-4KiB-expire-use-case.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-bitmap-getbit-pipeline-10.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-exists-pipeline-10.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-expire-pipeline-10.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-expireat-pipeline-10.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-pexpire-pipeline-10.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-pipeline-10.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-touch-pipeline-10.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-ttl-pipeline-10.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hexists.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hget-hgetall-hkeys-hvals-with-100B-values.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hgetall-50-fields-10B-values.yml +34 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hincrby.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hmget-5-fields-with-100B-values-pipeline-10.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-transactions-multi-exec-pipeline-20.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-lpop-rpop-with-100B-values.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-lpop-rpop-with-10B-values.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-lpop-rpop-with-1KiB-values.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-hash-5-fields-with-1000B-values-pipeline-10.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-hash-5-fields-with-1000B-values.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-hash-hmset-5-fields-with-1000B-values.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-list-with-100B-values.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-list-with-10B-values-pipeline-10.yml +30 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-list-with-10B-values.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-list-with-1KiB-values.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-set-intset-with-100-elements-pipeline-10.yml +30 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-set-intset-with-100-elements.yml +30 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-stream-1-fields-with-100B-values-pipeline-10.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-stream-1-fields-with-100B-values.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-stream-5-fields-with-100B-values-pipeline-10.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-stream-5-fields-with-100B-values.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-100B-values-pipeline-10.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-100B-values.yml +2 -5
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-10B-values-pipeline-10.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-10B-values.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-1KiB-values.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-20KiB-values.yml +2 -5
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-zset-listpack-with-100-elements-double-score.yml +30 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-zset-with-10-elements-double-score.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-zset-with-10-elements-int-score.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-append-1-100B-pipeline-10.yml +34 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-append-1-100B.yml +34 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-decr.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-100B-pipeline-10.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-100B.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-10.yml +3 -2
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-1KiB-pipeline-10.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-1KiB.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incrby-pipeline-10.yml +28 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incrby.yml +28 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incrbyfloat-pipeline-10.yml +28 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incrbyfloat.yml +28 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mget-1KiB.yml +1 -0
- redis_benchmarks_specification/test-suites/{memtier_benchmark-1Mkeys-string-get-20KiB.yml → memtier_benchmark-1Mkeys-string-set-with-ex-100B-pipeline-10.yml} +7 -7
- redis_benchmarks_specification/test-suites/{memtier_benchmark-1Mkeys-string-get-200KiB.yml → memtier_benchmark-1Mkeys-string-setex-100B-pipeline-10.yml} +7 -7
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-setrange-100B-pipeline-10.yml +34 -0
- redis_benchmarks_specification/test-suites/{memtier_benchmark-1Mkeys-string-get-2MB.yml → memtier_benchmark-1Mkeys-string-setrange-100B.yml} +7 -6
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-100M-bits-bitmap-bitcount.yml +37 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-1Billion-bits-bitmap-bitcount.yml +37 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-2-elements-geopos.yml +32 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-2-elements-geosearch-fromlonlat-withcoord.yml +33 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geodist-pipeline-10.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geodist.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geohash-pipeline-10.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geohash.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geopos-pipeline-10.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geopos.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-bybox.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-pipeline-10.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-1K-fields-hgetall-pipeline-10.yml +32 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-1K-fields-hgetall.yml +32 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-hscan-50-fields-10B-values.yml +34 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10-elements-lrange-all-elements-pipeline-10.yml +32 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10-elements-lrange-all-elements.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-int-7bit-uint-lrange-all-elements-pipeline-10.yml +32 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-int-lrange-all-elements-pipeline-10.yml +32 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-lrange-all-elements-pipeline-10.yml +32 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-lrange-all-elements.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lindex-integer.yml +34 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lindex-string-pipeline-10.yml +34 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lindex-string.yml +34 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-linsert-lrem-integer.yml +35 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-linsert-lrem-string.yml +35 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lpos-integer.yml +34 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lpos-string.yml +34 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-1K-elements-lrange-all-elements-pipeline-10.yml +32 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-1K-elements-lrange-all-elements.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-2K-elements-quicklist-lrange-all-elements-longs.yml +32 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-load-hash-1K-fields-with-5B-values.yml +30 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-pfadd-4KB-values-pipeline-10.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10-elements-smembers-pipeline-10.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10-elements-smembers.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10-elements-smismember.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-sismember-is-a-member.yml +32 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-sismember-not-a-member.yml +32 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-smembers.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-smismember.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-sscan.yml +32 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10M-elements-sismember-50pct-chance.yml +34 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-1K-elements-smembers.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-1M-elements-sismember-50pct-chance.yml +34 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-200K-elements-sadd-constant.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-2M-elements-sadd-increasing.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zincrby-1M-elements-pipeline-1.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrank-1M-elements-pipeline-1.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrem-5M-elements-pipeline-1.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrangebyscore-256K-elements-pipeline-1.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrangebyscore-256K-elements-pipeline-10.yml +34 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrank-1M-elements-pipeline-1.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-10-elements-zrange-all-elements-long-scores.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-10-elements-zrange-all-elements.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zrange-all-elements.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements-long-scores.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zscan.yml +32 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1K-elements-zrange-all-elements.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zcard-pipeline-10.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zrevrange-5-elements.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zrevrange-withscores-5-elements-pipeline-10.yml +34 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zscore-pipeline-10.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-lua-eval-hset-expire.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-lua-evalsha-hset-expire.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-set-10-100-elements-sdiff.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-set-10-100-elements-sinter.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-set-10-100-elements-sunion.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-stream-5-entries-xread-all-entries-pipeline-10.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-stream-5-entries-xread-all-entries.yml +1 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-zset-300-elements-skiplist-encoded-zunion.yml +33 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-zset-300-elements-skiplist-encoded-zunionstore.yml +33 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-load-string-with-512B-values copy.yml +36 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-load-string-with-512B-values.yml +36 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-get-with-1KiB-values-pipeline-10-2000_conns.yml +34 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-get-with-1KiB-values-pipeline-10-400_conns.yml +34 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-get-with-1KiB-values-pipeline-10-40_conns.yml +34 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-pipeline-10-2000_conns.yml +34 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-pipeline-10-400_conns.yml +34 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-pipeline-10-5200_conns.yml +34 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-connection-hello-pipeline-10.yml +30 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-connection-hello.yml +30 -0
- redis_benchmarks_specification/test-suites/template.txt +1 -0
- {redis_benchmarks_specification-0.1.102.dist-info → redis_benchmarks_specification-0.1.150.dist-info}/METADATA +13 -4
- redis_benchmarks_specification-0.1.150.dist-info/RECORD +350 -0
- {redis_benchmarks_specification-0.1.102.dist-info → redis_benchmarks_specification-0.1.150.dist-info}/WHEEL +1 -1
- redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-1000B-values-pipeline-10.yml +0 -29
- redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-1000B-values.yml +0 -29
- redis_benchmarks_specification-0.1.102.dist-info/RECORD +0 -157
- {redis_benchmarks_specification-0.1.102.dist-info → redis_benchmarks_specification-0.1.150.dist-info}/LICENSE +0 -0
- {redis_benchmarks_specification-0.1.102.dist-info → redis_benchmarks_specification-0.1.150.dist-info}/entry_points.txt +0 -0
|
@@ -11,6 +11,7 @@ import redis
|
|
|
11
11
|
import os
|
|
12
12
|
from pathlib import Path
|
|
13
13
|
import sys
|
|
14
|
+
import time
|
|
14
15
|
|
|
15
16
|
from docker.models.containers import Container
|
|
16
17
|
from redisbench_admin.profilers.profilers_local import (
|
|
@@ -43,6 +44,9 @@ from redis_benchmarks_specification.__common__.runner import (
|
|
|
43
44
|
exporter_datasink_common,
|
|
44
45
|
execute_init_commands,
|
|
45
46
|
)
|
|
47
|
+
from redis_benchmarks_specification.__common__.timeseries import (
|
|
48
|
+
datasink_profile_tabular_data,
|
|
49
|
+
)
|
|
46
50
|
from redis_benchmarks_specification.__compare__.compare import (
|
|
47
51
|
compute_regression_table,
|
|
48
52
|
prepare_regression_comment,
|
|
@@ -72,13 +76,10 @@ from redisbench_admin.run.common import (
|
|
|
72
76
|
prepare_benchmark_parameters,
|
|
73
77
|
)
|
|
74
78
|
from redisbench_admin.run.grafana import generate_artifacts_table_grafana_redis
|
|
75
|
-
|
|
76
|
-
datasink_profile_tabular_data,
|
|
77
|
-
)
|
|
79
|
+
|
|
78
80
|
from redisbench_admin.run.run import calculate_client_tool_duration_and_check
|
|
79
81
|
from redisbench_admin.utils.benchmark_config import (
|
|
80
82
|
get_final_benchmark_config,
|
|
81
|
-
extract_redis_dbconfig_parameters,
|
|
82
83
|
get_defaults,
|
|
83
84
|
)
|
|
84
85
|
from redisbench_admin.utils.local import get_local_run_full_filename
|
|
@@ -93,6 +94,8 @@ from redis_benchmarks_specification.__common__.spec import (
|
|
|
93
94
|
extract_client_cpu_limit,
|
|
94
95
|
extract_client_tool,
|
|
95
96
|
extract_client_container_image,
|
|
97
|
+
extract_redis_dbconfig_parameters,
|
|
98
|
+
extract_redis_configuration_from_topology,
|
|
96
99
|
)
|
|
97
100
|
from redis_benchmarks_specification.__self_contained_coordinator__.artifacts import (
|
|
98
101
|
restore_build_artifacts_from_test_details,
|
|
@@ -229,6 +232,7 @@ def main():
|
|
|
229
232
|
|
|
230
233
|
defaults_filename = args.defaults_filename
|
|
231
234
|
(
|
|
235
|
+
_,
|
|
232
236
|
_,
|
|
233
237
|
default_metrics,
|
|
234
238
|
_,
|
|
@@ -308,6 +312,12 @@ def main():
|
|
|
308
312
|
)
|
|
309
313
|
|
|
310
314
|
|
|
315
|
+
def check_health(container):
|
|
316
|
+
logging.info(container.attrs["State"])
|
|
317
|
+
health_status = container.attrs["State"].get("Health", {}).get("Status")
|
|
318
|
+
return health_status
|
|
319
|
+
|
|
320
|
+
|
|
311
321
|
def self_contained_coordinator_blocking_read(
|
|
312
322
|
github_event_conn,
|
|
313
323
|
datasink_push_results_redistimeseries,
|
|
@@ -333,6 +343,8 @@ def self_contained_coordinator_blocking_read(
|
|
|
333
343
|
priority_upper_limit=10000,
|
|
334
344
|
default_baseline_branch="unstable",
|
|
335
345
|
default_metrics_str="ALL_STATS.Totals.Ops/sec",
|
|
346
|
+
docker_keep_env=False,
|
|
347
|
+
restore_build_artifacts_default=True,
|
|
336
348
|
):
|
|
337
349
|
num_process_streams = 0
|
|
338
350
|
num_process_test_suites = 0
|
|
@@ -384,6 +396,8 @@ def self_contained_coordinator_blocking_read(
|
|
|
384
396
|
priority_upper_limit,
|
|
385
397
|
default_baseline_branch,
|
|
386
398
|
default_metrics_str,
|
|
399
|
+
docker_keep_env,
|
|
400
|
+
restore_build_artifacts_default,
|
|
387
401
|
)
|
|
388
402
|
num_process_streams = num_process_streams + 1
|
|
389
403
|
num_process_test_suites = num_process_test_suites + total_test_suite_runs
|
|
@@ -397,7 +411,7 @@ def self_contained_coordinator_blocking_read(
|
|
|
397
411
|
ack_reply = ack_reply.decode()
|
|
398
412
|
if ack_reply == "1" or ack_reply == 1:
|
|
399
413
|
logging.info(
|
|
400
|
-
"Sucessfully acknowledge
|
|
414
|
+
"Sucessfully acknowledge BENCHMARK variation stream with id {}.".format(
|
|
401
415
|
stream_id
|
|
402
416
|
)
|
|
403
417
|
)
|
|
@@ -452,7 +466,7 @@ def process_self_contained_coordinator_stream(
|
|
|
452
466
|
grafana_profile_dashboard="",
|
|
453
467
|
cpuset_start_pos=0,
|
|
454
468
|
redis_proc_start_port=6379,
|
|
455
|
-
|
|
469
|
+
default_docker_air_gap=False,
|
|
456
470
|
defaults_filename="defaults.yml",
|
|
457
471
|
override_test_time=0,
|
|
458
472
|
default_metrics=[],
|
|
@@ -462,6 +476,8 @@ def process_self_contained_coordinator_stream(
|
|
|
462
476
|
priority_upper_limit=10000,
|
|
463
477
|
default_baseline_branch="unstable",
|
|
464
478
|
default_metrics_str="ALL_STATS.Totals.Ops/sec",
|
|
479
|
+
docker_keep_env=False,
|
|
480
|
+
restore_build_artifacts_default=True,
|
|
465
481
|
):
|
|
466
482
|
stream_id = "n/a"
|
|
467
483
|
overall_result = False
|
|
@@ -475,12 +491,17 @@ def process_self_contained_coordinator_stream(
|
|
|
475
491
|
regression_comment = None
|
|
476
492
|
pull_request = None
|
|
477
493
|
auto_approve_github = True
|
|
494
|
+
# defaults
|
|
495
|
+
default_github_org = "redis"
|
|
496
|
+
default_github_repo = "redis"
|
|
497
|
+
restore_build_artifacts = restore_build_artifacts_default
|
|
498
|
+
|
|
478
499
|
try:
|
|
479
500
|
stream_id, testDetails = newTestInfo[0][1][0]
|
|
480
501
|
stream_id = stream_id.decode()
|
|
481
502
|
logging.info("Received work . Stream id {}.".format(stream_id))
|
|
482
503
|
|
|
483
|
-
if b"
|
|
504
|
+
if b"run_image" in testDetails:
|
|
484
505
|
(
|
|
485
506
|
build_variant_name,
|
|
486
507
|
metadata,
|
|
@@ -493,6 +514,60 @@ def process_self_contained_coordinator_stream(
|
|
|
493
514
|
git_timestamp_ms,
|
|
494
515
|
run_arch,
|
|
495
516
|
) = extract_build_info_from_streamdata(testDetails)
|
|
517
|
+
tf_github_org = default_github_org
|
|
518
|
+
if b"github_org" in testDetails:
|
|
519
|
+
tf_github_org = testDetails[b"github_org"].decode()
|
|
520
|
+
logging.info(
|
|
521
|
+
f"detected a github_org definition on the streamdata: {tf_github_org}. Overriding the default one: {default_github_org}"
|
|
522
|
+
)
|
|
523
|
+
tf_github_repo = default_github_repo
|
|
524
|
+
if b"github_repo" in testDetails:
|
|
525
|
+
tf_github_repo = testDetails[b"github_repo"].decode()
|
|
526
|
+
logging.info(
|
|
527
|
+
f"detected a github_org definition on the streamdata: {tf_github_repo}. Overriding the default one: {default_github_repo}"
|
|
528
|
+
)
|
|
529
|
+
|
|
530
|
+
mnt_point = "/mnt/redis/"
|
|
531
|
+
if b"mnt_point" in testDetails:
|
|
532
|
+
mnt_point = testDetails[b"mnt_point"].decode()
|
|
533
|
+
logging.info(
|
|
534
|
+
f"detected a mnt_point definition on the streamdata: {mnt_point}."
|
|
535
|
+
)
|
|
536
|
+
|
|
537
|
+
executable = f"{mnt_point}redis-server"
|
|
538
|
+
if b"executable" in testDetails:
|
|
539
|
+
executable = testDetails[b"executable"].decode()
|
|
540
|
+
logging.info(
|
|
541
|
+
f"detected a executable definition on the streamdata: {executable}."
|
|
542
|
+
)
|
|
543
|
+
|
|
544
|
+
server_name = "redis"
|
|
545
|
+
if b"server_name" in testDetails:
|
|
546
|
+
server_name = testDetails[b"server_name"].decode()
|
|
547
|
+
logging.info(
|
|
548
|
+
f"detected a server_name definition on the streamdata: {server_name}."
|
|
549
|
+
)
|
|
550
|
+
new_executable = f"{mnt_point}{server_name}-server"
|
|
551
|
+
logging.info(
|
|
552
|
+
"changing executable from {executable} to {new_executable}"
|
|
553
|
+
)
|
|
554
|
+
executable = new_executable
|
|
555
|
+
|
|
556
|
+
if b"restore_build_artifacts" in testDetails:
|
|
557
|
+
restore_build_artifacts = bool(
|
|
558
|
+
testDetails[b"restore_build_artifacts"].decode()
|
|
559
|
+
)
|
|
560
|
+
logging.info(
|
|
561
|
+
f"detected a restore_build_artifacts config {restore_build_artifacts} overriding the default just for this test"
|
|
562
|
+
)
|
|
563
|
+
|
|
564
|
+
test_docker_air_gap = default_docker_air_gap
|
|
565
|
+
# check if we override the docker air gap on this test details
|
|
566
|
+
if b"docker_air_gap" in testDetails:
|
|
567
|
+
test_docker_air_gap = bool(testDetails[b"docker_air_gap"].decode())
|
|
568
|
+
logging.info(
|
|
569
|
+
f"detected a docker air gap config {test_docker_air_gap} overriding the default of {default_docker_air_gap} just for this test"
|
|
570
|
+
)
|
|
496
571
|
|
|
497
572
|
if b"priority_upper_limit" in testDetails:
|
|
498
573
|
stream_priority_upper_limit = int(
|
|
@@ -530,11 +605,18 @@ def process_self_contained_coordinator_stream(
|
|
|
530
605
|
fn, github_token, pull_request, "redis", "redis", verbose
|
|
531
606
|
)
|
|
532
607
|
|
|
533
|
-
|
|
534
|
-
if b"
|
|
535
|
-
|
|
608
|
+
tests_regexp = ".*"
|
|
609
|
+
if b"tests_regexp" in testDetails:
|
|
610
|
+
tests_regexp = testDetails[b"tests_regexp"].decode()
|
|
536
611
|
logging.info(
|
|
537
|
-
f"detected a regexp definition on the streamdata {
|
|
612
|
+
f"detected a regexp definition on the streamdata {tests_regexp}"
|
|
613
|
+
)
|
|
614
|
+
|
|
615
|
+
command_groups_regexp = None
|
|
616
|
+
if b"tests_groups_regexp" in testDetails:
|
|
617
|
+
command_groups_regexp = testDetails[b"tests_groups_regexp"].decode()
|
|
618
|
+
logging.info(
|
|
619
|
+
f"detected a command groups regexp definition on the streamdata {command_groups_regexp}"
|
|
538
620
|
)
|
|
539
621
|
|
|
540
622
|
skip_test = False
|
|
@@ -559,7 +641,7 @@ def process_self_contained_coordinator_stream(
|
|
|
559
641
|
if skip_test is False:
|
|
560
642
|
overall_result = True
|
|
561
643
|
profiler_dashboard_links = []
|
|
562
|
-
if
|
|
644
|
+
if test_docker_air_gap:
|
|
563
645
|
airgap_key = "docker:air-gap:{}".format(run_image)
|
|
564
646
|
logging.info(
|
|
565
647
|
"Restoring docker image: {} from {}".format(
|
|
@@ -577,7 +659,7 @@ def process_self_contained_coordinator_stream(
|
|
|
577
659
|
{stream_id: stream_time_ms},
|
|
578
660
|
)
|
|
579
661
|
logging.info(
|
|
580
|
-
f"Added stream with id {stream_id} to zset {zset_running_platform_benchmarks}"
|
|
662
|
+
f"Added stream with id {stream_id} to zset {zset_running_platform_benchmarks}. res={res}"
|
|
581
663
|
)
|
|
582
664
|
|
|
583
665
|
stream_test_list_pending = f"ci.benchmarks.redis/ci/redis/redis:benchmarks:{stream_id}:{running_platform}:tests_pending"
|
|
@@ -589,8 +671,9 @@ def process_self_contained_coordinator_stream(
|
|
|
589
671
|
defaults_filename,
|
|
590
672
|
priority_lower_limit,
|
|
591
673
|
priority_upper_limit,
|
|
592
|
-
|
|
674
|
+
tests_regexp,
|
|
593
675
|
testsuite_spec_files,
|
|
676
|
+
command_groups_regexp,
|
|
594
677
|
)
|
|
595
678
|
|
|
596
679
|
for test_file in filtered_test_files:
|
|
@@ -599,7 +682,7 @@ def process_self_contained_coordinator_stream(
|
|
|
599
682
|
_,
|
|
600
683
|
benchmark_config,
|
|
601
684
|
test_name,
|
|
602
|
-
) = get_final_benchmark_config(None, stream, "")
|
|
685
|
+
) = get_final_benchmark_config(None, None, stream, "")
|
|
603
686
|
github_event_conn.lpush(stream_test_list_pending, test_name)
|
|
604
687
|
github_event_conn.expire(
|
|
605
688
|
stream_test_list_pending, REDIS_BINS_EXPIRE_SECS
|
|
@@ -611,16 +694,16 @@ def process_self_contained_coordinator_stream(
|
|
|
611
694
|
pending_tests = len(filtered_test_files)
|
|
612
695
|
failed_tests = 0
|
|
613
696
|
benchmark_suite_start_datetime = datetime.datetime.utcnow()
|
|
614
|
-
comment_body = generate_benchmark_started_pr_comment(
|
|
615
|
-
stream_id,
|
|
616
|
-
pending_tests,
|
|
617
|
-
len(filtered_test_files),
|
|
618
|
-
failed_tests,
|
|
619
|
-
benchmark_suite_start_datetime,
|
|
620
|
-
0,
|
|
621
|
-
)
|
|
622
697
|
# update on github if needed
|
|
623
698
|
if is_actionable_pr:
|
|
699
|
+
comment_body = generate_benchmark_started_pr_comment(
|
|
700
|
+
stream_id,
|
|
701
|
+
pending_tests,
|
|
702
|
+
len(filtered_test_files),
|
|
703
|
+
failed_tests,
|
|
704
|
+
benchmark_suite_start_datetime,
|
|
705
|
+
0,
|
|
706
|
+
)
|
|
624
707
|
if contains_benchmark_run_comment:
|
|
625
708
|
update_comment_if_needed(
|
|
626
709
|
auto_approve_github,
|
|
@@ -642,7 +725,7 @@ def process_self_contained_coordinator_stream(
|
|
|
642
725
|
_,
|
|
643
726
|
benchmark_config,
|
|
644
727
|
test_name,
|
|
645
|
-
) = get_final_benchmark_config(None, stream, "")
|
|
728
|
+
) = get_final_benchmark_config(None, None, stream, "")
|
|
646
729
|
github_event_conn.lrem(stream_test_list_pending, 1, test_name)
|
|
647
730
|
github_event_conn.lpush(stream_test_list_running, test_name)
|
|
648
731
|
github_event_conn.expire(
|
|
@@ -679,6 +762,14 @@ def process_self_contained_coordinator_stream(
|
|
|
679
762
|
)
|
|
680
763
|
)
|
|
681
764
|
for topology_spec_name in benchmark_config["redis-topologies"]:
|
|
765
|
+
setup_name = topology_spec_name
|
|
766
|
+
setup_type = "oss-standalone"
|
|
767
|
+
if topology_spec_name in topologies_map:
|
|
768
|
+
topology_spec = topologies_map[topology_spec_name]
|
|
769
|
+
setup_type = topology_spec["type"]
|
|
770
|
+
logging.info(
|
|
771
|
+
f"Running topology named {topology_spec_name} of type {setup_type}"
|
|
772
|
+
)
|
|
682
773
|
test_result = False
|
|
683
774
|
redis_container = None
|
|
684
775
|
try:
|
|
@@ -686,6 +777,11 @@ def process_self_contained_coordinator_stream(
|
|
|
686
777
|
ceil_db_cpu_limit = extract_db_cpu_limit(
|
|
687
778
|
topologies_map, topology_spec_name
|
|
688
779
|
)
|
|
780
|
+
redis_arguments = (
|
|
781
|
+
extract_redis_configuration_from_topology(
|
|
782
|
+
topologies_map, topology_spec_name
|
|
783
|
+
)
|
|
784
|
+
)
|
|
689
785
|
temporary_dir = tempfile.mkdtemp(dir=home)
|
|
690
786
|
temporary_dir_client = tempfile.mkdtemp(dir=home)
|
|
691
787
|
logging.info(
|
|
@@ -698,15 +794,12 @@ def process_self_contained_coordinator_stream(
|
|
|
698
794
|
temporary_dir_client
|
|
699
795
|
)
|
|
700
796
|
)
|
|
701
|
-
|
|
702
|
-
tf_github_repo = "redis"
|
|
703
|
-
setup_name = "oss-standalone"
|
|
704
|
-
setup_type = "oss-standalone"
|
|
797
|
+
|
|
705
798
|
tf_triggering_env = "ci"
|
|
706
799
|
github_actor = "{}-{}".format(
|
|
707
800
|
tf_triggering_env, running_platform
|
|
708
801
|
)
|
|
709
|
-
dso =
|
|
802
|
+
dso = server_name
|
|
710
803
|
profilers_artifacts_matrix = []
|
|
711
804
|
|
|
712
805
|
collection_summary_str = ""
|
|
@@ -725,54 +818,61 @@ def process_self_contained_coordinator_stream(
|
|
|
725
818
|
collection_summary_str
|
|
726
819
|
)
|
|
727
820
|
)
|
|
821
|
+
if restore_build_artifacts:
|
|
822
|
+
restore_build_artifacts_from_test_details(
|
|
823
|
+
build_artifacts,
|
|
824
|
+
github_event_conn,
|
|
825
|
+
temporary_dir,
|
|
826
|
+
testDetails,
|
|
827
|
+
)
|
|
728
828
|
|
|
729
|
-
restore_build_artifacts_from_test_details(
|
|
730
|
-
build_artifacts,
|
|
731
|
-
github_event_conn,
|
|
732
|
-
temporary_dir,
|
|
733
|
-
testDetails,
|
|
734
|
-
)
|
|
735
|
-
mnt_point = "/mnt/redis/"
|
|
736
829
|
command = generate_standalone_redis_server_args(
|
|
737
|
-
|
|
830
|
+
executable,
|
|
738
831
|
redis_proc_start_port,
|
|
739
832
|
mnt_point,
|
|
740
833
|
redis_configuration_parameters,
|
|
834
|
+
redis_arguments,
|
|
741
835
|
)
|
|
742
836
|
command_str = " ".join(command)
|
|
743
837
|
db_cpuset_cpus, current_cpu_pos = generate_cpuset_cpus(
|
|
744
838
|
ceil_db_cpu_limit, current_cpu_pos
|
|
745
839
|
)
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
temporary_dir: {
|
|
755
|
-
"bind": mnt_point,
|
|
756
|
-
"mode": "rw",
|
|
757
|
-
},
|
|
758
|
-
},
|
|
759
|
-
auto_remove=True,
|
|
760
|
-
privileged=True,
|
|
761
|
-
working_dir=mnt_point,
|
|
762
|
-
command=command_str,
|
|
763
|
-
network_mode="host",
|
|
764
|
-
detach=True,
|
|
765
|
-
cpuset_cpus=db_cpuset_cpus,
|
|
766
|
-
pid_mode="host",
|
|
840
|
+
redis_container = start_redis_container(
|
|
841
|
+
command_str,
|
|
842
|
+
db_cpuset_cpus,
|
|
843
|
+
docker_client,
|
|
844
|
+
mnt_point,
|
|
845
|
+
redis_containers,
|
|
846
|
+
run_image,
|
|
847
|
+
temporary_dir,
|
|
767
848
|
)
|
|
768
|
-
redis_containers.append(redis_container)
|
|
769
849
|
|
|
770
850
|
r = redis.StrictRedis(port=redis_proc_start_port)
|
|
771
851
|
r.ping()
|
|
772
852
|
redis_conns = [r]
|
|
773
853
|
reset_commandstats(redis_conns)
|
|
774
854
|
redis_pids = []
|
|
775
|
-
|
|
855
|
+
redis_info = r.info()
|
|
856
|
+
first_redis_pid = redis_info["process_id"]
|
|
857
|
+
if git_hash is None and "redis_git_sha1" in redis_info:
|
|
858
|
+
git_hash = redis_info["redis_git_sha1"]
|
|
859
|
+
if (
|
|
860
|
+
git_hash == "" or git_hash == 0
|
|
861
|
+
) and "redis_build_id" in redis_info:
|
|
862
|
+
git_hash = redis_info["redis_build_id"]
|
|
863
|
+
logging.info(
|
|
864
|
+
f"Given git_hash was None, we've collected that info from the server reply. git_hash={git_hash}"
|
|
865
|
+
)
|
|
866
|
+
|
|
867
|
+
server_version_keyname = f"{server_name}_version"
|
|
868
|
+
if (
|
|
869
|
+
git_version is None
|
|
870
|
+
and server_version_keyname in redis_info
|
|
871
|
+
):
|
|
872
|
+
git_version = redis_info[server_version_keyname]
|
|
873
|
+
logging.info(
|
|
874
|
+
f"Given git_version was None, we've collected that info from the server reply key named {server_version_keyname}. git_version={git_version}"
|
|
875
|
+
)
|
|
776
876
|
redis_pids.append(first_redis_pid)
|
|
777
877
|
ceil_client_cpu_limit = extract_client_cpu_limit(
|
|
778
878
|
benchmark_config
|
|
@@ -821,7 +921,7 @@ def process_self_contained_coordinator_stream(
|
|
|
821
921
|
start_time_str,
|
|
822
922
|
git_hash,
|
|
823
923
|
test_name,
|
|
824
|
-
|
|
924
|
+
setup_name,
|
|
825
925
|
)
|
|
826
926
|
)
|
|
827
927
|
logging.info(
|
|
@@ -1091,6 +1191,7 @@ def process_self_contained_coordinator_stream(
|
|
|
1091
1191
|
tf_triggering_env,
|
|
1092
1192
|
topology_spec_name,
|
|
1093
1193
|
default_metrics,
|
|
1194
|
+
git_hash,
|
|
1094
1195
|
)
|
|
1095
1196
|
r.shutdown(save=False)
|
|
1096
1197
|
|
|
@@ -1132,9 +1233,10 @@ def process_self_contained_coordinator_stream(
|
|
|
1132
1233
|
stdout=True, stderr=True
|
|
1133
1234
|
)
|
|
1134
1235
|
)
|
|
1236
|
+
redis_container.remove()
|
|
1135
1237
|
except docker.errors.NotFound:
|
|
1136
1238
|
logging.info(
|
|
1137
|
-
"When trying to
|
|
1239
|
+
"When trying to fetch logs from DB container with id {} and image {} it was already stopped".format(
|
|
1138
1240
|
redis_container.id,
|
|
1139
1241
|
redis_container.image,
|
|
1140
1242
|
)
|
|
@@ -1146,36 +1248,41 @@ def process_self_contained_coordinator_stream(
|
|
|
1146
1248
|
test_result = False
|
|
1147
1249
|
# tear-down
|
|
1148
1250
|
logging.info("Tearing down setup")
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
redis_container.stop()
|
|
1152
|
-
except docker.errors.NotFound:
|
|
1153
|
-
logging.info(
|
|
1154
|
-
"When trying to stop DB container with id {} and image {} it was already stopped".format(
|
|
1155
|
-
redis_container.id, redis_container.image
|
|
1156
|
-
)
|
|
1157
|
-
)
|
|
1158
|
-
pass
|
|
1159
|
-
|
|
1160
|
-
for redis_container in client_containers:
|
|
1161
|
-
if type(redis_container) == Container:
|
|
1251
|
+
if docker_keep_env is False:
|
|
1252
|
+
for redis_container in redis_containers:
|
|
1162
1253
|
try:
|
|
1163
1254
|
redis_container.stop()
|
|
1255
|
+
redis_container.remove()
|
|
1164
1256
|
except docker.errors.NotFound:
|
|
1165
1257
|
logging.info(
|
|
1166
|
-
"When trying to stop
|
|
1258
|
+
"When trying to stop DB container with id {} and image {} it was already stopped".format(
|
|
1167
1259
|
redis_container.id,
|
|
1168
1260
|
redis_container.image,
|
|
1169
1261
|
)
|
|
1170
1262
|
)
|
|
1171
1263
|
pass
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1264
|
+
|
|
1265
|
+
for redis_container in client_containers:
|
|
1266
|
+
if type(redis_container) == Container:
|
|
1267
|
+
try:
|
|
1268
|
+
redis_container.stop()
|
|
1269
|
+
redis_container.remove()
|
|
1270
|
+
except docker.errors.NotFound:
|
|
1271
|
+
logging.info(
|
|
1272
|
+
"When trying to stop Client container with id {} and image {} it was already stopped".format(
|
|
1273
|
+
redis_container.id,
|
|
1274
|
+
redis_container.image,
|
|
1275
|
+
)
|
|
1276
|
+
)
|
|
1277
|
+
pass
|
|
1278
|
+
logging.info(
|
|
1279
|
+
"Removing temporary dirs {} and {}".format(
|
|
1280
|
+
temporary_dir, temporary_dir_client
|
|
1281
|
+
)
|
|
1175
1282
|
)
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1283
|
+
|
|
1284
|
+
shutil.rmtree(temporary_dir, ignore_errors=True)
|
|
1285
|
+
shutil.rmtree(temporary_dir_client, ignore_errors=True)
|
|
1179
1286
|
|
|
1180
1287
|
overall_result &= test_result
|
|
1181
1288
|
|
|
@@ -1240,9 +1347,7 @@ def process_self_contained_coordinator_stream(
|
|
|
1240
1347
|
tf_github_repo,
|
|
1241
1348
|
verbose,
|
|
1242
1349
|
)
|
|
1243
|
-
logging.info(
|
|
1244
|
-
f"Preparing regression info for the data available"
|
|
1245
|
-
)
|
|
1350
|
+
logging.info("Preparing regression info for the data available")
|
|
1246
1351
|
print_improvements_only = False
|
|
1247
1352
|
print_regressions_only = False
|
|
1248
1353
|
skip_unstable = False
|
|
@@ -1269,8 +1374,8 @@ def process_self_contained_coordinator_stream(
|
|
|
1269
1374
|
(
|
|
1270
1375
|
detected_regressions,
|
|
1271
1376
|
table_output,
|
|
1272
|
-
|
|
1273
|
-
|
|
1377
|
+
improvement_list,
|
|
1378
|
+
regressions_list,
|
|
1274
1379
|
total_stable,
|
|
1275
1380
|
total_unstable,
|
|
1276
1381
|
total_comparison_points,
|
|
@@ -1282,8 +1387,8 @@ def process_self_contained_coordinator_stream(
|
|
|
1282
1387
|
metric_name,
|
|
1283
1388
|
comparison_branch,
|
|
1284
1389
|
baseline_branch,
|
|
1285
|
-
|
|
1286
|
-
|
|
1390
|
+
None, # we only compare by branch on CI automation
|
|
1391
|
+
None, # we only compare by branch on CI automation
|
|
1287
1392
|
baseline_deployment_name,
|
|
1288
1393
|
comparison_deployment_name,
|
|
1289
1394
|
print_improvements_only,
|
|
@@ -1304,41 +1409,50 @@ def process_self_contained_coordinator_stream(
|
|
|
1304
1409
|
use_metric_context_path,
|
|
1305
1410
|
running_platform,
|
|
1306
1411
|
)
|
|
1412
|
+
total_regressions = len(regressions_list)
|
|
1413
|
+
total_improvements = len(improvement_list)
|
|
1307
1414
|
auto_approve = True
|
|
1308
1415
|
grafana_link_base = "https://benchmarksredisio.grafana.net/d/1fWbtb7nz/experimental-oss-spec-benchmarks"
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1416
|
+
try:
|
|
1417
|
+
prepare_regression_comment(
|
|
1418
|
+
auto_approve,
|
|
1419
|
+
baseline_branch,
|
|
1420
|
+
baseline_tag,
|
|
1421
|
+
comparison_branch,
|
|
1422
|
+
comparison_tag,
|
|
1423
|
+
contains_regression_comment,
|
|
1424
|
+
github_pr,
|
|
1425
|
+
grafana_link_base,
|
|
1426
|
+
is_actionable_pr,
|
|
1427
|
+
old_regression_comment_body,
|
|
1428
|
+
pr_link,
|
|
1429
|
+
regression_comment,
|
|
1430
|
+
datasink_conn,
|
|
1431
|
+
running_platform,
|
|
1432
|
+
table_output,
|
|
1433
|
+
tf_github_org,
|
|
1434
|
+
tf_github_repo,
|
|
1435
|
+
tf_triggering_env,
|
|
1436
|
+
total_comparison_points,
|
|
1437
|
+
total_improvements,
|
|
1438
|
+
total_regressions,
|
|
1439
|
+
total_stable,
|
|
1440
|
+
total_unstable,
|
|
1441
|
+
verbose,
|
|
1442
|
+
regressions_percent_lower_limit,
|
|
1443
|
+
regressions_list,
|
|
1444
|
+
)
|
|
1445
|
+
except Exception as e:
|
|
1446
|
+
logging.error(
|
|
1447
|
+
"Failed to produce regression comment but continuing... Error: {}".format(
|
|
1448
|
+
e.__str__()
|
|
1449
|
+
)
|
|
1450
|
+
)
|
|
1337
1451
|
logging.info(
|
|
1338
1452
|
f"Added test named {test_name} to the completed test list in key {stream_test_list_completed}"
|
|
1339
1453
|
)
|
|
1340
1454
|
else:
|
|
1341
|
-
logging.error("Missing
|
|
1455
|
+
logging.error("Missing run image information within received message.")
|
|
1342
1456
|
|
|
1343
1457
|
except Exception as e:
|
|
1344
1458
|
logging.critical(
|
|
@@ -1356,29 +1470,74 @@ def process_self_contained_coordinator_stream(
|
|
|
1356
1470
|
return stream_id, overall_result, total_test_suite_runs
|
|
1357
1471
|
|
|
1358
1472
|
|
|
1473
|
+
def start_redis_container(
|
|
1474
|
+
command_str,
|
|
1475
|
+
db_cpuset_cpus,
|
|
1476
|
+
docker_client,
|
|
1477
|
+
mnt_point,
|
|
1478
|
+
redis_containers,
|
|
1479
|
+
run_image,
|
|
1480
|
+
temporary_dir,
|
|
1481
|
+
auto_remove=False,
|
|
1482
|
+
):
|
|
1483
|
+
logging.info(
|
|
1484
|
+
"Running redis-server on docker image {} (cpuset={}) with the following args: {}".format(
|
|
1485
|
+
run_image, db_cpuset_cpus, command_str
|
|
1486
|
+
)
|
|
1487
|
+
)
|
|
1488
|
+
volumes = {}
|
|
1489
|
+
working_dir = "/"
|
|
1490
|
+
if mnt_point != "":
|
|
1491
|
+
volumes = {
|
|
1492
|
+
temporary_dir: {
|
|
1493
|
+
"bind": mnt_point,
|
|
1494
|
+
"mode": "rw",
|
|
1495
|
+
},
|
|
1496
|
+
}
|
|
1497
|
+
logging.info(f"setting volume as follow: {volumes}. working_dir={mnt_point}")
|
|
1498
|
+
working_dir = mnt_point
|
|
1499
|
+
redis_container = docker_client.containers.run(
|
|
1500
|
+
image=run_image,
|
|
1501
|
+
volumes=volumes,
|
|
1502
|
+
auto_remove=auto_remove,
|
|
1503
|
+
privileged=True,
|
|
1504
|
+
working_dir=mnt_point,
|
|
1505
|
+
command=command_str,
|
|
1506
|
+
network_mode="host",
|
|
1507
|
+
detach=True,
|
|
1508
|
+
cpuset_cpus=db_cpuset_cpus,
|
|
1509
|
+
pid_mode="host",
|
|
1510
|
+
publish_all_ports=True,
|
|
1511
|
+
)
|
|
1512
|
+
time.sleep(5)
|
|
1513
|
+
redis_containers.append(redis_container)
|
|
1514
|
+
return redis_container
|
|
1515
|
+
|
|
1516
|
+
|
|
1359
1517
|
def filter_test_files(
|
|
1360
1518
|
defaults_filename,
|
|
1361
1519
|
priority_lower_limit,
|
|
1362
1520
|
priority_upper_limit,
|
|
1363
|
-
|
|
1521
|
+
tests_regexp,
|
|
1364
1522
|
testsuite_spec_files,
|
|
1523
|
+
command_groups_regexp=None,
|
|
1365
1524
|
):
|
|
1366
1525
|
filtered_test_files = []
|
|
1367
1526
|
for test_file in testsuite_spec_files:
|
|
1368
1527
|
if defaults_filename in test_file:
|
|
1369
1528
|
continue
|
|
1370
1529
|
|
|
1371
|
-
if
|
|
1530
|
+
if tests_regexp != ".*":
|
|
1372
1531
|
logging.info(
|
|
1373
|
-
"Filtering all tests via a regular expression: {}".format(
|
|
1532
|
+
"Filtering all tests via a regular expression: {}".format(tests_regexp)
|
|
1374
1533
|
)
|
|
1375
|
-
tags_regex_string = re.compile(
|
|
1534
|
+
tags_regex_string = re.compile(tests_regexp)
|
|
1376
1535
|
|
|
1377
1536
|
match_obj = re.search(tags_regex_string, test_file)
|
|
1378
1537
|
if match_obj is None:
|
|
1379
1538
|
logging.info(
|
|
1380
1539
|
"Skipping {} given it does not match regex {}".format(
|
|
1381
|
-
test_file,
|
|
1540
|
+
test_file, tests_regexp
|
|
1382
1541
|
)
|
|
1383
1542
|
)
|
|
1384
1543
|
continue
|
|
@@ -1388,7 +1547,7 @@ def filter_test_files(
|
|
|
1388
1547
|
result,
|
|
1389
1548
|
benchmark_config,
|
|
1390
1549
|
test_name,
|
|
1391
|
-
) = get_final_benchmark_config(None, stream, "")
|
|
1550
|
+
) = get_final_benchmark_config(None, None, stream, "")
|
|
1392
1551
|
if result is False:
|
|
1393
1552
|
logging.error(
|
|
1394
1553
|
"Skipping {} given there were errors while calling get_final_benchmark_config()".format(
|
|
@@ -1397,6 +1556,34 @@ def filter_test_files(
|
|
|
1397
1556
|
)
|
|
1398
1557
|
continue
|
|
1399
1558
|
|
|
1559
|
+
if command_groups_regexp is not None:
|
|
1560
|
+
logging.info(
|
|
1561
|
+
"Filtering all test command groups via a regular expression: {}".format(
|
|
1562
|
+
command_groups_regexp
|
|
1563
|
+
)
|
|
1564
|
+
)
|
|
1565
|
+
if "tested-groups" in benchmark_config:
|
|
1566
|
+
command_groups = benchmark_config["tested-groups"]
|
|
1567
|
+
logging.info(
|
|
1568
|
+
f"The file {test_file} (test name = {test_name}) contains the following groups: {command_groups}"
|
|
1569
|
+
)
|
|
1570
|
+
groups_regex_string = re.compile(command_groups_regexp)
|
|
1571
|
+
found = False
|
|
1572
|
+
for command_group in command_groups:
|
|
1573
|
+
match_obj = re.search(groups_regex_string, command_group)
|
|
1574
|
+
if match_obj is not None:
|
|
1575
|
+
found = True
|
|
1576
|
+
logging.info(f"found the command group {command_group}")
|
|
1577
|
+
if found is False:
|
|
1578
|
+
logging.info(
|
|
1579
|
+
f"Skipping {test_file} given the following groups: {command_groups} does not match command group regex {command_groups_regexp}"
|
|
1580
|
+
)
|
|
1581
|
+
continue
|
|
1582
|
+
else:
|
|
1583
|
+
logging.warning(
|
|
1584
|
+
f"The file {test_file} (test name = {test_name}) does not contain the property 'tested-groups'. Cannot filter based uppon groups..."
|
|
1585
|
+
)
|
|
1586
|
+
|
|
1400
1587
|
if "priority" in benchmark_config:
|
|
1401
1588
|
priority = benchmark_config["priority"]
|
|
1402
1589
|
|
|
@@ -1458,11 +1645,16 @@ def data_prepopulation_step(
|
|
|
1458
1645
|
full_benchmark_path = "/usr/local/bin/{}".format(preload_tool)
|
|
1459
1646
|
client_mnt_point = "/mnt/client/"
|
|
1460
1647
|
if "memtier_benchmark" in preload_tool:
|
|
1461
|
-
(
|
|
1648
|
+
(
|
|
1649
|
+
_,
|
|
1650
|
+
preload_command_str,
|
|
1651
|
+
_,
|
|
1652
|
+
) = prepare_memtier_benchmark_parameters(
|
|
1462
1653
|
benchmark_config["dbconfig"]["preload_tool"],
|
|
1463
1654
|
full_benchmark_path,
|
|
1464
1655
|
port,
|
|
1465
1656
|
"localhost",
|
|
1657
|
+
None,
|
|
1466
1658
|
local_benchmark_output_filename,
|
|
1467
1659
|
False,
|
|
1468
1660
|
)
|