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.

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 +317 -125
  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.102.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.102.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.102.dist-info/RECORD +0 -157
  321. {redis_benchmarks_specification-0.1.102.dist-info → redis_benchmarks_specification-0.1.150.dist-info}/LICENSE +0 -0
  322. {redis_benchmarks_specification-0.1.102.dist-info → redis_benchmarks_specification-0.1.150.dist-info}/entry_points.txt +0 -0
@@ -234,6 +234,7 @@ def builder_process_stream(
234
234
  if b"git_hash" in testDetails:
235
235
  git_hash = testDetails[b"git_hash"]
236
236
  logging.info("Received commit hash specifier {}.".format(git_hash))
237
+ logging.info(f"Received the following build stream: {testDetails}.")
237
238
  binary_zip_key = testDetails[b"zip_archive_key"]
238
239
  logging.info(
239
240
  "Retriving zipped source from key {}.".format(
@@ -245,10 +246,10 @@ def builder_process_stream(
245
246
  use_git_timestamp = False
246
247
  commit_datetime = "n/a"
247
248
  if b"commit_datetime" in testDetails:
248
- commit_datetime = int(testDetails[b"commit_datetime"].decode())
249
+ commit_datetime = testDetails[b"commit_datetime"].decode()
249
250
  commit_summary = "n/a"
250
251
  if b"commit_summary" in testDetails:
251
- commit_summary = int(testDetails[b"commit_summary"].decode())
252
+ commit_summary = testDetails[b"commit_summary"].decode()
252
253
  git_branch, git_version = get_branch_version_from_test_details(testDetails)
253
254
  if b"use_git_timestamp" in testDetails:
254
255
  use_git_timestamp = bool(testDetails[b"use_git_timestamp"])
@@ -271,6 +272,16 @@ def builder_process_stream(
271
272
  if b"tests_groups_regexp" in testDetails:
272
273
  tests_groups_regexp = testDetails[b"tests_groups_regexp"].decode()
273
274
 
275
+ github_org = "redis"
276
+ if b"github_org" in testDetails:
277
+ github_org = testDetails[b"github_org"].decode()
278
+ logging.info(f"detected github_org info on build stream {github_org}")
279
+
280
+ github_repo = "redis"
281
+ if b"github_repo" in testDetails:
282
+ github_repo = testDetails[b"github_repo"].decode()
283
+ logging.info(f"detected github_repo info on build stream {github_repo}")
284
+
274
285
  # github updates
275
286
  is_actionable_pr = False
276
287
  contains_regression_comment = False
@@ -312,28 +323,7 @@ def builder_process_stream(
312
323
  if "run_image" in build_config:
313
324
  run_image = build_config["run_image"]
314
325
  if docker_air_gap:
315
- airgap_key = "docker:air-gap:{}".format(run_image)
316
- logging.info(
317
- "DOCKER AIR GAP: storing run image named: {} in redis key {}".format(
318
- run_image, airgap_key
319
- )
320
- )
321
- run_image_binary_stream = io.BytesIO()
322
- run_image_docker = docker_client.images.get(run_image)
323
- for chunk in run_image_docker.save():
324
- run_image_binary_stream.write(chunk)
325
- # 7 days expire
326
- binary_exp_secs = 24 * 60 * 60 * 7
327
- res_airgap = conn.set(
328
- airgap_key,
329
- run_image_binary_stream.getbuffer(),
330
- ex=binary_exp_secs,
331
- )
332
- logging.info(
333
- "DOCKER AIR GAP: result of set bin data to {}: {}".format(
334
- airgap_key, res_airgap
335
- )
336
- )
326
+ store_airgap_image_redis(conn, docker_client, run_image)
337
327
 
338
328
  compiler = build_config["compiler"]
339
329
  cpp_compiler = build_config["cpp_compiler"]
@@ -342,6 +332,14 @@ def builder_process_stream(
342
332
  build_artifacts = ["redis-server"]
343
333
  if "build_artifacts" in build_config:
344
334
  build_artifacts = build_config["build_artifacts"]
335
+ if b"build_artifacts" in testDetails:
336
+ new_build_artifacts = (
337
+ testDetails[b"build_artifacts"].decode().split(",")
338
+ )
339
+ logging.info(
340
+ f"overriding default build artifacts {build_artifacts} by {new_build_artifacts}"
341
+ )
342
+ build_artifacts = new_build_artifacts
345
343
  build_vars_str = ""
346
344
  if "env" in build_config:
347
345
  if build_config["env"] is not None:
@@ -364,22 +362,31 @@ def builder_process_stream(
364
362
  "linenoise",
365
363
  "lua",
366
364
  ]
365
+ if "fast_float" in deps_dir:
366
+ deps_list.append("fast_float")
367
367
  if "hdr_histogram" in deps_dir:
368
368
  deps_list.append("hdr_histogram")
369
369
  if "fpconv" in deps_dir:
370
370
  deps_list.append("fpconv")
371
371
  redis_temporary_dir = temporary_dir + "/" + redis_dir + "/"
372
372
  logging.info("Using redis temporary dir {}".format(redis_temporary_dir))
373
- build_command = "bash -c 'make Makefile.dep && cd ./deps && CXX={} CC={} make {} {} -j && cd .. && CXX={} CC={} make {} {} -j'".format(
374
- cpp_compiler,
375
- compiler,
376
- " ".join(deps_list),
377
- build_vars_str,
378
- cpp_compiler,
379
- compiler,
380
- "redis-server",
381
- build_vars_str,
382
- )
373
+ # build_command = "bash -c 'make Makefile.dep && cd ./deps && CXX={} CC={} make {} {} -j && cd .. && CXX={} CC={} make {} {} -j'".format(
374
+ # cpp_compiler,
375
+ # compiler,
376
+ # " ".join(deps_list),
377
+ # build_vars_str,
378
+ # cpp_compiler,
379
+ # compiler,
380
+ # "redis-server",
381
+ # build_vars_str,
382
+ # )
383
+ build_command = "sh -c 'make -j'"
384
+ if b"build_command" in testDetails:
385
+ build_command = testDetails[b"build_command"].decode()
386
+ server_name = "redis"
387
+ if b"server_name" in testDetails:
388
+ server_name = testDetails[b"server_name"].decode()
389
+
383
390
  build_start_datetime = datetime.datetime.utcnow()
384
391
  logging.info(
385
392
  "Using the following build command {}.".format(build_command)
@@ -429,48 +436,35 @@ def builder_process_stream(
429
436
  build_duration = build_end_datetime - build_start_datetime
430
437
  build_duration_secs = build_duration.total_seconds()
431
438
 
432
- build_stream_fields = {
433
- "id": id,
434
- "git_hash": git_hash,
435
- "use_git_timestamp": str(use_git_timestamp),
436
- "build_image": build_image,
437
- "run_image": run_image,
438
- "compiler": compiler,
439
- "cpp_compiler": cpp_compiler,
440
- "os": build_os,
441
- "arch": build_arch,
442
- "build_vars": build_vars_str,
443
- "build_command": build_command,
444
- "metadata": json.dumps(build_config_metadata),
445
- "build_artifacts": ",".join(build_artifacts),
446
- "tests_regexp": tests_regexp,
447
- "tests_priority_upper_limit": tests_priority_upper_limit,
448
- "tests_priority_lower_limit": tests_priority_lower_limit,
449
- "tests_groups_regexp": tests_groups_regexp,
450
- }
451
- if pull_request is not None:
452
- build_stream_fields["pull_request"] = pull_request
453
- if git_branch is not None:
454
- build_stream_fields["git_branch"] = git_branch
455
- if git_version is not None:
456
- build_stream_fields["git_version"] = git_version
457
- if git_timestamp_ms is not None:
458
- build_stream_fields["git_timestamp_ms"] = git_timestamp_ms
459
- for artifact in build_artifacts:
460
- bin_key = "zipped:artifacts:{}:{}.zip".format(id, artifact)
461
- bin_artifact = open(
462
- "{}src/{}".format(redis_temporary_dir, artifact), "rb"
463
- ).read()
464
- bin_artifact_len = len(bytes(bin_artifact))
465
- assert bin_artifact_len > 0
466
- conn.set(bin_key, bytes(bin_artifact), ex=REDIS_BINS_EXPIRE_SECS)
467
- build_stream_fields[artifact] = bin_key
468
- build_stream_fields[
469
- "{}_len_bytes".format(artifact)
470
- ] = bin_artifact_len
471
- result = True
472
- if b"platform" in testDetails:
473
- build_stream_fields["platform"] = testDetails[b"platform"]
439
+ build_stream_fields, result = generate_benchmark_stream_request(
440
+ id,
441
+ conn,
442
+ run_image,
443
+ build_arch,
444
+ testDetails,
445
+ build_os,
446
+ build_artifacts,
447
+ build_command,
448
+ build_config_metadata,
449
+ build_image,
450
+ build_vars_str,
451
+ compiler,
452
+ cpp_compiler,
453
+ git_branch,
454
+ git_hash,
455
+ git_timestamp_ms,
456
+ git_version,
457
+ pull_request,
458
+ redis_temporary_dir,
459
+ tests_groups_regexp,
460
+ tests_priority_lower_limit,
461
+ tests_priority_upper_limit,
462
+ tests_regexp,
463
+ use_git_timestamp,
464
+ server_name,
465
+ github_org,
466
+ github_repo,
467
+ )
474
468
  if result is True:
475
469
  benchmark_stream_id = conn.xadd(
476
470
  STREAM_KEYNAME_NEW_BUILD_EVENTS, build_stream_fields
@@ -551,6 +545,122 @@ def builder_process_stream(
551
545
  return previous_id, new_builds_count, build_stream_fields_arr
552
546
 
553
547
 
548
+ def store_airgap_image_redis(conn, docker_client, run_image):
549
+ airgap_key = "docker:air-gap:{}".format(run_image)
550
+ logging.info(
551
+ "DOCKER AIR GAP: storing run image named: {} in redis key {}".format(
552
+ run_image, airgap_key
553
+ )
554
+ )
555
+ # 7 days expire
556
+ binary_exp_secs = 24 * 60 * 60 * 7
557
+ if conn.exists(airgap_key):
558
+ logging.info(
559
+ f"DOCKER AIRGAP KEY ALREADY EXISTS: {airgap_key}. Updating only the expire time"
560
+ )
561
+ conn.expire(airgap_key, binary_exp_secs)
562
+ else:
563
+ run_image_binary_stream = io.BytesIO()
564
+ run_image_docker = docker_client.images.get(run_image)
565
+ for chunk in run_image_docker.save():
566
+ run_image_binary_stream.write(chunk)
567
+ res_airgap = conn.set(
568
+ airgap_key,
569
+ run_image_binary_stream.getbuffer(),
570
+ ex=binary_exp_secs,
571
+ )
572
+ logging.info(
573
+ "DOCKER AIR GAP: result of set bin data to {}: {}".format(
574
+ airgap_key, res_airgap
575
+ )
576
+ )
577
+
578
+
579
+ def generate_benchmark_stream_request(
580
+ id,
581
+ conn,
582
+ run_image,
583
+ build_arch,
584
+ testDetails,
585
+ build_os,
586
+ build_artifacts=[],
587
+ build_command=None,
588
+ build_config_metadata=None,
589
+ build_image=None,
590
+ build_vars_str=None,
591
+ compiler=None,
592
+ cpp_compiler=None,
593
+ git_branch=None,
594
+ git_hash=None,
595
+ git_timestamp_ms=None,
596
+ git_version=None,
597
+ pull_request=None,
598
+ redis_temporary_dir=None,
599
+ tests_groups_regexp=".*",
600
+ tests_priority_lower_limit=0,
601
+ tests_priority_upper_limit=10000,
602
+ tests_regexp=".*",
603
+ use_git_timestamp=False,
604
+ server_name="redis",
605
+ github_org="redis",
606
+ github_repo="redis",
607
+ ):
608
+ build_stream_fields = {
609
+ "id": id,
610
+ "use_git_timestamp": str(use_git_timestamp),
611
+ "run_image": run_image,
612
+ "os": build_os,
613
+ "arch": build_arch,
614
+ "build_artifacts": ",".join(build_artifacts),
615
+ "tests_regexp": tests_regexp,
616
+ "tests_priority_upper_limit": tests_priority_upper_limit,
617
+ "tests_priority_lower_limit": tests_priority_lower_limit,
618
+ "tests_groups_regexp": tests_groups_regexp,
619
+ "server_name": server_name,
620
+ "github_org": github_org,
621
+ "github_repo": github_repo,
622
+ }
623
+ if build_config_metadata is not None:
624
+ build_stream_fields["metadata"] = json.dumps(build_config_metadata)
625
+ if compiler is not None:
626
+ build_stream_fields["compiler"] = compiler
627
+ if cpp_compiler is not None:
628
+ build_stream_fields["cpp_compiler"] = cpp_compiler
629
+ if build_vars_str is not None:
630
+ build_stream_fields["build_vars"] = build_vars_str
631
+ if build_command is not None:
632
+ logging.info(f"adding build_command: {build_command}")
633
+ build_stream_fields["build_command"] = build_command
634
+ if build_image is not None:
635
+ build_stream_fields["build_image"] = build_image
636
+ else:
637
+ build_stream_fields["build_image"] = run_image
638
+ if git_hash is not None:
639
+ build_stream_fields["git_hash"] = git_hash
640
+ if pull_request is not None:
641
+ build_stream_fields["pull_request"] = pull_request
642
+ if git_branch is not None:
643
+ build_stream_fields["git_branch"] = git_branch
644
+ if git_version is not None:
645
+ build_stream_fields["git_version"] = git_version
646
+ if git_timestamp_ms is not None:
647
+ build_stream_fields["git_timestamp_ms"] = git_timestamp_ms
648
+
649
+ prefix = f"github_org={github_org}/github_repo={github_repo}/git_branch={str(git_branch)}/git_version={str(git_version)}/git_hash={str(git_hash)}"
650
+ for artifact in build_artifacts:
651
+ bin_key = f"zipped:artifacts:{prefix}:{id}:{artifact}.zip"
652
+ bin_artifact = open(f"{redis_temporary_dir}src/{artifact}", "rb").read()
653
+ bin_artifact_len = len(bytes(bin_artifact))
654
+ assert bin_artifact_len > 0
655
+ conn.set(bin_key, bytes(bin_artifact), ex=REDIS_BINS_EXPIRE_SECS)
656
+ build_stream_fields[artifact] = bin_key
657
+ build_stream_fields["{}_len_bytes".format(artifact)] = bin_artifact_len
658
+ result = True
659
+ if b"platform" in testDetails:
660
+ build_stream_fields["platform"] = testDetails[b"platform"]
661
+ return build_stream_fields, result
662
+
663
+
554
664
  def build_spec_image_prefetch(builders_folder, different_build_specs):
555
665
  logging.info("checking build spec requirements")
556
666
  already_checked_images = []
@@ -5,7 +5,7 @@
5
5
  #
6
6
  import datetime
7
7
  import os
8
-
8
+ from distutils.util import strtobool
9
9
  from redis_benchmarks_specification.__common__.env import (
10
10
  GH_REDIS_SERVER_HOST,
11
11
  GH_TOKEN,
@@ -18,9 +18,10 @@ from redis_benchmarks_specification.__common__.env import (
18
18
  from redisbench_admin.run.common import get_start_time_vars
19
19
 
20
20
  START_TIME_NOW_UTC, _, _ = get_start_time_vars()
21
- START_TIME_LAST_YEAR_UTC = START_TIME_NOW_UTC - datetime.timedelta(days=7)
21
+ START_TIME_LAST_YEAR_UTC = START_TIME_NOW_UTC - datetime.timedelta(days=90)
22
22
  CLI_TOOL_STATS = "stats"
23
23
  CLI_TOOL_TRIGGER = "trigger"
24
+ CLI_TOOL_DOCKERHUB = "dockerhub"
24
25
  PERFORMANCE_GH_TOKEN = os.getenv("PERFORMANCE_GH_TOKEN", None)
25
26
 
26
27
 
@@ -70,6 +71,12 @@ def spec_cli_args(parser):
70
71
  action="store_true",
71
72
  help="Include modules statistics on commandstats.",
72
73
  )
74
+ parser.add_argument(
75
+ "--use-git-timestamp",
76
+ type=lambda x: bool(strtobool(x)),
77
+ default=True,
78
+ help="Use git timestamp",
79
+ )
73
80
  parser.add_argument("--github_token", type=str, default=PERFORMANCE_GH_TOKEN)
74
81
  parser.add_argument("--pull-request", type=str, default=None, nargs="?", const="")
75
82
  parser.add_argument(
@@ -109,7 +116,7 @@ def spec_cli_args(parser):
109
116
  type=str,
110
117
  default=CLI_TOOL_TRIGGER,
111
118
  help="subtool to use. One of '{}' ".format(
112
- ",".join([CLI_TOOL_STATS, CLI_TOOL_TRIGGER])
119
+ ",".join([CLI_TOOL_STATS, CLI_TOOL_TRIGGER, CLI_TOOL_DOCKERHUB])
113
120
  ),
114
121
  )
115
122
  parser.add_argument("--gh_token", type=str, default=GH_TOKEN)
@@ -129,7 +136,18 @@ def spec_cli_args(parser):
129
136
  parser.add_argument("--redis_repo", type=str, default=None)
130
137
  parser.add_argument("--gh_org", type=str, default="redis")
131
138
  parser.add_argument("--gh_repo", type=str, default="redis")
139
+ parser.add_argument("--server_name", type=str, default=None)
140
+ parser.add_argument("--run_image", type=str, default="redis")
141
+ parser.add_argument("--build_arch", type=str, default="amd64")
142
+ parser.add_argument("--id", type=str, default="dockerhub")
143
+ parser.add_argument("--mnt_point", type=str, default="")
132
144
  parser.add_argument("--trigger-unstable-commits", type=bool, default=True)
145
+ parser.add_argument(
146
+ "--docker-dont-air-gap",
147
+ default=False,
148
+ action="store_true",
149
+ help="Dont store the docker images in redis keys.",
150
+ )
133
151
  parser.add_argument(
134
152
  "--use-tags",
135
153
  default=False,
@@ -154,6 +172,21 @@ def spec_cli_args(parser):
154
172
  action="store_true",
155
173
  help="Iterate over the git commits.",
156
174
  )
175
+ parser.add_argument(
176
+ "--build_artifacts",
177
+ type=str,
178
+ default="",
179
+ )
180
+ parser.add_argument(
181
+ "--build_command",
182
+ type=str,
183
+ default="",
184
+ )
185
+ parser.add_argument(
186
+ "--git_hash",
187
+ type=str,
188
+ default="",
189
+ )
157
190
  parser.add_argument(
158
191
  "--dry-run",
159
192
  default=False,
@@ -163,8 +196,8 @@ def spec_cli_args(parser):
163
196
  parser.add_argument(
164
197
  "--last_n",
165
198
  type=int,
166
- default=-1,
167
- help="Use the last N samples. by default will use all available values",
199
+ default=1,
200
+ help="Use the last N samples. by default will use last commit",
168
201
  )
169
202
  parser.add_argument(
170
203
  "--platform",
@@ -12,14 +12,18 @@ import shutil
12
12
  import subprocess
13
13
  import sys
14
14
  import tempfile
15
+
16
+ import docker
15
17
  import git
16
18
  import packaging
17
19
  import redis
18
20
  from packaging import version
19
21
  import time
20
- from github import Github
21
-
22
22
 
23
+ from redis_benchmarks_specification.__builder__.builder import (
24
+ generate_benchmark_stream_request,
25
+ store_airgap_image_redis,
26
+ )
23
27
  from redis_benchmarks_specification.__common__.github import (
24
28
  update_comment_if_needed,
25
29
  create_new_pr_comment,
@@ -39,6 +43,7 @@ from redis_benchmarks_specification.__common__.env import (
39
43
  REDIS_BINS_EXPIRE_SECS,
40
44
  STREAM_KEYNAME_GH_EVENTS_COMMIT,
41
45
  STREAM_GH_EVENTS_COMMIT_BUILDERS_CG,
46
+ STREAM_KEYNAME_NEW_BUILD_EVENTS,
42
47
  )
43
48
  from redis_benchmarks_specification.__common__.package import (
44
49
  get_version_string,
@@ -53,6 +58,76 @@ logging.basicConfig(
53
58
  )
54
59
 
55
60
 
61
+ def trigger_tests_dockerhub_cli_command_logic(args, project_name, project_version):
62
+ logging.info(
63
+ "Using: {project_name} {project_version}".format(
64
+ project_name=project_name, project_version=project_version
65
+ )
66
+ )
67
+ logging.info(
68
+ "Checking connection to redis with user: {}, host: {}, port: {}".format(
69
+ args.redis_user,
70
+ args.redis_host,
71
+ args.redis_port,
72
+ )
73
+ )
74
+ conn = redis.StrictRedis(
75
+ host=args.redis_host,
76
+ port=args.redis_port,
77
+ password=args.redis_pass,
78
+ username=args.redis_user,
79
+ decode_responses=False,
80
+ )
81
+ conn.ping()
82
+ testDetails = {}
83
+ build_stream_fields, result = generate_benchmark_stream_request(
84
+ args.id,
85
+ conn,
86
+ args.run_image,
87
+ args.build_arch,
88
+ testDetails,
89
+ "n/a",
90
+ [],
91
+ None,
92
+ None,
93
+ None,
94
+ None,
95
+ None,
96
+ None,
97
+ None,
98
+ None,
99
+ None,
100
+ None,
101
+ None,
102
+ None,
103
+ ".*",
104
+ 0,
105
+ 10000,
106
+ args.tests_regexp,
107
+ )
108
+ build_stream_fields["github_repo"] = args.gh_repo
109
+ build_stream_fields["github_org"] = args.gh_org
110
+ build_stream_fields["restore_build_artifacts"] = "False"
111
+ server_name = args.gh_repo
112
+ if args.server_name is not None:
113
+ server_name = args.server_name
114
+ build_stream_fields["server_name"] = server_name
115
+ build_stream_fields["mnt_point"] = args.mnt_point
116
+ if args.docker_dont_air_gap is False:
117
+ docker_client = docker.from_env()
118
+ store_airgap_image_redis(conn, docker_client, args.run_image)
119
+
120
+ if result is True:
121
+ benchmark_stream_id = conn.xadd(
122
+ STREAM_KEYNAME_NEW_BUILD_EVENTS, build_stream_fields
123
+ )
124
+ logging.info(
125
+ "sucessfully requested a new run {}. Stream id: {}".format(
126
+ build_stream_fields, benchmark_stream_id
127
+ )
128
+ )
129
+
130
+
56
131
  def main():
57
132
  _, _, project_version = populate_with_poetry_data()
58
133
  project_name = "redis-benchmarks-spec-cli"
@@ -66,6 +141,8 @@ def main():
66
141
  trigger_tests_cli_command_logic(args, project_name, project_version)
67
142
  if args.tool == "stats":
68
143
  generate_stats_cli_command_logic(args, project_name, project_version)
144
+ if args.tool == "dockerhub":
145
+ trigger_tests_dockerhub_cli_command_logic(args, project_name, project_version)
69
146
 
70
147
 
71
148
  def get_commits_by_branch(args, repo):
@@ -73,6 +150,10 @@ def get_commits_by_branch(args, repo):
73
150
  commits = []
74
151
  for commit in repo.iter_commits():
75
152
  commit_datetime = commit.committed_datetime
153
+ git_timestamp_ms = int(
154
+ datetime.datetime.utcfromtimestamp(commit_datetime.timestamp()).timestamp()
155
+ * 1000
156
+ )
76
157
  if (
77
158
  args.from_date
78
159
  <= datetime.datetime.utcfromtimestamp(commit_datetime.timestamp())
@@ -87,6 +168,7 @@ def get_commits_by_branch(args, repo):
87
168
  "git_branch": repo.active_branch.name,
88
169
  "commit_summary": commit.summary,
89
170
  "commit_datetime": str(commit_datetime),
171
+ "git_timestamp_ms": git_timestamp_ms,
90
172
  }
91
173
  )
92
174
  return commits, total_commits
@@ -107,6 +189,14 @@ def get_commits_by_tags(args, repo):
107
189
 
108
190
  tags = sorted(repo.tags, key=lambda t: t.commit.committed_datetime)
109
191
  for tag in tags:
192
+
193
+ git_timestamp_ms = int(
194
+ datetime.datetime.utcfromtimestamp(
195
+ tag.commit.committed_datetime.timestamp()
196
+ ).timestamp()
197
+ * 1000
198
+ )
199
+
110
200
  if (
111
201
  args.from_date
112
202
  <= datetime.datetime.utcfromtimestamp(
@@ -137,6 +227,7 @@ def get_commits_by_tags(args, repo):
137
227
  "git_version": git_version,
138
228
  "commit_summary": tag.commit.summary,
139
229
  "commit_datetime": commit_datetime,
230
+ "git_timestamp_ms": git_timestamp_ms,
140
231
  }
141
232
  )
142
233
  except packaging.version.InvalidVersion:
@@ -152,6 +243,7 @@ def get_commits_by_tags(args, repo):
152
243
  def get_repo(args):
153
244
  redisDirPath = args.redis_repo
154
245
  cleanUp = False
246
+ last_n = args.last_n
155
247
  if redisDirPath is None:
156
248
  cleanUp = True
157
249
  redisDirPath = tempfile.mkdtemp()
@@ -159,7 +251,10 @@ def get_repo(args):
159
251
  logging.info(
160
252
  f"Retrieving redis repo from remote {remote_url} into {redisDirPath}. Using branch {args.branch}."
161
253
  )
162
- cmd = f"git clone {remote_url} {redisDirPath} --branch {args.branch}\n"
254
+ depth_str = ""
255
+ if last_n > 0:
256
+ depth_str = f" --depth {last_n}"
257
+ cmd = f"git clone {remote_url} {redisDirPath} --branch {args.branch} {depth_str}\n"
163
258
  process = subprocess.Popen(
164
259
  "/bin/bash", stdin=subprocess.PIPE, stdout=subprocess.PIPE
165
260
  )
@@ -260,11 +355,26 @@ def trigger_tests_cli_command_logic(args, project_name, project_version):
260
355
  hash_regexp
261
356
  )
262
357
  )
358
+ enable_hash_filtering = False
359
+ hash_filters = []
360
+ if args.git_hash != "":
361
+ enable_hash_filtering = True
362
+ hash_filters = args.git_hash.split(",")
363
+ logging.info(
364
+ f"There is a total of {len(hash_filters)} commit hash fitlers: {hash_filters}"
365
+ )
263
366
  hash_regexp_string = re.compile(hash_regexp)
264
367
  filtered_hash_commits = []
265
368
  for cdict in commits:
266
369
  commit_hash = cdict["git_hash"]
370
+ if enable_hash_filtering:
371
+ if commit_hash not in hash_filters:
372
+ logging.info(
373
+ f"Skipping {commit_hash} given it does not match any commit hash in {hash_filters}"
374
+ )
375
+ continue
267
376
  commit_summary = cdict["commit_summary"]
377
+ commit_datetime = cdict["commit_datetime"]
268
378
  match_obj = re.search(hash_regexp_string, commit_hash)
269
379
  if match_obj is None:
270
380
  logging.info(
@@ -274,9 +384,7 @@ def trigger_tests_cli_command_logic(args, project_name, project_version):
274
384
  )
275
385
  else:
276
386
  print(
277
- "Commit with hash: {} added. summary: {}".format(
278
- commit_hash, commit_summary
279
- )
387
+ f"Commit with hash: {commit_hash} from {commit_datetime} added. summary: {commit_summary}"
280
388
  )
281
389
  filtered_hash_commits.append(cdict)
282
390
 
@@ -322,19 +430,45 @@ def trigger_tests_cli_command_logic(args, project_name, project_version):
322
430
  commit_dict["tests_priority_lower_limit"] = tests_priority_lower_limit
323
431
  commit_dict["tests_regexp"] = tests_regexp
324
432
  commit_dict["tests_groups_regexp"] = tests_groups_regexp
433
+ commit_dict["github_org"] = args.gh_org
434
+ commit_dict["github_repo"] = args.gh_repo
435
+ if args.server_name is not None and args.server_name != "":
436
+ commit_dict["server_name"] = args.server_name
437
+ if args.build_artifacts != "":
438
+ commit_dict["build_artifacts"] = args.build_artifacts
439
+ if args.build_command != "":
440
+ commit_dict["build_command"] = args.build_command
441
+ if pull_request is not None:
442
+ logging.info(
443
+ f"Have a pull request info to include in build request {pull_request}"
444
+ )
445
+ commit_dict["pull_request"] = pull_request
325
446
  git_hash = cdict["git_hash"]
326
447
  git_branch = "n/a"
327
448
  if "git_branch" in cdict:
328
449
  git_branch = cdict["git_branch"]
329
450
  commit_datetime = cdict["commit_datetime"]
330
451
  commit_summary = cdict["commit_summary"]
452
+ reply_fields = {}
453
+ use_git_timestamp = args.use_git_timestamp
454
+ if use_git_timestamp is False:
455
+ reply_fields["use_git_timestamp"] = str(use_git_timestamp)
456
+
457
+ logging.info(
458
+ f"Setting use use_git_timestamp={use_git_timestamp}. ({args.use_git_timestamp})"
459
+ )
460
+
331
461
  if result is True:
332
462
  stream_id = "n/a"
333
463
  if args.dry_run is False:
334
- (result, reply_fields, error_msg,) = request_build_from_commit_info(
464
+ (
465
+ result,
466
+ reply_fields,
467
+ error_msg,
468
+ ) = request_build_from_commit_info(
335
469
  conn,
336
470
  commit_dict,
337
- {},
471
+ reply_fields,
338
472
  binary_key,
339
473
  binary_value,
340
474
  REDIS_BINS_EXPIRE_SECS,