redis-benchmarks-specification 0.1.101__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.

Files changed (322) hide show
  1. redis_benchmarks_specification/__builder__/builder.py +186 -76
  2. redis_benchmarks_specification/__cli__/args.py +38 -5
  3. redis_benchmarks_specification/__cli__/cli.py +142 -8
  4. redis_benchmarks_specification/__common__/builder_schema.py +6 -1
  5. redis_benchmarks_specification/__common__/env.py +1 -1
  6. redis_benchmarks_specification/__common__/github.py +44 -39
  7. redis_benchmarks_specification/__common__/runner.py +15 -3
  8. redis_benchmarks_specification/__common__/spec.py +52 -0
  9. redis_benchmarks_specification/__common__/timeseries.py +1551 -0
  10. redis_benchmarks_specification/__compare__/args.py +28 -0
  11. redis_benchmarks_specification/__compare__/compare.py +479 -84
  12. redis_benchmarks_specification/__runner__/runner.py +21 -6
  13. redis_benchmarks_specification/__self_contained_coordinator__/args.py +0 -5
  14. redis_benchmarks_specification/__self_contained_coordinator__/artifacts.py +18 -15
  15. redis_benchmarks_specification/__self_contained_coordinator__/build_info.py +5 -3
  16. redis_benchmarks_specification/__self_contained_coordinator__/docker.py +7 -3
  17. redis_benchmarks_specification/__self_contained_coordinator__/prepopulation.py +4 -1
  18. redis_benchmarks_specification/__self_contained_coordinator__/runners.py +7 -3
  19. redis_benchmarks_specification/__self_contained_coordinator__/self_contained_coordinator.py +318 -126
  20. redis_benchmarks_specification/__spec__/cli.py +7 -7
  21. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-100Kkeys-hash-hgetall-50-fields-100B-values.yml +51 -0
  22. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-100Kkeys-load-hash-50-fields-with-1000B-values.yml +46 -0
  23. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-100Kkeys-load-hash-50-fields-with-100B-values.yml +46 -0
  24. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-100Kkeys-load-hash-50-fields-with-10B-values.yml +46 -0
  25. 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
  26. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-10Mkeys-load-hash-5-fields-with-100B-values.yml +36 -0
  27. 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
  28. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-10Mkeys-load-hash-5-fields-with-10B-values.yml +36 -0
  29. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-100B-expire-use-case.yml +45 -0
  30. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-10B-expire-use-case.yml +45 -0
  31. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-1KiB-expire-use-case.yml +45 -0
  32. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-4KiB-expire-use-case.yml +45 -0
  33. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-bitmap-getbit-pipeline-10.yml +41 -0
  34. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-generic-exists-pipeline-10.yml +40 -0
  35. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-generic-expire-pipeline-10.yml +38 -0
  36. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-generic-expireat-pipeline-10.yml +39 -0
  37. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-generic-pexpire-pipeline-10.yml +38 -0
  38. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-generic-scan-pipeline-10.yml +37 -0
  39. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-generic-touch-pipeline-10.yml +38 -0
  40. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-generic-ttl-pipeline-10.yml +37 -0
  41. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-hash-hexists.yml +41 -0
  42. 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
  43. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-hash-hgetall-50-fields-10B-values.yml +51 -0
  44. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-hash-hincrby.yml +40 -0
  45. 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
  46. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-hash-transactions-multi-exec-pipeline-20.yml +45 -0
  47. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-list-lpop-rpop-with-100B-values.yml +41 -0
  48. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-list-lpop-rpop-with-10B-values.yml +41 -0
  49. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-list-lpop-rpop-with-1KiB-values.yml +41 -0
  50. 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
  51. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-hash-5-fields-with-1000B-values.yml +36 -0
  52. 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
  53. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-list-with-100B-values.yml +34 -0
  54. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-list-with-10B-values.yml +34 -0
  55. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-list-with-1KiB-values.yml +34 -0
  56. 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
  57. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-set-intset-with-100-elements.yml +42 -0
  58. 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
  59. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-stream-1-fields-with-100B-values.yml +34 -0
  60. 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
  61. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-stream-5-fields-with-100B-values.yml +36 -0
  62. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-string-with-100B-values-pipeline-10.yml +34 -0
  63. 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
  64. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-string-with-10B-values-pipeline-10.yml +34 -0
  65. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-string-with-10B-values.yml +34 -0
  66. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-string-with-1KiB-values.yml +34 -0
  67. 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
  68. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-zset-with-10-elements-double-score.yml +36 -0
  69. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-zset-with-10-elements-int-score.yml +35 -0
  70. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-append-1-100B-pipeline-10.yml +40 -0
  71. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-append-1-100B.yml +39 -0
  72. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-decr.yml +39 -0
  73. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-get-100B-pipeline-10.yml +38 -0
  74. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-get-100B.yml +37 -0
  75. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-get-10B-pipeline-10.yml +38 -0
  76. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-get-10B.yml +37 -0
  77. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-get-1KiB-pipeline-10.yml +38 -0
  78. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-get-1KiB.yml +37 -0
  79. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-get-20KiB.yml +37 -0
  80. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-incrby-pipeline-10.yml +32 -0
  81. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-incrby.yml +31 -0
  82. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-incrbyfloat-pipeline-10.yml +32 -0
  83. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-incrbyfloat.yml +31 -0
  84. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-mget-1KiB.yml +38 -0
  85. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-setex-100B-pipeline-10.yml +38 -0
  86. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-setrange-100B-pipeline-10.yml +39 -0
  87. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-setrange-100B.yml +38 -0
  88. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-geo-2-elements-geopos.yml +35 -0
  89. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-geo-2-elements-geosearch-fromlonlat-withcoord.yml +38 -0
  90. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-geo-60M-elements-geodist-pipeline-10.yml +36 -0
  91. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-geo-60M-elements-geodist.yml +35 -0
  92. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-geo-60M-elements-geohash-pipeline-10.yml +36 -0
  93. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-geo-60M-elements-geohash.yml +35 -0
  94. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-geo-60M-elements-geopos-pipeline-10.yml +36 -0
  95. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-geo-60M-elements-geopos.yml +35 -0
  96. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-bybox.yml +36 -0
  97. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-pipeline-10.yml +36 -0
  98. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat.yml +36 -0
  99. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-hash-hscan-50-fields-10B-values.yml +50 -0
  100. 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
  101. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-list-10-elements-lrange-all-elements.yml +37 -0
  102. 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
  103. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-list-100-elements-lrange-all-elements.yml +52 -0
  104. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-list-10K-elements-lindex-integer.yml +40 -0
  105. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-list-10K-elements-lindex-string.yml +40 -0
  106. 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
  107. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-list-1K-elements-lrange-all-elements.yml +202 -0
  108. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-pfadd-4KB-values-pipeline-10.yml +33 -0
  109. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-set-10-elements-smembers-pipeline-10.yml +37 -0
  110. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-set-10-elements-smembers.yml +36 -0
  111. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-set-10-elements-smismember.yml +36 -0
  112. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-set-100-elements-sismember-is-a-member.yml +52 -0
  113. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-set-100-elements-sismember-not-a-member.yml +52 -0
  114. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-set-100-elements-smembers.yml +50 -0
  115. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-set-100-elements-smismember.yml +53 -0
  116. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-set-100-elements-sscan.yml +50 -0
  117. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-set-10M-elements-sismember-50pct-chance.yml +39 -0
  118. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-set-1K-elements-smembers.yml +200 -0
  119. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-set-1M-elements-sismember-50pct-chance.yml +39 -0
  120. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-set-200K-elements-sadd-constant.yml +38 -0
  121. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-set-2M-elements-sadd-increasing.yml +33 -0
  122. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-zincrby-1M-elements-pipeline-1.yml +40 -0
  123. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-zrank-1M-elements-pipeline-1.yml +40 -0
  124. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-zrem-5M-elements-pipeline-1.yml +47 -0
  125. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-zrevrangebyscore-256K-elements-pipeline-1.yml +40 -0
  126. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-zrevrank-1M-elements-pipeline-1.yml +40 -0
  127. 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
  128. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-zset-10-elements-zrange-all-elements.yml +38 -0
  129. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-zset-100-elements-zrange-all-elements.yml +64 -0
  130. 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
  131. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements.yml +64 -0
  132. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-zset-100-elements-zscan.yml +63 -0
  133. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-zset-1M-elements-zcard-pipeline-10.yml +39 -0
  134. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-zset-1M-elements-zrevrange-5-elements.yml +40 -0
  135. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-1key-zset-1M-elements-zscore-pipeline-10.yml +39 -0
  136. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-2keys-lua-eval-hset-expire.yml +37 -0
  137. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-2keys-lua-evalsha-hset-expire.yml +42 -0
  138. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-2keys-set-10-100-elements-sdiff.yml +55 -0
  139. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-2keys-set-10-100-elements-sinter.yml +56 -0
  140. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-2keys-set-10-100-elements-sunion.yml +56 -0
  141. 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
  142. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-2keys-stream-5-entries-xread-all-entries.yml +45 -0
  143. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-3Mkeys-load-string-with-512B-values.yml +41 -0
  144. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-10000_qps-memtier_benchmark-connection-hello.yml +32 -0
  145. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-1000_qps-memtier_benchmark-10Kkeys-load-hash-50-fields-with-10000B-values.yml +46 -0
  146. 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
  147. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-1000_qps-memtier_benchmark-1key-100M-bits-bitmap-bitcount.yml +43 -0
  148. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-1000_qps-memtier_benchmark-1key-list-10K-elements-linsert-lrem-integer.yml +43 -0
  149. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-1000_qps-memtier_benchmark-1key-list-10K-elements-linsert-lrem-string.yml +44 -0
  150. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-1000_qps-memtier_benchmark-1key-list-10K-elements-lpos-integer.yml +40 -0
  151. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-1000_qps-memtier_benchmark-1key-list-10K-elements-lpos-string.yml +40 -0
  152. 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
  153. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-1000_qps-memtier_benchmark-1key-zset-1K-elements-zrange-all-elements.yml +321 -0
  154. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-1000_qps-memtier_benchmark-2keys-zset-300-elements-skiplist-encoded-zunion.yml +433 -0
  155. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-1000_qps-memtier_benchmark-2keys-zset-300-elements-skiplist-encoded-zunionstore.yml +433 -0
  156. redis_benchmarks_specification/latency-test-suites/latency-rate-limited-100_qps-memtier_benchmark-1key-1Billion-bits-bitmap-bitcount.yml +44 -0
  157. redis_benchmarks_specification/setups/topologies/topologies.yml +65 -0
  158. redis_benchmarks_specification/test-suites/defaults.yml +5 -1
  159. redis_benchmarks_specification/test-suites/memtier_benchmark-100Kkeys-hash-hgetall-50-fields-100B-values.yml +34 -0
  160. redis_benchmarks_specification/test-suites/memtier_benchmark-100Kkeys-load-hash-20-fields-with-1B-values-pipeline-30.yml +30 -0
  161. redis_benchmarks_specification/test-suites/memtier_benchmark-100Kkeys-load-hash-50-fields-with-1000B-values.yml +30 -0
  162. redis_benchmarks_specification/test-suites/memtier_benchmark-100Kkeys-load-hash-50-fields-with-100B-values.yml +30 -0
  163. redis_benchmarks_specification/test-suites/memtier_benchmark-100Kkeys-load-hash-50-fields-with-10B-values.yml +30 -0
  164. redis_benchmarks_specification/test-suites/memtier_benchmark-10Kkeys-load-hash-50-fields-with-10000B-values.yml +30 -0
  165. redis_benchmarks_specification/test-suites/memtier_benchmark-10Kkeys-load-list-with-10B-values-pipeline-50.yml +30 -0
  166. redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-100B-values-pipeline-10.yml +1 -0
  167. redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-100B-values.yml +1 -0
  168. redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-10B-values-pipeline-10.yml +1 -0
  169. redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-10B-values.yml +1 -0
  170. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-100B-expire-use-case.yml +1 -0
  171. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-10B-expire-use-case.yml +1 -0
  172. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-1KiB-expire-use-case.yml +1 -0
  173. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-4KiB-expire-use-case.yml +1 -0
  174. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-bitmap-getbit-pipeline-10.yml +1 -0
  175. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-exists-pipeline-10.yml +1 -0
  176. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-expire-pipeline-10.yml +1 -0
  177. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-expireat-pipeline-10.yml +1 -0
  178. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-pexpire-pipeline-10.yml +1 -0
  179. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-pipeline-10.yml +1 -0
  180. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-touch-pipeline-10.yml +1 -0
  181. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-ttl-pipeline-10.yml +1 -0
  182. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hexists.yml +1 -0
  183. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hget-hgetall-hkeys-hvals-with-100B-values.yml +1 -0
  184. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hgetall-50-fields-10B-values.yml +34 -0
  185. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hincrby.yml +1 -0
  186. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hmget-5-fields-with-100B-values-pipeline-10.yml +1 -0
  187. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-transactions-multi-exec-pipeline-20.yml +1 -0
  188. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-lpop-rpop-with-100B-values.yml +1 -0
  189. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-lpop-rpop-with-10B-values.yml +1 -0
  190. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-lpop-rpop-with-1KiB-values.yml +1 -0
  191. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-hash-5-fields-with-1000B-values-pipeline-10.yml +1 -0
  192. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-hash-5-fields-with-1000B-values.yml +1 -0
  193. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-hash-hmset-5-fields-with-1000B-values.yml +1 -0
  194. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-list-with-100B-values.yml +1 -0
  195. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-list-with-10B-values-pipeline-10.yml +30 -0
  196. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-list-with-10B-values.yml +1 -0
  197. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-list-with-1KiB-values.yml +1 -0
  198. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-set-intset-with-100-elements-pipeline-10.yml +30 -0
  199. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-set-intset-with-100-elements.yml +30 -0
  200. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-stream-1-fields-with-100B-values-pipeline-10.yml +1 -0
  201. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-stream-1-fields-with-100B-values.yml +1 -0
  202. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-stream-5-fields-with-100B-values-pipeline-10.yml +1 -0
  203. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-stream-5-fields-with-100B-values.yml +1 -0
  204. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-100B-values-pipeline-10.yml +1 -0
  205. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-100B-values.yml +2 -5
  206. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-10B-values-pipeline-10.yml +1 -0
  207. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-10B-values.yml +1 -0
  208. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-1KiB-values.yml +1 -0
  209. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-20KiB-values.yml +2 -5
  210. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-zset-listpack-with-100-elements-double-score.yml +30 -0
  211. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-zset-with-10-elements-double-score.yml +1 -0
  212. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-zset-with-10-elements-int-score.yml +1 -0
  213. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-append-1-100B-pipeline-10.yml +34 -0
  214. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-append-1-100B.yml +34 -0
  215. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-decr.yml +1 -0
  216. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-100B-pipeline-10.yml +1 -0
  217. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-100B.yml +1 -0
  218. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-10.yml +3 -2
  219. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B.yml +1 -0
  220. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-1KiB-pipeline-10.yml +1 -0
  221. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-1KiB.yml +1 -0
  222. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incrby-pipeline-10.yml +28 -0
  223. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incrby.yml +28 -0
  224. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incrbyfloat-pipeline-10.yml +28 -0
  225. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incrbyfloat.yml +28 -0
  226. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mget-1KiB.yml +1 -0
  227. 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
  228. redis_benchmarks_specification/test-suites/{memtier_benchmark-1Mkeys-string-get-200KiB.yml → memtier_benchmark-1Mkeys-string-setex-100B-pipeline-10.yml} +7 -7
  229. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-setrange-100B-pipeline-10.yml +34 -0
  230. redis_benchmarks_specification/test-suites/{memtier_benchmark-1Mkeys-string-get-2MB.yml → memtier_benchmark-1Mkeys-string-setrange-100B.yml} +7 -6
  231. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-100M-bits-bitmap-bitcount.yml +37 -0
  232. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-1Billion-bits-bitmap-bitcount.yml +37 -0
  233. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-2-elements-geopos.yml +32 -0
  234. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-2-elements-geosearch-fromlonlat-withcoord.yml +33 -0
  235. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geodist-pipeline-10.yml +1 -0
  236. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geodist.yml +1 -0
  237. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geohash-pipeline-10.yml +1 -0
  238. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geohash.yml +1 -0
  239. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geopos-pipeline-10.yml +1 -0
  240. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geopos.yml +1 -0
  241. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-bybox.yml +1 -0
  242. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-pipeline-10.yml +1 -0
  243. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat.yml +1 -0
  244. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-1K-fields-hgetall-pipeline-10.yml +32 -0
  245. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-1K-fields-hgetall.yml +32 -0
  246. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-hscan-50-fields-10B-values.yml +34 -0
  247. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10-elements-lrange-all-elements-pipeline-10.yml +32 -0
  248. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10-elements-lrange-all-elements.yml +1 -0
  249. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-int-7bit-uint-lrange-all-elements-pipeline-10.yml +32 -0
  250. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-int-lrange-all-elements-pipeline-10.yml +32 -0
  251. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-lrange-all-elements-pipeline-10.yml +32 -0
  252. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-lrange-all-elements.yml +1 -0
  253. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lindex-integer.yml +34 -0
  254. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lindex-string-pipeline-10.yml +34 -0
  255. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lindex-string.yml +34 -0
  256. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-linsert-lrem-integer.yml +35 -0
  257. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-linsert-lrem-string.yml +35 -0
  258. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lpos-integer.yml +34 -0
  259. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lpos-string.yml +34 -0
  260. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-1K-elements-lrange-all-elements-pipeline-10.yml +32 -0
  261. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-1K-elements-lrange-all-elements.yml +1 -0
  262. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-2K-elements-quicklist-lrange-all-elements-longs.yml +32 -0
  263. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-load-hash-1K-fields-with-5B-values.yml +30 -0
  264. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-pfadd-4KB-values-pipeline-10.yml +1 -0
  265. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10-elements-smembers-pipeline-10.yml +1 -0
  266. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10-elements-smembers.yml +1 -0
  267. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10-elements-smismember.yml +1 -0
  268. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-sismember-is-a-member.yml +32 -0
  269. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-sismember-not-a-member.yml +32 -0
  270. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-smembers.yml +1 -0
  271. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-smismember.yml +1 -0
  272. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-sscan.yml +32 -0
  273. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10M-elements-sismember-50pct-chance.yml +34 -0
  274. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-1K-elements-smembers.yml +1 -0
  275. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-1M-elements-sismember-50pct-chance.yml +34 -0
  276. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-200K-elements-sadd-constant.yml +1 -0
  277. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-2M-elements-sadd-increasing.yml +1 -0
  278. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zincrby-1M-elements-pipeline-1.yml +1 -0
  279. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrank-1M-elements-pipeline-1.yml +1 -0
  280. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrem-5M-elements-pipeline-1.yml +1 -0
  281. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrangebyscore-256K-elements-pipeline-1.yml +1 -0
  282. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrangebyscore-256K-elements-pipeline-10.yml +34 -0
  283. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrank-1M-elements-pipeline-1.yml +1 -0
  284. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-10-elements-zrange-all-elements-long-scores.yml +1 -0
  285. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-10-elements-zrange-all-elements.yml +1 -0
  286. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zrange-all-elements.yml +1 -0
  287. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements-long-scores.yml +1 -0
  288. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements.yml +1 -0
  289. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zscan.yml +32 -0
  290. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1K-elements-zrange-all-elements.yml +1 -0
  291. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zcard-pipeline-10.yml +1 -0
  292. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zrevrange-5-elements.yml +1 -0
  293. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zrevrange-withscores-5-elements-pipeline-10.yml +34 -0
  294. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zscore-pipeline-10.yml +1 -0
  295. redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-lua-eval-hset-expire.yml +1 -0
  296. redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-lua-evalsha-hset-expire.yml +1 -0
  297. redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-set-10-100-elements-sdiff.yml +1 -0
  298. redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-set-10-100-elements-sinter.yml +1 -0
  299. redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-set-10-100-elements-sunion.yml +1 -0
  300. redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-stream-5-entries-xread-all-entries-pipeline-10.yml +1 -0
  301. redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-stream-5-entries-xread-all-entries.yml +1 -0
  302. redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-zset-300-elements-skiplist-encoded-zunion.yml +33 -0
  303. redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-zset-300-elements-skiplist-encoded-zunionstore.yml +33 -0
  304. redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-load-string-with-512B-values copy.yml +36 -0
  305. redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-load-string-with-512B-values.yml +36 -0
  306. redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-get-with-1KiB-values-pipeline-10-2000_conns.yml +34 -0
  307. redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-get-with-1KiB-values-pipeline-10-400_conns.yml +34 -0
  308. redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-get-with-1KiB-values-pipeline-10-40_conns.yml +34 -0
  309. redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-pipeline-10-2000_conns.yml +34 -0
  310. redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-pipeline-10-400_conns.yml +34 -0
  311. redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-pipeline-10-5200_conns.yml +34 -0
  312. redis_benchmarks_specification/test-suites/memtier_benchmark-connection-hello-pipeline-10.yml +30 -0
  313. redis_benchmarks_specification/test-suites/memtier_benchmark-connection-hello.yml +30 -0
  314. redis_benchmarks_specification/test-suites/template.txt +1 -0
  315. {redis_benchmarks_specification-0.1.101.dist-info → redis_benchmarks_specification-0.1.150.dist-info}/METADATA +13 -4
  316. redis_benchmarks_specification-0.1.150.dist-info/RECORD +350 -0
  317. {redis_benchmarks_specification-0.1.101.dist-info → redis_benchmarks_specification-0.1.150.dist-info}/WHEEL +1 -1
  318. redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-1000B-values-pipeline-10.yml +0 -29
  319. redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-1000B-values.yml +0 -29
  320. redis_benchmarks_specification-0.1.101.dist-info/RECORD +0 -157
  321. {redis_benchmarks_specification-0.1.101.dist-info → redis_benchmarks_specification-0.1.150.dist-info}/LICENSE +0 -0
  322. {redis_benchmarks_specification-0.1.101.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
- from redisbench_admin.run.redistimeseries import (
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 build variation stream with id {}.".format(
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
- docker_air_gap=False,
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"git_hash" in testDetails:
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
- test_regexp = ".*"
534
- if b"test_regexp" in testDetails:
535
- test_regexp = testDetails[b"test_regexp"]
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 {test_regexp}"
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 docker_air_gap:
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
- test_regexp,
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
- tf_github_org = "redis"
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 = "redis-server"
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
- "{}redis-server".format(mnt_point),
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
- logging.info(
747
- "Running redis-server on docker image {} (cpuset={}) with the following args: {}".format(
748
- run_image, db_cpuset_cpus, command_str
749
- )
750
- )
751
- redis_container = docker_client.containers.run(
752
- image=run_image,
753
- volumes={
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
- first_redis_pid = r.info()["process_id"]
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
- "oss-standalone",
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 stop DB container with id {} and image {} it was already stopped".format(
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
- for redis_container in redis_containers:
1150
- try:
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 Client container with id {} and image {} it was already stopped".format(
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
- logging.info(
1173
- "Removing temporary dirs {} and {}".format(
1174
- temporary_dir, temporary_dir_client
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
- shutil.rmtree(temporary_dir, ignore_errors=True)
1178
- shutil.rmtree(temporary_dir_client, ignore_errors=True)
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
@@ -1261,7 +1366,7 @@ def process_self_contained_coordinator_stream(
1261
1366
  to_date = datetime.datetime.utcnow()
1262
1367
  from_date = to_date - datetime.timedelta(days=180)
1263
1368
  baseline_branch = default_baseline_branch
1264
- comparison_tag = git_tag
1369
+ comparison_tag = git_version
1265
1370
  comparison_branch = git_branch
1266
1371
  to_ts_ms = None
1267
1372
  from_ts_ms = None
@@ -1269,8 +1374,8 @@ def process_self_contained_coordinator_stream(
1269
1374
  (
1270
1375
  detected_regressions,
1271
1376
  table_output,
1272
- total_improvements,
1273
- total_regressions,
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
- baseline_tag,
1286
- comparison_tag,
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
- prepare_regression_comment(
1311
- auto_approve,
1312
- baseline_branch,
1313
- baseline_tag,
1314
- comparison_branch,
1315
- comparison_tag,
1316
- contains_regression_comment,
1317
- github_pr,
1318
- grafana_link_base,
1319
- is_actionable_pr,
1320
- old_regression_comment_body,
1321
- pr_link,
1322
- regression_comment,
1323
- datasink_conn,
1324
- running_platform,
1325
- table_output,
1326
- tf_github_org,
1327
- tf_github_repo,
1328
- tf_triggering_env,
1329
- total_comparison_points,
1330
- total_improvements,
1331
- total_regressions,
1332
- total_stable,
1333
- total_unstable,
1334
- verbose,
1335
- regressions_percent_lower_limit,
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 commit information within received message.")
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
- test_regexp,
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 test_regexp != ".*":
1530
+ if tests_regexp != ".*":
1372
1531
  logging.info(
1373
- "Filtering all tests via a regular expression: {}".format(test_regexp)
1532
+ "Filtering all tests via a regular expression: {}".format(tests_regexp)
1374
1533
  )
1375
- tags_regex_string = re.compile(test_regexp)
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, test_regexp
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
- (_, preload_command_str,) = prepare_memtier_benchmark_parameters(
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
  )