redis-benchmarks-specification 0.1.70__py3-none-any.whl → 0.1.73__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 (55) hide show
  1. redis_benchmarks_specification/__builder__/builder.py +2 -0
  2. redis_benchmarks_specification/__cli__/args.py +6 -0
  3. redis_benchmarks_specification/__cli__/cli.py +5 -1
  4. redis_benchmarks_specification/__compare__/__init__.py +5 -0
  5. redis_benchmarks_specification/__compare__/args.py +139 -0
  6. redis_benchmarks_specification/__compare__/compare.py +1153 -0
  7. redis_benchmarks_specification/__runner__/runner.py +120 -59
  8. redis_benchmarks_specification/__self_contained_coordinator__/args.py +3 -0
  9. redis_benchmarks_specification/__self_contained_coordinator__/build_info.py +7 -0
  10. redis_benchmarks_specification/__self_contained_coordinator__/runners.py +1 -0
  11. redis_benchmarks_specification/__self_contained_coordinator__/self_contained_coordinator.py +472 -418
  12. redis_benchmarks_specification/test-suites/create-re-string.py +286 -0
  13. redis_benchmarks_specification/test-suites/generate.py +108 -0
  14. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hexists.yml +1 -1
  15. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hincrby.yml +2 -2
  16. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-200KiB-values.yml +37 -0
  17. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-20KiB-values.yml +37 -0
  18. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-2MB-values.yml +37 -0
  19. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-decr.yml +33 -0
  20. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-200KiB.yml +33 -0
  21. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-20KiB.yml +33 -0
  22. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-2MB.yml +33 -0
  23. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements-long-scores.yml +2 -2
  24. redis_benchmarks_specification/test-suites/my-new-test.yml +16 -0
  25. redis_benchmarks_specification/test-suites/string/memtier_benchmark-100Kkeys-load-string200c-with-20KiB-values-pipeline-10.yml +20 -0
  26. redis_benchmarks_specification/test-suites/string/memtier_benchmark-100Kkeys-load-string200c-with-20KiB-values.yml +20 -0
  27. redis_benchmarks_specification/test-suites/string/memtier_benchmark-100Kkeys-load-string50c-with-20KiB-values-pipeline-10.yml +20 -0
  28. redis_benchmarks_specification/test-suites/string/memtier_benchmark-100Kkeys-load-string50c-with-20KiB-values.yml +20 -0
  29. redis_benchmarks_specification/test-suites/string/memtier_benchmark-100Kkeys-string-setget200c-20KiB-pipeline-10.yml +26 -0
  30. redis_benchmarks_specification/test-suites/string/memtier_benchmark-100Kkeys-string-setget200c-20KiB.yml +26 -0
  31. redis_benchmarks_specification/test-suites/string/memtier_benchmark-100Kkeys-string-setget50c-20KiB-pipeline-10.yml +26 -0
  32. redis_benchmarks_specification/test-suites/string/memtier_benchmark-100Kkeys-string-setget50c-20KiB.yml +26 -0
  33. redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-load-string200c-with-100B-values-pipeline-10.yml +20 -0
  34. redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-load-string200c-with-100B-values.yml +20 -0
  35. redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-load-string200c-with-1KiB-values-pipeline-10.yml +20 -0
  36. redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-load-string200c-with-1KiB-values.yml +20 -0
  37. redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-load-string50c-with-100B-values-pipeline-10.yml +20 -0
  38. redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-load-string50c-with-100B-values.yml +20 -0
  39. redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-load-string50c-with-1KiB-values-pipeline-10.yml +20 -0
  40. redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-load-string50c-with-1KiB-values.yml +20 -0
  41. redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-string-mget-1KiB.yml +27 -0
  42. redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-string-setget200c-100B-pipeline-10.yml +26 -0
  43. redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-string-setget200c-100B.yml +26 -0
  44. redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-string-setget200c-1KiB-pipeline-10.yml +26 -0
  45. redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-string-setget200c-1KiB.yml +26 -0
  46. redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-string-setget50c-100B-pipeline-10.yml +26 -0
  47. redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-string-setget50c-100B.yml +26 -0
  48. redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-string-setget50c-1KiB-pipeline-10.yml +26 -0
  49. redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-string-setget50c-1KiB.yml +26 -0
  50. redis_benchmarks_specification/test-suites/template.txt +16 -0
  51. {redis_benchmarks_specification-0.1.70.dist-info → redis_benchmarks_specification-0.1.73.dist-info}/METADATA +3 -4
  52. {redis_benchmarks_specification-0.1.70.dist-info → redis_benchmarks_specification-0.1.73.dist-info}/RECORD +55 -16
  53. {redis_benchmarks_specification-0.1.70.dist-info → redis_benchmarks_specification-0.1.73.dist-info}/WHEEL +1 -1
  54. {redis_benchmarks_specification-0.1.70.dist-info → redis_benchmarks_specification-0.1.73.dist-info}/entry_points.txt +1 -0
  55. {redis_benchmarks_specification-0.1.70.dist-info → redis_benchmarks_specification-0.1.73.dist-info}/LICENSE +0 -0
@@ -0,0 +1,286 @@
1
+ tests = [
2
+ {
3
+ "name": "memtier_benchmark-100Kkeys-string-setget50c-20KiB",
4
+ "precommand": "--data-size 20000 --ratio 1:0 --key-pattern P:P -c 25 -t 2 --hide-histogram --key-minimum=1 --key-maximum=100000 -n allkeys",
5
+ "check": {"keyspacelen": 100000},
6
+ "command": "--data-size 20000 --ratio 1:10 --key-pattern R:R -c 25 -t 2 --hide-histogram --key-minimum=1 --key-maximum=100000 --test-time 180",
7
+ "kpis": {},
8
+ "tested-commands": ["setget-20k"],
9
+ "tested-groups": ["string"],
10
+ },
11
+ {
12
+ "name": "memtier_benchmark-100Kkeys-string-setget50c-20KiB-pipeline-10",
13
+ "precommand": "--data-size 20000 --ratio 1:0 --key-pattern P:P -c 25 -t 2 --hide-histogram --key-minimum=1 --key-maximum=100000 -n allkeys",
14
+ "check": {"keyspacelen": 100000},
15
+ "command": "--pipeline 10 --data-size 20000 --ratio 1:10 --key-pattern R:R -c 25 -t 2 --key-minimum=1 --key-maximum=100000 --hide-histogram --test-time 180",
16
+ "kpis": {},
17
+ "tested-commands": ["setget-20k"],
18
+ "tested-groups": ["string"],
19
+ },
20
+ {
21
+ "name": "memtier_benchmark-100Kkeys-string-setget200c-20KiB",
22
+ "precommand": "--data-size 20000 --ratio 1:0 --key-pattern P:P -c 50 -t 4 --hide-histogram --key-minimum=1 --key-maximum=100000 -n allkeys",
23
+ "check": {"keyspacelen": 100000},
24
+ "command": "--data-size 20000 --ratio 1:10 --key-pattern R:R -c 50 -t 4 --hide-histogram --key-minimum=1 --key-maximum=100000 --test-time 180",
25
+ "kpis": {},
26
+ "tested-commands": ["setget-20k"],
27
+ "tested-groups": ["string"],
28
+ },
29
+ {
30
+ "name": "memtier_benchmark-100Kkeys-string-setget200c-20KiB-pipeline-10",
31
+ "precommand": "--data-size 20000 --ratio 1:0 --key-pattern P:P -c 50 -t 4 --hide-histogram --key-minimum=1 --key-maximum=100000 -n allkeys",
32
+ "check": {"keyspacelen": 100000},
33
+ "command": "--pipeline 10 --data-size 20000 --ratio 1:10 --key-pattern R:R -c 50 -t 4 --key-minimum=1 --key-maximum=100000 --hide-histogram --test-time 180",
34
+ "kpis": {},
35
+ "tested-commands": ["setget-20k"],
36
+ "tested-groups": ["string"],
37
+ },
38
+ {
39
+ "name": "memtier_benchmark-100Kkeys-load-string50c-with-20KiB-values",
40
+ "precommand": "",
41
+ "check": {"keyspacelen": 0},
42
+ "command": "--data-size 20000 --ratio 1:0 --key-pattern P:P --key-minimum=1 --key-maximum=100000 --test-time 180 -c 25 -t 2 --hide-histogram",
43
+ "kpis": {},
44
+ "tested-commands": ["set-20k"],
45
+ "tested-groups": ["string"],
46
+ },
47
+ {
48
+ "name": "memtier_benchmark-100Kkeys-load-string50c-with-20KiB-values-pipeline-10",
49
+ "precommand": "",
50
+ "check": {"keyspacelen": 0},
51
+ "command": "--pipeline 10 --data-size 20000 --ratio 1:0 --key-pattern P:P --key-minimum=1 --key-maximum=100000 --test-time 180 -c 25 -t 2 --hide-histogram",
52
+ "kpis": {},
53
+ "tested-commands": ["set-20k"],
54
+ "tested-groups": ["string"],
55
+ },
56
+ {
57
+ "name": "memtier_benchmark-100Kkeys-load-string200c-with-20KiB-values",
58
+ "precommand": "",
59
+ "check": {"keyspacelen": 0},
60
+ "command": "--data-size 20000 --ratio 1:0 --key-pattern P:P --key-minimum=1 --key-maximum=100000 --test-time 180 -c 50 -t 4 --hide-histogram",
61
+ "kpis": {},
62
+ "tested-commands": ["set-20k"],
63
+ "tested-groups": ["string"],
64
+ },
65
+ {
66
+ "name": "memtier_benchmark-100Kkeys-load-string200c-with-20KiB-values-pipeline-10",
67
+ "precommand": "",
68
+ "check": {"keyspacelen": 0},
69
+ "command": "--pipeline 10 --data-size 20000 --ratio 1:0 --key-pattern P:P --key-minimum=1 --key-maximum=100000 --test-time 180 -c 50 -t 4 --hide-histogram",
70
+ "kpis": {},
71
+ "tested-commands": ["set-20k"],
72
+ "tested-groups": ["string"],
73
+ },
74
+ {
75
+ "name": "memtier_benchmark-1Mkeys-string-setget50c-100B",
76
+ "precommand": "--data-size 100 --ratio 1:0 --key-pattern P:P -c 25 -t 2 --hide-histogram --key-minimum=1 --key-maximum=1000000 -n allkeys",
77
+ "check": {"keyspacelen": 1000000},
78
+ "command": "--data-size 100 --ratio 1:10 --key-pattern R:R -c 25 -t 2 --hide-histogram --test-time 180",
79
+ "kpis": {},
80
+ "tested-commands": ["setget"],
81
+ "tested-groups": ["string"],
82
+ },
83
+ {
84
+ "name": "memtier_benchmark-1Mkeys-string-setget50c-1KiB",
85
+ "precommand": "--data-size 1000 --ratio 1:0 --key-pattern P:P -c 25 -t 2 --hide-histogram --key-minimum=1 --key-maximum=1000000 -n allkeys",
86
+ "check": {"keyspacelen": 1000000},
87
+ "command": "--data-size 1000 --ratio 1:10 --key-pattern R:R -c 25 -t 2 --hide-histogram --test-time 180",
88
+ "kpis": {},
89
+ "tested-commands": ["setget"],
90
+ "tested-groups": ["string"],
91
+ },
92
+ {
93
+ "name": "memtier_benchmark-1Mkeys-string-setget50c-100B-pipeline-10",
94
+ "precommand": "--data-size 100 --ratio 1:0 --key-pattern P:P -c 25 -t 2 --hide-histogram --key-minimum=1 --key-maximum=1000000 -n allkeys",
95
+ "check": {"keyspacelen": 1000000},
96
+ "command": "--pipeline 10 --data-size 100 --ratio 1:10 --key-pattern R:R -c 25 -t 2 --hide-histogram --test-time 180",
97
+ "kpis": {},
98
+ "tested-commands": ["setget"],
99
+ "tested-groups": ["string"],
100
+ },
101
+ {
102
+ "name": "memtier_benchmark-1Mkeys-string-setget50c-1KiB-pipeline-10",
103
+ "precommand": "--data-size 1000 --ratio 1:0 --key-pattern P:P -c 25 -t 2 --hide-histogram --key-minimum=1 --key-maximum=1000000 -n allkeys",
104
+ "check": {"keyspacelen": 1000000},
105
+ "command": "--pipeline 10 --data-size 1000 --ratio 1:10 --key-pattern R:R -c 25 -t 2 --hide-histogram --test-time 180",
106
+ "kpis": {},
107
+ "tested-commands": ["setget"],
108
+ "tested-groups": ["string"],
109
+ },
110
+ {
111
+ "name": "memtier_benchmark-1Mkeys-string-setget200c-100B",
112
+ "precommand": "--data-size 100 --ratio 1:0 --key-pattern P:P -c 50 -t 4 --hide-histogram --key-minimum=1 --key-maximum=1000000 -n allkeys",
113
+ "check": {"keyspacelen": 1000000},
114
+ "command": "--data-size 100 --ratio 1:10 --key-pattern R:R -c 50 -t 4 --hide-histogram --test-time 180",
115
+ "kpis": {},
116
+ "tested-commands": ["setget"],
117
+ "tested-groups": ["string"],
118
+ },
119
+ {
120
+ "name": "memtier_benchmark-1Mkeys-string-setget200c-1KiB",
121
+ "precommand": "--data-size 1000 --ratio 1:0 --key-pattern P:P -c 50 -t 4 --hide-histogram --key-minimum=1 --key-maximum=1000000 -n allkeys",
122
+ "check": {"keyspacelen": 1000000},
123
+ "command": "--data-size 1000 --ratio 1:10 --key-pattern R:R -c 50 -t 4 --hide-histogram --test-time 180",
124
+ "kpis": {},
125
+ "tested-commands": ["setget"],
126
+ "tested-groups": ["string"],
127
+ },
128
+ {
129
+ "name": "memtier_benchmark-1Mkeys-string-setget200c-100B-pipeline-10",
130
+ "precommand": "--data-size 100 --ratio 1:0 --key-pattern P:P -c 50 -t 4 --hide-histogram --key-minimum=1 --key-maximum=1000000 -n allkeys",
131
+ "check": {"keyspacelen": 1000000},
132
+ "command": "--pipeline 10 --data-size 100 --ratio 1:10 --key-pattern R:R -c 50 -t 4 --hide-histogram --test-time 180",
133
+ "kpis": {},
134
+ "tested-commands": ["setget"],
135
+ "tested-groups": ["string"],
136
+ },
137
+ {
138
+ "name": "memtier_benchmark-1Mkeys-string-setget200c-1KiB-pipeline-10",
139
+ "precommand": "--data-size 1000 --ratio 1:0 --key-pattern P:P -c 50 -t 4 --hide-histogram --key-minimum=1 --key-maximum=1000000 -n allkeys",
140
+ "check": {"keyspacelen": 1000000},
141
+ "command": "--pipeline 10 --data-size 1000 --ratio 1:10 --key-pattern R:R -c 50 -t 4 --hide-histogram --test-time 180",
142
+ "kpis": {},
143
+ "tested-commands": ["setget"],
144
+ "tested-groups": ["string"],
145
+ },
146
+ {
147
+ "name": "memtier_benchmark-1Mkeys-load-string50c-with-100B-values",
148
+ "precommand": "",
149
+ "check": {"keyspacelen": 0},
150
+ "command": "--data-size 100 --ratio 1:0 --key-pattern P:P --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 25 -t 2 --hide-histogram",
151
+ "kpis": {},
152
+ "tested-commands": ["set"],
153
+ "tested-groups": ["string"],
154
+ },
155
+ {
156
+ "name": "memtier_benchmark-1Mkeys-load-string50c-with-1KiB-values",
157
+ "precommand": "",
158
+ "check": {"keyspacelen": 0},
159
+ "command": "--data-size 1000 --ratio 1:0 --key-pattern P:P --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 25 -t 2 --hide-histogram",
160
+ "kpis": {},
161
+ "tested-commands": ["set"],
162
+ "tested-groups": ["string"],
163
+ },
164
+ {
165
+ "name": "memtier_benchmark-1Mkeys-load-string50c-with-100B-values-pipeline-10",
166
+ "precommand": "",
167
+ "check": {"keyspacelen": 0},
168
+ "command": "--pipeline 10 --data-size 100 --ratio 1:0 --key-pattern P:P --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 25 -t 2 --hide-histogram",
169
+ "kpis": {},
170
+ "tested-commands": ["set"],
171
+ "tested-groups": ["string"],
172
+ },
173
+ {
174
+ "name": "memtier_benchmark-1Mkeys-load-string50c-with-1KiB-values-pipeline-10",
175
+ "precommand": "",
176
+ "check": {"keyspacelen": 0},
177
+ "command": "--pipeline 10 --data-size 1000 --ratio 1:0 --key-pattern P:P --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 25 -t 2 --hide-histogram",
178
+ "kpis": {},
179
+ "tested-commands": ["set"],
180
+ "tested-groups": ["string"],
181
+ },
182
+ {
183
+ "name": "memtier_benchmark-1Mkeys-load-string200c-with-100B-values",
184
+ "precommand": "",
185
+ "check": {"keyspacelen": 0},
186
+ "command": "--data-size 100 --ratio 1:0 --key-pattern P:P --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 50 -t 4 --hide-histogram",
187
+ "kpis": {},
188
+ "tested-commands": ["set"],
189
+ "tested-groups": ["string"],
190
+ },
191
+ {
192
+ "name": "memtier_benchmark-1Mkeys-load-string200c-with-1KiB-values",
193
+ "precommand": "",
194
+ "check": {"keyspacelen": 0},
195
+ "command": "--data-size 1000 --ratio 1:0 --key-pattern P:P --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 50 -t 4 --hide-histogram",
196
+ "kpis": {},
197
+ "tested-commands": ["set"],
198
+ "tested-groups": ["string"],
199
+ },
200
+ {
201
+ "name": "memtier_benchmark-1Mkeys-load-string200c-with-100B-values-pipeline-10",
202
+ "precommand": "",
203
+ "check": {"keyspacelen": 0},
204
+ "command": "--pipeline 10 --data-size 100 --ratio 1:0 --key-pattern P:P --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 50 -t 4 --hide-histogram",
205
+ "kpis": {},
206
+ "tested-commands": ["set"],
207
+ "tested-groups": ["string"],
208
+ },
209
+ {
210
+ "name": "memtier_benchmark-1Mkeys-load-string200c-with-1KiB-values-pipeline-10",
211
+ "precommand": "",
212
+ "check": {"keyspacelen": 0},
213
+ "command": "--pipeline 10 --data-size 1000 --ratio 1:0 --key-pattern P:P --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 50 -t 4 --hide-histogram",
214
+ "kpis": {},
215
+ "tested-commands": ["set"],
216
+ "tested-groups": ["string"],
217
+ },
218
+ {
219
+ "name": "memtier_benchmark-1Mkeys-string-mget-1KiB",
220
+ "precommand": "--data-size 1000 --key-minimum=1 --key-maximum 1000000 -n allkeys --ratio=1:0 --key-pattern P:P --hide-histogram -t 2 -c 100",
221
+ "check": {"keyspacelen": 1000000},
222
+ "command": ' --command="MGET __key__ memtier-1 memtier-2 memtier-3 memtier-4 memtier-5 memtier-6 memtier-7 memtier-8 memtier-9" --command-key-pattern=R -c 50 -t 2 --hide-histogram --test-time 180',
223
+ "kpis": {},
224
+ "tested-commands": ["mget"],
225
+ "tested-groups": ["string"],
226
+ },
227
+ ]
228
+
229
+ print(len(tests))
230
+ re_filenames = [x["name"] for x in tests]
231
+ re_test_specs = {}
232
+ for x in tests:
233
+ re_test_specs[x["name"]] = x
234
+
235
+ import yaml
236
+ import json
237
+ import pathlib
238
+
239
+
240
+ defaults_filename = "default.yml"
241
+ prefix = "memtier_benchmark-"
242
+ test_glob = "memtier_*.yml"
243
+ files = pathlib.Path().glob(test_glob)
244
+ files = [str(x) for x in files]
245
+
246
+ base_yaml = yaml.safe_load(open("memtier_benchmark-1Mkeys-string-get-1KiB.yml"))
247
+ del base_yaml["description"]
248
+ # del base_yaml["clientconfig"]["resources"]
249
+ # del base_yaml["build-variants"]
250
+ # del base_yaml["priority"]
251
+ # del base_yaml["redis-topologies"]
252
+ # del base_yaml["tested-commands"]
253
+ # del base_yaml["version"]
254
+ # del base_yaml["tested-groups"]
255
+ #
256
+
257
+
258
+ #
259
+ # for file in files:
260
+ # if defaults_filename in file:
261
+ # files.remove(file)
262
+
263
+ for re_file in re_filenames:
264
+ re_spec = re_test_specs[re_file]
265
+ precommand = ""
266
+ if "precommand" in re_spec:
267
+ precommand = re_spec["precommand"]
268
+
269
+ command = ""
270
+ if "command" in re_spec:
271
+ command = re_spec["command"]
272
+ if "dbconfig" in base_yaml:
273
+ del base_yaml["dbconfig"]
274
+ if precommand != "":
275
+ base_yaml["dbconfig"] = {}
276
+ base_yaml["dbconfig"]["preload_tool"] = {}
277
+ base_yaml["dbconfig"]["preload_tool"][
278
+ "run_image"
279
+ ] = "redislabs/memtier_benchmark:edge"
280
+ base_yaml["dbconfig"]["preload_tool"]["tool"] = "memtier_benchmark"
281
+ base_yaml["dbconfig"]["preload_tool"]["arguments"] = f"{precommand}"
282
+
283
+ base_yaml["clientconfig"]["arguments"] = command
284
+ base_yaml["name"] = re_file
285
+ with open(f"re-string/{re_file}.yml", "w") as outfile:
286
+ yaml.dump(base_yaml, outfile)
@@ -0,0 +1,108 @@
1
+ import yaml
2
+ import json
3
+ import pathlib
4
+
5
+ expected_format = {
6
+ "name": "HSet_d_400_c_10_t_10_pipeline_10_key-max=1000000",
7
+ "precommand": "",
8
+ "check": {"keyspacelen": 0},
9
+ "command": '--command="HSET myhash2 __key__ __data__" --command-key-pattern=G --key-minimum=1 --key-maximum 1000000 d 400 -c 10 -t 10 --hide-histogram --pipeline=10 --test-time=100',
10
+ "kpis": {
11
+ "tls": {"ops": 1003694, "latency": 1, "kbs": 89188},
12
+ "default": {"ops": 932625, "latency": 1.1, "kbs": 82873},
13
+ },
14
+ "tested-commands": ["hset"],
15
+ "tested-groups": ["hash"],
16
+ "comparison": {"max_variance_percent": 2.0},
17
+ }
18
+ defaults_filename = "default.yml"
19
+ prefix = "memtier_benchmark-"
20
+ test_glob = "memtier_*.yml"
21
+ files = pathlib.Path().glob(test_glob)
22
+ files = [str(x) for x in files]
23
+
24
+ for file in files:
25
+ if defaults_filename in file:
26
+ files.remove(file)
27
+
28
+
29
+ print(len(files))
30
+
31
+ rdb_counter = 0
32
+ init_commands_counter = 0
33
+ can_convert_counter = 0
34
+
35
+ group_tests = {}
36
+ counter_groups = {}
37
+ final_enterprise_json = []
38
+ for yml_filename in files:
39
+ with open(yml_filename, "r") as yml_file:
40
+ benchmark_config = yaml.safe_load(yml_file)
41
+ tested_commands = benchmark_config["tested-commands"]
42
+ name = benchmark_config["name"]
43
+ tested_groups = benchmark_config["tested-groups"]
44
+ contains_db_config = False
45
+ contains_init_commands = False
46
+ contains_rdb = False
47
+ dbconfig = {}
48
+ precommand = ""
49
+ if "dbconfig" in benchmark_config:
50
+ dbconfig = benchmark_config["dbconfig"]
51
+ contains_db_config = True
52
+ if "init_commands" in benchmark_config["dbconfig"]:
53
+ contains_init_commands = True
54
+ if "dataset" in benchmark_config["dbconfig"]:
55
+ contains_rdb = True
56
+
57
+ if contains_rdb:
58
+ rdb_counter = rdb_counter + 1
59
+ elif contains_init_commands:
60
+ init_commands_counter = init_commands_counter + 1
61
+ else:
62
+ can_convert_counter = can_convert_counter + 1
63
+
64
+ if (
65
+ contains_db_config
66
+ and contains_rdb is False
67
+ and contains_init_commands is False
68
+ ):
69
+ keyspace_check = False
70
+ keyspace_value = 0
71
+
72
+ if "check" in dbconfig:
73
+ if "keyspacelen" in dbconfig["check"]:
74
+ keyspace_check = True
75
+ keyspace_value = dbconfig["check"]["keyspacelen"]
76
+ if "preload_tool" in dbconfig:
77
+ precommand = dbconfig["preload_tool"]["arguments"]
78
+ command = benchmark_config["clientconfig"]["arguments"]
79
+ check_dict = {"keyspacelen": keyspace_value}
80
+
81
+ test_definition = {
82
+ "name": name,
83
+ "precommand": f"{precommand}",
84
+ "check": check_dict,
85
+ "command": f"{command}",
86
+ "kpis": {},
87
+ "tested-commands": tested_commands,
88
+ "tested-groups": tested_groups,
89
+ }
90
+ for tested_group in tested_groups:
91
+ if tested_group not in group_tests:
92
+ group_tests[tested_group] = []
93
+ group_tests[tested_group].append(test_definition)
94
+ if tested_group not in counter_groups:
95
+ counter_groups[tested_group] = 0
96
+ counter_groups[tested_group] = counter_groups[tested_group] + 1
97
+ final_enterprise_json.append(test_definition)
98
+
99
+ print(f"RDB tests {rdb_counter}")
100
+ print(f"INIT command tests {init_commands_counter}")
101
+ print(f"Other tests {can_convert_counter}")
102
+ print(f"Final Enterprise tests {len(final_enterprise_json)}")
103
+
104
+ print(counter_groups)
105
+
106
+ for tested_group, tests in group_tests.items():
107
+ with open(f"jsons/{tested_group}.json", "w") as json_fd:
108
+ json.dump(tests, json_fd)
@@ -1,5 +1,5 @@
1
1
  version: 0.4
2
- name: memtier_benchmark-1Mkeys-lhash-hexists
2
+ name: memtier_benchmark-1Mkeys-hash-hexists
3
3
  description: Runs memtier_benchmark, for a keyspace length of 1M keys loading HASHES with 5 fields each. Each field value has a data size of 100 Bytes. After loading test HEXISTS command.
4
4
  dbconfig:
5
5
  configuration-parameters:
@@ -1,5 +1,5 @@
1
1
  version: 0.4
2
- name: memtier_benchmark-1Mkeys-lhash-hincbry
2
+ name: memtier_benchmark-1Mkeys-hash-hincrby
3
3
  description: Runs memtier_benchmark, for a keyspace length of 1M keys loading HASHES with 5 fields each. Each field value has a data size of 1000 Bytes.
4
4
  dbconfig:
5
5
  configuration-parameters:
@@ -9,7 +9,7 @@ dbconfig:
9
9
  preload_tool:
10
10
  run_image: redislabs/memtier_benchmark:edge
11
11
  tool: memtier_benchmark
12
- arguments: '"--data-size" "1000" --command "HSET __key__ field1 __data__ field2 __data__ field3 __data__ field4 __data__ field5 __data__" --command-key-pattern="P" --key-minimum=1 --key-maximum 10000000 -n 5000 -c 50 -t 4 --hide-histogram'
12
+ arguments: '"--data-size" "1000" --command "HSET __key__ field1 __data__ field2 __data__ field3 __data__ field4 __data__ field5 __data__" --command-key-pattern="P" --key-minimum=1 --key-maximum 1000000 -n 5000 -c 50 -t 4 --hide-histogram'
13
13
  resources:
14
14
  requests:
15
15
  memory: 6g
@@ -0,0 +1,37 @@
1
+ version: 0.4
2
+ name: memtier_benchmark-1Mkeys-load-string-with-200KiB-values
3
+ description: Runs memtier_benchmark, for a keyspace length of 1M keys loading STRINGs in which the value has a data size of 200K Bytes.
4
+ dbconfig:
5
+ configuration-parameters:
6
+ save: '""'
7
+ check:
8
+ keyspacelen: 0
9
+ resources:
10
+ requests:
11
+ memory: 12g
12
+ tested-commands:
13
+ - set
14
+ redis-topologies:
15
+ - oss-standalone
16
+ - oss-cluster-03-primaries
17
+ - oss-cluster-05-primaries
18
+ - oss-cluster-09-primaries
19
+ - oss-cluster-15-primaries
20
+ - oss-cluster-21-primaries
21
+ build-variants:
22
+ - gcc:8.5.0-amd64-debian-buster-default
23
+ clientconfig:
24
+ run_image: redislabs/memtier_benchmark:edge
25
+ tool: memtier_benchmark
26
+ arguments: '"--data-size" "200000" --ratio 1:0 --key-pattern P:P --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 50 -t 4 --hide-histogram'
27
+ resources:
28
+ requests:
29
+ cpus: '4'
30
+ memory: 2g
31
+ scalability:
32
+ mode: '1:1'
33
+ max_processes: 21
34
+
35
+ tested-groups:
36
+ - string
37
+ priority: 17
@@ -0,0 +1,37 @@
1
+ version: 0.4
2
+ name: memtier_benchmark-1Mkeys-load-string-with-20KiB-values
3
+ description: Runs memtier_benchmark, for a keyspace length of 1M keys loading STRINGs in which the value has a data size of 20K Bytes.
4
+ dbconfig:
5
+ configuration-parameters:
6
+ save: '""'
7
+ check:
8
+ keyspacelen: 0
9
+ resources:
10
+ requests:
11
+ memory: 12g
12
+ tested-commands:
13
+ - set
14
+ redis-topologies:
15
+ - oss-standalone
16
+ - oss-cluster-03-primaries
17
+ - oss-cluster-05-primaries
18
+ - oss-cluster-09-primaries
19
+ - oss-cluster-15-primaries
20
+ - oss-cluster-21-primaries
21
+ build-variants:
22
+ - gcc:8.5.0-amd64-debian-buster-default
23
+ clientconfig:
24
+ run_image: redislabs/memtier_benchmark:edge
25
+ tool: memtier_benchmark
26
+ arguments: '"--data-size" "20000" --ratio 1:0 --key-pattern P:P --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 50 -t 4 --hide-histogram'
27
+ resources:
28
+ requests:
29
+ cpus: '4'
30
+ memory: 2g
31
+ scalability:
32
+ mode: '1:1'
33
+ max_processes: 21
34
+
35
+ tested-groups:
36
+ - string
37
+ priority: 17
@@ -0,0 +1,37 @@
1
+ version: 0.4
2
+ name: memtier_benchmark-1Mkeys-load-string-with-2MB-values
3
+ description: Runs memtier_benchmark, for a keyspace length of 1M keys loading STRINGs in which the value has a data size of 2M Bytes.
4
+ dbconfig:
5
+ configuration-parameters:
6
+ save: '""'
7
+ check:
8
+ keyspacelen: 0
9
+ resources:
10
+ requests:
11
+ memory: 12g
12
+ tested-commands:
13
+ - set
14
+ redis-topologies:
15
+ - oss-standalone
16
+ - oss-cluster-03-primaries
17
+ - oss-cluster-05-primaries
18
+ - oss-cluster-09-primaries
19
+ - oss-cluster-15-primaries
20
+ - oss-cluster-21-primaries
21
+ build-variants:
22
+ - gcc:8.5.0-amd64-debian-buster-default
23
+ clientconfig:
24
+ run_image: redislabs/memtier_benchmark:edge
25
+ tool: memtier_benchmark
26
+ arguments: '"--data-size" "2000000" --ratio 1:0 --key-pattern P:P --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 50 -t 4 --hide-histogram'
27
+ resources:
28
+ requests:
29
+ cpus: '4'
30
+ memory: 2g
31
+ scalability:
32
+ mode: '1:1'
33
+ max_processes: 21
34
+
35
+ tested-groups:
36
+ - string
37
+ priority: 17
@@ -0,0 +1,33 @@
1
+ version: 0.4
2
+ name: memtier_benchmark-1Mkeys-string-decr
3
+ description: Runs memtier_benchmark, for a keyspace length of 1M keys testing use embedded string object encoding on the string and doing decr command.
4
+ dbconfig:
5
+ configuration-parameters:
6
+ save: '""'
7
+ check:
8
+ keyspacelen: 1000000
9
+ preload_tool:
10
+ run_image: redislabs/memtier_benchmark:edge
11
+ tool: memtier_benchmark
12
+ arguments: ' --command "SET __key__ 9223372036854775807" --command-key-pattern="P" -n 5000 --key-minimum=1 --key-maximum 1000000 -c 50 -t 4 --hide-histogram'
13
+ resources:
14
+ requests:
15
+ memory: 1g
16
+ tested-commands:
17
+ - decr
18
+ redis-topologies:
19
+ - oss-standalone
20
+ build-variants:
21
+ - gcc:8.5.0-amd64-debian-buster-default
22
+ clientconfig:
23
+ run_image: redislabs/memtier_benchmark:edge
24
+ tool: memtier_benchmark
25
+ arguments: --test-time 180 --command "DECR __key__" --command-key-pattern="R" --key-minimum=1 --key-maximum 1000000 -c 4 -t 4 --hide-histogram
26
+ resources:
27
+ requests:
28
+ cpus: '4'
29
+ memory: 2g
30
+
31
+ tested-groups:
32
+ - string
33
+ priority: 98
@@ -0,0 +1,33 @@
1
+ version: 0.4
2
+ name: memtier_benchmark-1Mkeys-string-get-200KiB
3
+ description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data size of 200000 Bytes for each key.
4
+ dbconfig:
5
+ configuration-parameters:
6
+ save: '""'
7
+ check:
8
+ keyspacelen: 1000000
9
+ preload_tool:
10
+ run_image: redislabs/memtier_benchmark:edge
11
+ tool: memtier_benchmark
12
+ arguments: '"--data-size" "200000" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1"'
13
+ resources:
14
+ requests:
15
+ memory: 2g
16
+ tested-commands:
17
+ - get
18
+ redis-topologies:
19
+ - oss-standalone
20
+ build-variants:
21
+ - gcc:8.5.0-amd64-debian-buster-default
22
+ clientconfig:
23
+ run_image: redislabs/memtier_benchmark:edge
24
+ tool: memtier_benchmark
25
+ arguments: --data-size 200000 --ratio 0:1 --key-pattern R:R -c 25 -t 4 --hide-histogram --test-time 180
26
+ resources:
27
+ requests:
28
+ cpus: '4'
29
+ memory: 2g
30
+
31
+ tested-groups:
32
+ - string
33
+ priority: 1
@@ -0,0 +1,33 @@
1
+ version: 0.4
2
+ name: memtier_benchmark-1Mkeys-string-get-20KiB
3
+ description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data size of 20000 Bytes for each key.
4
+ dbconfig:
5
+ configuration-parameters:
6
+ save: '""'
7
+ check:
8
+ keyspacelen: 1000000
9
+ preload_tool:
10
+ run_image: redislabs/memtier_benchmark:edge
11
+ tool: memtier_benchmark
12
+ arguments: '"--data-size" "20000" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1"'
13
+ resources:
14
+ requests:
15
+ memory: 2g
16
+ tested-commands:
17
+ - get
18
+ redis-topologies:
19
+ - oss-standalone
20
+ build-variants:
21
+ - gcc:8.5.0-amd64-debian-buster-default
22
+ clientconfig:
23
+ run_image: redislabs/memtier_benchmark:edge
24
+ tool: memtier_benchmark
25
+ arguments: --data-size 20000 --ratio 0:1 --key-pattern R:R -c 25 -t 4 --hide-histogram --test-time 180
26
+ resources:
27
+ requests:
28
+ cpus: '4'
29
+ memory: 2g
30
+
31
+ tested-groups:
32
+ - string
33
+ priority: 1
@@ -0,0 +1,33 @@
1
+ version: 0.4
2
+ name: memtier_benchmark-1Mkeys-string-get-2MB
3
+ description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data size of 2000000 Bytes for each key.
4
+ dbconfig:
5
+ configuration-parameters:
6
+ save: '""'
7
+ check:
8
+ keyspacelen: 1000000
9
+ preload_tool:
10
+ run_image: redislabs/memtier_benchmark:edge
11
+ tool: memtier_benchmark
12
+ arguments: '"--data-size" "2000000" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1"'
13
+ resources:
14
+ requests:
15
+ memory: 2g
16
+ tested-commands:
17
+ - get
18
+ redis-topologies:
19
+ - oss-standalone
20
+ build-variants:
21
+ - gcc:8.5.0-amd64-debian-buster-default
22
+ clientconfig:
23
+ run_image: redislabs/memtier_benchmark:edge
24
+ tool: memtier_benchmark
25
+ arguments: --data-size 2000000 --ratio 0:1 --key-pattern R:R -c 25 -t 4 --hide-histogram --test-time 180
26
+ resources:
27
+ requests:
28
+ cpus: '4'
29
+ memory: 2g
30
+
31
+ tested-groups:
32
+ - string
33
+ priority: 1