redis-benchmarks-specification 0.1.74__tar.gz → 0.1.76__tar.gz

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 (182) hide show
  1. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/PKG-INFO +3 -2
  2. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/pyproject.toml +3 -4
  3. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/__builder__/builder.py +36 -4
  4. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/__cli__/args.py +38 -0
  5. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/__cli__/cli.py +130 -50
  6. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/__compare__/compare.py +0 -6
  7. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/__self_contained_coordinator__/self_contained_coordinator.py +65 -3
  8. redis_benchmarks_specification-0.1.74/redis_benchmarks_specification/test-suites/create-re-string.py +0 -286
  9. redis_benchmarks_specification-0.1.74/redis_benchmarks_specification/test-suites/string/memtier_benchmark-100Kkeys-load-string200c-with-20KiB-values-pipeline-10.yml +0 -20
  10. redis_benchmarks_specification-0.1.74/redis_benchmarks_specification/test-suites/string/memtier_benchmark-100Kkeys-load-string200c-with-20KiB-values.yml +0 -20
  11. redis_benchmarks_specification-0.1.74/redis_benchmarks_specification/test-suites/string/memtier_benchmark-100Kkeys-load-string50c-with-20KiB-values-pipeline-10.yml +0 -20
  12. redis_benchmarks_specification-0.1.74/redis_benchmarks_specification/test-suites/string/memtier_benchmark-100Kkeys-load-string50c-with-20KiB-values.yml +0 -20
  13. redis_benchmarks_specification-0.1.74/redis_benchmarks_specification/test-suites/string/memtier_benchmark-100Kkeys-string-setget200c-20KiB-pipeline-10.yml +0 -26
  14. redis_benchmarks_specification-0.1.74/redis_benchmarks_specification/test-suites/string/memtier_benchmark-100Kkeys-string-setget200c-20KiB.yml +0 -26
  15. redis_benchmarks_specification-0.1.74/redis_benchmarks_specification/test-suites/string/memtier_benchmark-100Kkeys-string-setget50c-20KiB-pipeline-10.yml +0 -26
  16. redis_benchmarks_specification-0.1.74/redis_benchmarks_specification/test-suites/string/memtier_benchmark-100Kkeys-string-setget50c-20KiB.yml +0 -26
  17. redis_benchmarks_specification-0.1.74/redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-load-string200c-with-100B-values-pipeline-10.yml +0 -20
  18. redis_benchmarks_specification-0.1.74/redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-load-string200c-with-100B-values.yml +0 -20
  19. redis_benchmarks_specification-0.1.74/redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-load-string200c-with-1KiB-values-pipeline-10.yml +0 -20
  20. redis_benchmarks_specification-0.1.74/redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-load-string200c-with-1KiB-values.yml +0 -20
  21. redis_benchmarks_specification-0.1.74/redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-load-string50c-with-100B-values-pipeline-10.yml +0 -20
  22. redis_benchmarks_specification-0.1.74/redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-load-string50c-with-100B-values.yml +0 -20
  23. redis_benchmarks_specification-0.1.74/redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-load-string50c-with-1KiB-values-pipeline-10.yml +0 -20
  24. redis_benchmarks_specification-0.1.74/redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-load-string50c-with-1KiB-values.yml +0 -20
  25. redis_benchmarks_specification-0.1.74/redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-string-mget-1KiB.yml +0 -27
  26. redis_benchmarks_specification-0.1.74/redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-string-setget200c-100B-pipeline-10.yml +0 -26
  27. redis_benchmarks_specification-0.1.74/redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-string-setget200c-100B.yml +0 -26
  28. redis_benchmarks_specification-0.1.74/redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-string-setget200c-1KiB-pipeline-10.yml +0 -26
  29. redis_benchmarks_specification-0.1.74/redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-string-setget200c-1KiB.yml +0 -26
  30. redis_benchmarks_specification-0.1.74/redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-string-setget50c-100B-pipeline-10.yml +0 -26
  31. redis_benchmarks_specification-0.1.74/redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-string-setget50c-100B.yml +0 -26
  32. redis_benchmarks_specification-0.1.74/redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-string-setget50c-1KiB-pipeline-10.yml +0 -26
  33. redis_benchmarks_specification-0.1.74/redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-string-setget50c-1KiB.yml +0 -26
  34. redis_benchmarks_specification-0.1.74/setup.py +0 -80
  35. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/LICENSE +0 -0
  36. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/Readme.md +0 -0
  37. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/__api__/Readme.md +0 -0
  38. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/__api__/__init__.py +0 -0
  39. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/__api__/api.py +0 -0
  40. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/__api__/app.py +0 -0
  41. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/__builder__/Readme.md +0 -0
  42. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/__builder__/__init__.py +0 -0
  43. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/__builder__/schema.py +0 -0
  44. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/__cli__/__init__.py +0 -0
  45. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/__cli__/stats.py +0 -0
  46. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/__common__/__init__.py +0 -0
  47. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/__common__/builder_schema.py +0 -0
  48. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/__common__/env.py +0 -0
  49. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/__common__/package.py +0 -0
  50. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/__common__/runner.py +0 -0
  51. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/__common__/spec.py +0 -0
  52. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/__compare__/__init__.py +0 -0
  53. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/__compare__/args.py +0 -0
  54. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/__init__.py +0 -0
  55. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/__runner__/__init__.py +0 -0
  56. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/__runner__/args.py +0 -0
  57. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/__runner__/runner.py +0 -0
  58. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/__self_contained_coordinator__/__init__.py +0 -0
  59. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/__self_contained_coordinator__/args.py +0 -0
  60. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/__self_contained_coordinator__/artifacts.py +0 -0
  61. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/__self_contained_coordinator__/build_info.py +0 -0
  62. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/__self_contained_coordinator__/clients.py +0 -0
  63. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/__self_contained_coordinator__/cpuset.py +0 -0
  64. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/__self_contained_coordinator__/docker.py +0 -0
  65. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/__self_contained_coordinator__/prepopulation.py +0 -0
  66. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/__self_contained_coordinator__/runners.py +0 -0
  67. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/__setups__/__init__.py +0 -0
  68. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/__setups__/topologies.py +0 -0
  69. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/__spec__/__init__.py +0 -0
  70. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/__spec__/args.py +0 -0
  71. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/__spec__/cli.py +0 -0
  72. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/__watchdog__/__init__.py +0 -0
  73. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/__watchdog__/args.py +0 -0
  74. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/__watchdog__/watchdog.py +0 -0
  75. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/commands/__init__.py +0 -0
  76. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/commands/commands.py +0 -0
  77. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/setups/builders/gcc:8.5.0-amd64-debian-buster-default.yml +0 -0
  78. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/setups/builders/gcc:8.5.0-arm64-debian-buster-default.yml +0 -0
  79. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/setups/platforms/aws-ec2-1node-c5.4xlarge.yml +0 -0
  80. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/setups/topologies/topologies.yml +0 -0
  81. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/defaults.yml +0 -0
  82. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/generate.py +0 -0
  83. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-1000B-values-pipeline-10.yml +0 -0
  84. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-1000B-values.yml +0 -0
  85. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-100B-values-pipeline-10.yml +0 -0
  86. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-100B-values.yml +0 -0
  87. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-10B-values-pipeline-10.yml +0 -0
  88. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-10B-values.yml +0 -0
  89. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-100B-expire-use-case.yml +0 -0
  90. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-10B-expire-use-case.yml +0 -0
  91. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-1KiB-expire-use-case.yml +0 -0
  92. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-4KiB-expire-use-case.yml +0 -0
  93. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-bitmap-getbit-pipeline-10.yml +0 -0
  94. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-exists-pipeline-10.yml +0 -0
  95. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-expire-pipeline-10.yml +0 -0
  96. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-expireat-pipeline-10.yml +0 -0
  97. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-pexpire-pipeline-10.yml +0 -0
  98. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-pipeline-10.yml +0 -0
  99. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-touch-pipeline-10.yml +0 -0
  100. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-ttl-pipeline-10.yml +0 -0
  101. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hexists.yml +0 -0
  102. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hget-hgetall-hkeys-hvals-with-100B-values.yml +0 -0
  103. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hincrby.yml +0 -0
  104. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hmget-5-fields-with-100B-values-pipeline-10.yml +0 -0
  105. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-transactions-multi-exec-pipeline-20.yml +0 -0
  106. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-lpop-rpop-with-100B-values.yml +0 -0
  107. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-lpop-rpop-with-10B-values.yml +0 -0
  108. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-lpop-rpop-with-1KiB-values.yml +0 -0
  109. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-hash-5-fields-with-1000B-values-pipeline-10.yml +0 -0
  110. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-hash-5-fields-with-1000B-values.yml +0 -0
  111. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-hash-hmset-5-fields-with-1000B-values.yml +0 -0
  112. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-list-with-100B-values.yml +0 -0
  113. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-list-with-10B-values.yml +0 -0
  114. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-list-with-1KiB-values.yml +0 -0
  115. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-stream-1-fields-with-100B-values-pipeline-10.yml +0 -0
  116. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-stream-1-fields-with-100B-values.yml +0 -0
  117. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-stream-5-fields-with-100B-values-pipeline-10.yml +0 -0
  118. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-stream-5-fields-with-100B-values.yml +0 -0
  119. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-100B-values-pipeline-10.yml +0 -0
  120. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-100B-values.yml +0 -0
  121. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-10B-values-pipeline-10.yml +0 -0
  122. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-10B-values.yml +0 -0
  123. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-1KiB-values.yml +0 -0
  124. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-200KiB-values.yml +0 -0
  125. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-20KiB-values.yml +0 -0
  126. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-2MB-values.yml +0 -0
  127. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-zset-with-10-elements-double-score.yml +0 -0
  128. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-zset-with-10-elements-int-score.yml +0 -0
  129. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-decr.yml +0 -0
  130. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-100B-pipeline-10.yml +0 -0
  131. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-100B.yml +0 -0
  132. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-10.yml +0 -0
  133. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B.yml +0 -0
  134. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-1KiB-pipeline-10.yml +0 -0
  135. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-1KiB.yml +0 -0
  136. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-200KiB.yml +0 -0
  137. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-20KiB.yml +0 -0
  138. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-2MB.yml +0 -0
  139. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mget-1KiB.yml +0 -0
  140. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geodist-pipeline-10.yml +0 -0
  141. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geodist.yml +0 -0
  142. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geohash-pipeline-10.yml +0 -0
  143. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geohash.yml +0 -0
  144. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geopos-pipeline-10.yml +0 -0
  145. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geopos.yml +0 -0
  146. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-bybox.yml +0 -0
  147. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-pipeline-10.yml +0 -0
  148. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat.yml +0 -0
  149. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10-elements-lrange-all-elements.yml +0 -0
  150. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-lrange-all-elements.yml +0 -0
  151. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-1K-elements-lrange-all-elements.yml +0 -0
  152. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-pfadd-4KB-values-pipeline-10.yml +0 -0
  153. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10-elements-smembers-pipeline-10.yml +0 -0
  154. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10-elements-smembers.yml +0 -0
  155. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10-elements-smismember.yml +0 -0
  156. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-smembers.yml +0 -0
  157. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-smismember.yml +0 -0
  158. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-1K-elements-smembers.yml +0 -0
  159. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-200K-elements-sadd-constant.yml +0 -0
  160. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-2M-elements-sadd-increasing.yml +0 -0
  161. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zincrby-1M-elements-pipeline-1.yml +0 -0
  162. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrank-1M-elements-pipeline-1.yml +0 -0
  163. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrem-5M-elements-pipeline-1.yml +0 -0
  164. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrangebyscore-256K-elements-pipeline-1.yml +0 -0
  165. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrank-1M-elements-pipeline-1.yml +0 -0
  166. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-10-elements-zrange-all-elements-long-scores.yml +0 -0
  167. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-10-elements-zrange-all-elements.yml +0 -0
  168. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zrange-all-elements.yml +0 -0
  169. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements-long-scores.yml +0 -0
  170. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements.yml +0 -0
  171. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1K-elements-zrange-all-elements.yml +0 -0
  172. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zcard-pipeline-10.yml +0 -0
  173. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zrevrange-5-elements.yml +0 -0
  174. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zscore-pipeline-10.yml +0 -0
  175. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-lua-eval-hset-expire.yml +0 -0
  176. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-lua-evalsha-hset-expire.yml +0 -0
  177. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-set-10-100-elements-sdiff.yml +0 -0
  178. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-set-10-100-elements-sinter.yml +0 -0
  179. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-set-10-100-elements-sunion.yml +0 -0
  180. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-stream-5-entries-xread-all-entries-pipeline-10.yml +0 -0
  181. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-stream-5-entries-xread-all-entries.yml +0 -0
  182. {redis_benchmarks_specification-0.1.74 → redis_benchmarks_specification-0.1.76}/redis_benchmarks_specification/test-suites/template.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: redis-benchmarks-specification
3
- Version: 0.1.74
3
+ Version: 0.1.76
4
4
  Summary: The Redis benchmarks specification describes the cross-language/tools requirements and expectations to foster performance and observability standards around redis related technologies. Members from both industry and academia, including organizations and individuals are encouraged to contribute.
5
5
  Author: filipecosta90
6
6
  Author-email: filipecosta.90@gmail.com
@@ -9,13 +9,14 @@ Classifier: Programming Language :: Python :: 3
9
9
  Classifier: Programming Language :: Python :: 3.9
10
10
  Classifier: Programming Language :: Python :: 3.10
11
11
  Classifier: Programming Language :: Python :: 3.11
12
+ Classifier: Programming Language :: Python :: 3.12
12
13
  Requires-Dist: Flask (>=2.0.3,<3.0.0)
13
14
  Requires-Dist: Flask-HTTPAuth (>=4.4.0,<5.0.0)
14
15
  Requires-Dist: GitPython (>=3.1.20,<4.0.0)
15
16
  Requires-Dist: PyGithub (>=1.55,<2.0)
16
17
  Requires-Dist: PyYAML (>=6.0,<7.0)
17
18
  Requires-Dist: argparse (>=1.4.0,<2.0.0)
18
- Requires-Dist: docker (>=5.0.0,<6.0.0)
19
+ Requires-Dist: docker (>=7.1.0,<8.0.0)
19
20
  Requires-Dist: flask-restx (>=0.5.0,<0.6.0)
20
21
  Requires-Dist: marshmallow (>=3.12.2,<4.0.0)
21
22
  Requires-Dist: node-semver (>=0.8.1,<0.9.0)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "redis-benchmarks-specification"
3
- version = "0.1.74"
3
+ version = "0.1.76"
4
4
  description = "The Redis benchmarks specification describes the cross-language/tools requirements and expectations to foster performance and observability standards around redis related technologies. Members from both industry and academia, including organizations and individuals are encouraged to contribute."
5
5
  authors = ["filipecosta90 <filipecosta.90@gmail.com>","Redis Performance Group <performance@redis.com>"]
6
6
  readme = "Readme.md"
@@ -14,7 +14,7 @@ marshmallow = "^3.12.2"
14
14
  argparse = "^1.4.0"
15
15
  Flask-HTTPAuth = "^4.4.0"
16
16
  PyYAML = "^6.0"
17
- docker = "^5.0.0"
17
+ docker = "^7.1.0"
18
18
  redisbench-admin = "^0.9.23"
19
19
  psutil = "^5.9.4"
20
20
  PyGithub = "^1.55"
@@ -29,8 +29,7 @@ pytest = "^7.2.0"
29
29
  pytest-cov = "^4.0.0"
30
30
  black = "22.10.0"
31
31
  flake8 = "^6.0.0"
32
- tox-poetry-installer = {extras = ["poetry"], version = "^0.10.2"}
33
- tox-docker = {extras = ["poetry"], version = "^3.1.0"}
32
+ tox-poetry-installer = {extras = ["poetry"], version = "^0.10.3"}
34
33
 
35
34
  [build-system]
36
35
  requires = ["poetry_core>=1.0.0"]
@@ -141,7 +141,7 @@ def main():
141
141
 
142
142
  previous_id = args.consumer_start_id
143
143
  while True:
144
- previous_id, new_builds_count = builder_process_stream(
144
+ previous_id, new_builds_count, _ = builder_process_stream(
145
145
  builders_folder,
146
146
  conn,
147
147
  different_build_specs,
@@ -181,6 +181,7 @@ def builder_process_stream(
181
181
  arch="amd64",
182
182
  ):
183
183
  new_builds_count = 0
184
+ build_stream_fields_arr = []
184
185
  logging.info("Entering blocking read waiting for work.")
185
186
  consumer_name = "{}-proc#{}".format(STREAM_GH_EVENTS_COMMIT_BUILDERS_CG, "1")
186
187
  newTestInfo = conn.xreadgroup(
@@ -196,6 +197,7 @@ def builder_process_stream(
196
197
  else:
197
198
  streamId, testDetails = newTestInfo[0][1][0]
198
199
  logging.info("Received work . Stream id {}.".format(streamId))
200
+ conn.lpush("benchmarks:{streamId}")
199
201
  # commit = None
200
202
  # commited_date = ""
201
203
  # tag = ""
@@ -220,6 +222,22 @@ def builder_process_stream(
220
222
  use_git_timestamp = bool(testDetails[b"use_git_timestamp"])
221
223
  if b"git_timestamp_ms" in testDetails:
222
224
  git_timestamp_ms = int(testDetails[b"git_timestamp_ms"].decode())
225
+ tests_regexp = ".*"
226
+ if b"tests_regexp" in testDetails:
227
+ tests_regexp = testDetails[b"tests_regexp"].decode()
228
+ tests_priority_upper_limit = 10000
229
+ if b"tests_priority_upper_limit" in testDetails:
230
+ tests_priority_upper_limit = int(
231
+ testDetails[b"tests_priority_upper_limit"].decode()
232
+ )
233
+ tests_priority_lower_limit = 0
234
+ if b"tests_priority_lower_limit" in testDetails:
235
+ tests_priority_lower_limit = int(
236
+ testDetails[b"tests_priority_lower_limit"].decode()
237
+ )
238
+ tests_groups_regexp = ".*"
239
+ if b"tests_groups_regexp" in testDetails:
240
+ tests_groups_regexp = testDetails[b"tests_groups_regexp"].decode()
223
241
 
224
242
  for build_spec in different_build_specs:
225
243
  build_config, id = get_build_config(builders_folder + "/" + build_spec)
@@ -333,11 +351,18 @@ def builder_process_stream(
333
351
  "build_command": build_command,
334
352
  "metadata": json.dumps(build_config_metadata),
335
353
  "build_artifacts": ",".join(build_artifacts),
354
+ "tests_regexp": tests_regexp,
355
+ "tests_priority_upper_limit": tests_priority_upper_limit,
356
+ "tests_priority_lower_limit": tests_priority_lower_limit,
357
+ "tests_groups_regexp": tests_groups_regexp,
336
358
  }
337
359
  if git_branch is not None:
338
360
  build_stream_fields["git_branch"] = git_branch
339
361
  if git_version is not None:
340
362
  build_stream_fields["git_version"] = git_version
363
+ if git_timestamp_ms is not None:
364
+ build_stream_fields["git_timestamp_ms"] = git_timestamp_ms
365
+
341
366
  if git_timestamp_ms is not None:
342
367
  build_stream_fields["git_timestamp_ms"] = git_timestamp_ms
343
368
  for artifact in build_artifacts:
@@ -356,16 +381,23 @@ def builder_process_stream(
356
381
  if b"platform" in testDetails:
357
382
  build_stream_fields["platform"] = testDetails[b"platform"]
358
383
  if result is True:
359
- stream_id = conn.xadd(
384
+ benchmark_stream_id = conn.xadd(
360
385
  STREAM_KEYNAME_NEW_BUILD_EVENTS, build_stream_fields
361
386
  )
362
387
  logging.info(
363
388
  "sucessfully built build variant {} for redis git_sha {}. Stream id: {}".format(
364
- id, git_hash, stream_id
389
+ id, git_hash, benchmark_stream_id
365
390
  )
366
391
  )
392
+ builder_list_completed = f"builder:{streamId}:builds_completed"
393
+ conn.lpush(builder_list_completed, benchmark_stream_id)
394
+ conn.expire(builder_list_completed, REDIS_BINS_EXPIRE_SECS)
395
+ logging.info(
396
+ f"Adding information of build->benchmark stream info in list {builder_list_completed}. Adding benchmark stream id: {benchmark_stream_id}"
397
+ )
367
398
  shutil.rmtree(temporary_dir, ignore_errors=True)
368
399
  new_builds_count = new_builds_count + 1
400
+ build_stream_fields_arr.append(build_stream_fields)
369
401
  ack_reply = conn.xack(
370
402
  STREAM_KEYNAME_GH_EVENTS_COMMIT,
371
403
  STREAM_GH_EVENTS_COMMIT_BUILDERS_CG,
@@ -387,7 +419,7 @@ def builder_process_stream(
387
419
  )
388
420
  else:
389
421
  logging.error("Missing commit information within received message.")
390
- return previous_id, new_builds_count
422
+ return previous_id, new_builds_count, build_stream_fields_arr
391
423
 
392
424
 
393
425
  def build_spec_image_prefetch(builders_folder, different_build_specs):
@@ -30,6 +30,30 @@ def spec_cli_args(parser):
30
30
  default=SPECS_PATH_TEST_SUITES,
31
31
  help="Test suites folder, containing the different test variations",
32
32
  )
33
+ parser.add_argument(
34
+ "--tests-regexp",
35
+ type=str,
36
+ default=".*",
37
+ help="Interpret PATTERN as a regular expression to filter test names",
38
+ )
39
+ parser.add_argument(
40
+ "--tests-groups-regexp",
41
+ type=str,
42
+ default=".*",
43
+ help="Interpret PATTERN as a regular expression to filter test group names",
44
+ )
45
+ parser.add_argument(
46
+ "--tests-priority-lower-limit",
47
+ type=int,
48
+ default=0,
49
+ help="Run a subset of the tests based uppon a preset priority. By default runs all tests.",
50
+ )
51
+ parser.add_argument(
52
+ "--tests-priority-upper-limit",
53
+ type=int,
54
+ default=100000,
55
+ help="Run a subset of the tests based uppon a preset priority. By default runs all tests.",
56
+ )
33
57
  parser.add_argument(
34
58
  "--defaults_filename",
35
59
  type=str,
@@ -93,6 +117,8 @@ def spec_cli_args(parser):
93
117
  default=START_TIME_NOW_UTC,
94
118
  )
95
119
  parser.add_argument("--redis_repo", type=str, default=None)
120
+ parser.add_argument("--gh_org", type=str, default="redis")
121
+ parser.add_argument("--gh_repo", type=str, default="redis")
96
122
  parser.add_argument("--trigger-unstable-commits", type=bool, default=True)
97
123
  parser.add_argument(
98
124
  "--use-tags",
@@ -136,4 +162,16 @@ def spec_cli_args(parser):
136
162
  default="",
137
163
  help="Only trigger tests on the specified platform.",
138
164
  )
165
+ parser.add_argument(
166
+ "--wait-build",
167
+ default=False,
168
+ action="store_true",
169
+ help="Wait for build to be finished.",
170
+ )
171
+ parser.add_argument(
172
+ "--wait-build-timeout",
173
+ type=int,
174
+ default=-1,
175
+ help="Wait x sections for build. If -1, waits forever.",
176
+ )
139
177
  return parser
@@ -16,6 +16,7 @@ import git
16
16
  import packaging
17
17
  import redis
18
18
  from packaging import version
19
+ import time
19
20
 
20
21
 
21
22
  from redis_benchmarks_specification.__cli__.args import spec_cli_args
@@ -26,7 +27,11 @@ from redis_benchmarks_specification.__common__.builder_schema import (
26
27
  get_commit_dict_from_sha,
27
28
  request_build_from_commit_info,
28
29
  )
29
- from redis_benchmarks_specification.__common__.env import REDIS_BINS_EXPIRE_SECS
30
+ from redis_benchmarks_specification.__common__.env import (
31
+ REDIS_BINS_EXPIRE_SECS,
32
+ STREAM_KEYNAME_GH_EVENTS_COMMIT,
33
+ STREAM_GH_EVENTS_COMMIT_BUILDERS_CG,
34
+ )
30
35
  from redis_benchmarks_specification.__common__.package import (
31
36
  get_version_string,
32
37
  populate_with_poetry_data,
@@ -142,14 +147,11 @@ def get_repo(args):
142
147
  if redisDirPath is None:
143
148
  cleanUp = True
144
149
  redisDirPath = tempfile.mkdtemp()
150
+ remote_url = f"https://github.com/{args.gh_org}/{args.gh_repo}"
145
151
  logging.info(
146
- "Retrieving redis repo from remote into {}. Using branch {}.".format(
147
- redisDirPath, args.branch
148
- )
149
- )
150
- cmd = "git clone https://github.com/redis/redis {} --branch {}\n".format(
151
- redisDirPath, args.branch
152
+ f"Retrieving redis repo from remote {remote_url} into {redisDirPath}. Using branch {args.branch}."
152
153
  )
154
+ cmd = f"git clone {remote_url} {redisDirPath} --branch {args.branch}\n"
153
155
  process = subprocess.Popen(
154
156
  "/bin/bash", stdin=subprocess.PIPE, stdout=subprocess.PIPE
155
157
  )
@@ -231,57 +233,135 @@ def trigger_tests_cli_command_logic(args, project_name, project_version):
231
233
  )
232
234
  filtered_hash_commits.append(cdict)
233
235
 
234
- if args.dry_run is False:
235
- conn = redis.StrictRedis(
236
- host=args.redis_host,
237
- port=args.redis_port,
238
- password=args.redis_pass,
239
- username=args.redis_user,
240
- decode_responses=False,
236
+ logging.info(
237
+ "Checking connection to redis with user: {}, host: {}, port: {}".format(
238
+ args.redis_user,
239
+ args.redis_host,
240
+ args.redis_port,
241
241
  )
242
-
243
- for rep in range(0, 1):
244
- for cdict in filtered_hash_commits:
245
- (
246
- result,
247
- error_msg,
248
- commit_dict,
249
- _,
250
- binary_key,
251
- binary_value,
252
- ) = get_commit_dict_from_sha(
253
- cdict["git_hash"], "redis", "redis", cdict, True, args.gh_token
254
- )
255
- if args.platform:
256
- commit_dict["platform"] = args.platform
257
- if result is True:
258
- stream_id = "n/a"
259
- if args.dry_run is False:
260
- (
261
- result,
262
- reply_fields,
263
- error_msg,
264
- ) = request_build_from_commit_info(
265
- conn,
266
- commit_dict,
267
- {},
268
- binary_key,
269
- binary_value,
270
- REDIS_BINS_EXPIRE_SECS,
271
- )
272
- stream_id = reply_fields["id"]
242
+ )
243
+ conn = redis.StrictRedis(
244
+ host=args.redis_host,
245
+ port=args.redis_port,
246
+ password=args.redis_pass,
247
+ username=args.redis_user,
248
+ decode_responses=False,
249
+ )
250
+ conn.ping()
251
+ for rep in range(0, 1):
252
+ for cdict in filtered_hash_commits:
253
+ (
254
+ result,
255
+ error_msg,
256
+ commit_dict,
257
+ _,
258
+ binary_key,
259
+ binary_value,
260
+ ) = get_commit_dict_from_sha(
261
+ cdict["git_hash"],
262
+ args.gh_org,
263
+ args.gh_repo,
264
+ cdict,
265
+ True,
266
+ args.gh_token,
267
+ )
268
+ if args.platform:
269
+ commit_dict["platform"] = args.platform
270
+ commit_dict["tests_priority_upper_limit"] = args.tests_priority_upper_limit
271
+ commit_dict["tests_priority_lower_limit"] = args.tests_priority_lower_limit
272
+ commit_dict["tests_regexp"] = args.tests_regexp
273
+ commit_dict["tests_groups_regexp"] = args.tests_groups_regexp
274
+ if result is True:
275
+ stream_id = "n/a"
276
+ if args.dry_run is False:
277
+ (result, reply_fields, error_msg,) = request_build_from_commit_info(
278
+ conn,
279
+ commit_dict,
280
+ {},
281
+ binary_key,
282
+ binary_value,
283
+ REDIS_BINS_EXPIRE_SECS,
284
+ )
285
+ stream_id = reply_fields["id"]
273
286
  logging.info(
274
- "Successfully requested a build for commit: {}. Date: {} Request stream id: {}.".format(
287
+ "Successfully requested a build for commit: {}. Date: {} Request stream id: {}. full commited info: {}. Reply fields: {}".format(
275
288
  cdict["git_hash"],
276
289
  cdict["commit_datetime"],
277
290
  stream_id,
291
+ commit_dict,
292
+ reply_fields,
278
293
  )
279
294
  )
280
- else:
281
- logging.error(error_msg)
295
+ if args.wait_build is True:
296
+ decoded_stream_id = stream_id.decode()
297
+ builder_list_streams = (
298
+ f"builder:{decoded_stream_id}:builds_completed"
299
+ )
300
+ len_list = 0
301
+ stream_ack = False
302
+ sleep_secs = 10
303
+ benchmark_stream_ids = []
304
+ while len_list == 0 or stream_ack is False:
282
305
 
283
- else:
284
- logging.info("Skipping actual work trigger ( dry-run )")
306
+ logging.info(
307
+ f"checking benchmark streams info in key: {builder_list_streams}"
308
+ )
309
+ benchmark_stream_ids = conn.lrange(
310
+ builder_list_streams, 0, -1
311
+ )
312
+ len_list = len(benchmark_stream_ids)
313
+ logging.info(
314
+ f"There is a total of {len_list} already build benchmark stream ids for this build: {benchmark_stream_ids}"
315
+ )
316
+
317
+ if len_list > 0:
318
+ pending_build_streams = conn.xpending_range(
319
+ STREAM_KEYNAME_GH_EVENTS_COMMIT,
320
+ STREAM_GH_EVENTS_COMMIT_BUILDERS_CG,
321
+ "-",
322
+ "+",
323
+ 1000,
324
+ )
325
+ len_pending = len(pending_build_streams)
326
+ logging.info(
327
+ f"There is a total of {len_pending} pending builds for stream {STREAM_KEYNAME_GH_EVENTS_COMMIT} and cg {STREAM_GH_EVENTS_COMMIT_BUILDERS_CG}. Checking for stream id: {stream_id}"
328
+ )
329
+ found_id = False
330
+ for pending_try in pending_build_streams:
331
+ logging.info(f"pending entry: {pending_try}")
332
+ pending_id = pending_try["message_id"]
333
+ if stream_id == pending_id:
334
+ found_id = True
335
+ logging.info(
336
+ f"Found the stream id {stream_id} as part of pending entry list. Waiting for it to be ack."
337
+ )
338
+
339
+ if found_id is True:
340
+ logging.info(
341
+ f"Sleeping for {sleep_secs} before checking pending list again."
342
+ )
343
+ time.sleep(sleep_secs)
344
+ else:
345
+ stream_ack = True
346
+ else:
347
+ logging.info(
348
+ f"Sleeping for {sleep_secs} before checking builds again."
349
+ )
350
+ time.sleep(sleep_secs)
351
+ logging.info(
352
+ f"FINAL total of {len_list} already build benchmark stream ids for this build: {benchmark_stream_ids}"
353
+ )
354
+
355
+ else:
356
+ logging.info(
357
+ "DRY-RUN: build for commit: {}. Date: {} Full commited info: {}".format(
358
+ cdict["git_hash"],
359
+ cdict["commit_datetime"],
360
+ commit_dict,
361
+ )
362
+ )
363
+ else:
364
+ logging.error(error_msg)
285
365
  if cleanUp is True:
286
366
  logging.info("Removing temporary redis dir {}.".format(redisDirPath))
287
367
  shutil.rmtree(redisDirPath)
@@ -15,7 +15,6 @@ import datetime as dt
15
15
  import os
16
16
  from tqdm import tqdm
17
17
  from github import Github
18
- from slack_sdk.webhook import WebhookClient
19
18
  import argparse
20
19
  from redis_benchmarks_specification.__compare__.args import create_compare_arguments
21
20
 
@@ -282,9 +281,6 @@ def compare_command_logic(args, project_name, project_version):
282
281
  contains_regression_comment = False
283
282
  regression_comment = None
284
283
  github_pr = None
285
- # slack related
286
- webhook_notifications_active = False
287
- webhook_client_slack = None
288
284
  if running_platform is not None:
289
285
  logging.info(
290
286
  "Using platform named: {} to do the comparison.\n\n".format(
@@ -455,7 +451,6 @@ def compare_command_logic(args, project_name, project_version):
455
451
  )
456
452
  user_input = "n"
457
453
  html_url = "n/a"
458
- regression_count = len(detected_regressions)
459
454
  (
460
455
  baseline_str,
461
456
  by_str_baseline,
@@ -801,7 +796,6 @@ def from_rts_to_regression_table(
801
796
  total_comparison_points = 0
802
797
  noise_waterline = 3
803
798
  progress = tqdm(unit="benchmark time-series", total=len(test_names))
804
- at_comparison = 0
805
799
  for test_name in test_names:
806
800
  multi_value_baseline = check_multi_value_filter(baseline_str)
807
801
  multi_value_comparison = check_multi_value_filter(comparison_str)
@@ -5,7 +5,7 @@ import pathlib
5
5
  import shutil
6
6
  import tempfile
7
7
  import traceback
8
-
8
+ import re
9
9
  import docker
10
10
  import redis
11
11
  import os
@@ -23,6 +23,7 @@ from redis_benchmarks_specification.__common__.env import (
23
23
  LOG_LEVEL,
24
24
  REDIS_HEALTH_CHECK_INTERVAL,
25
25
  REDIS_SOCKET_TIMEOUT,
26
+ REDIS_BINS_EXPIRE_SECS,
26
27
  )
27
28
  from redis_benchmarks_specification.__common__.package import (
28
29
  get_version_string,
@@ -433,6 +434,13 @@ def process_self_contained_coordinator_stream(
433
434
  run_arch,
434
435
  ) = extract_build_info_from_streamdata(testDetails)
435
436
 
437
+ test_regexp = ".*"
438
+ if b"test_regexp" in testDetails:
439
+ test_regexp = testDetails[b"test_regexp"]
440
+ logging.info(
441
+ f"detected a regexp definition on the streamdata {test_regexp}"
442
+ )
443
+
436
444
  skip_test = False
437
445
  if b"platform" in testDetails:
438
446
  platform = testDetails[b"platform"]
@@ -466,11 +474,37 @@ def process_self_contained_coordinator_stream(
466
474
  images_loaded = docker_client.images.load(airgap_docker_image_bin)
467
475
  logging.info("Successfully loaded images {}".format(images_loaded))
468
476
 
477
+ filtered_test_files = []
478
+
479
+ stream_test_list_pending = (
480
+ f"{stream_id}:{running_platform}:tests_pending"
481
+ )
482
+ stream_test_list_running = (
483
+ f"{stream_id}:{running_platform}:tests_running"
484
+ )
485
+ stream_test_list_completed = (
486
+ f"{stream_id}:{running_platform}:tests_completed"
487
+ )
469
488
  for test_file in testsuite_spec_files:
470
489
  if defaults_filename in test_file:
471
490
  continue
472
- redis_containers = []
473
- client_containers = []
491
+
492
+ if test_regexp != ".*":
493
+ logging.info(
494
+ "Filtering all tests via a regular expression: {}".format(
495
+ test_regexp
496
+ )
497
+ )
498
+ tags_regex_string = re.compile(test_regexp)
499
+
500
+ match_obj = re.search(tags_regex_string, test_file)
501
+ if match_obj is None:
502
+ logging.info(
503
+ "Skipping {} given it does not match regex {}".format(
504
+ test_file, test_regexp
505
+ )
506
+ )
507
+ continue
474
508
 
475
509
  with open(test_file, "r") as stream:
476
510
  (
@@ -485,6 +519,28 @@ def process_self_contained_coordinator_stream(
485
519
  )
486
520
  )
487
521
  continue
522
+ conn.lpush(stream_test_list_pending, test_name)
523
+ conn.expire(stream_test_list_pending, REDIS_BINS_EXPIRE_SECS)
524
+ logging.info(
525
+ f"Added test named {test_name} to the pending test list in key {stream_test_list_pending}"
526
+ )
527
+ filtered_test_files.append(test_file)
528
+
529
+ for test_file in filtered_test_files:
530
+ redis_containers = []
531
+ client_containers = []
532
+ with open(test_file, "r") as stream:
533
+ (
534
+ _,
535
+ benchmark_config,
536
+ test_name,
537
+ ) = get_final_benchmark_config(None, stream, "")
538
+ conn.lrem(stream_test_list_pending, 1, test_name)
539
+ conn.lpush(stream_test_list_running, test_name)
540
+ conn.expire(stream_test_list_running, REDIS_BINS_EXPIRE_SECS)
541
+ logging.info(
542
+ f"Added test named {test_name} to the pending test list in key {stream_test_list_running}"
543
+ )
488
544
  (
489
545
  _,
490
546
  _,
@@ -970,6 +1026,12 @@ def process_self_contained_coordinator_stream(
970
1026
 
971
1027
  overall_result &= test_result
972
1028
 
1029
+ conn.lrem(stream_test_list_running, 1, test_name)
1030
+ conn.lpush(stream_test_list_completed, test_name)
1031
+ conn.expire(stream_test_list_completed, REDIS_BINS_EXPIRE_SECS)
1032
+ logging.info(
1033
+ f"Added test named {test_name} to the completed test list in key {stream_test_list_completed}"
1034
+ )
973
1035
  else:
974
1036
  logging.error("Missing commit information within received message.")
975
1037
  except: