redis-benchmarks-specification 0.1.72__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.
- redis_benchmarks_specification/__builder__/builder.py +2 -0
- redis_benchmarks_specification/__cli__/args.py +6 -0
- redis_benchmarks_specification/__cli__/cli.py +5 -1
- redis_benchmarks_specification/__compare__/__init__.py +5 -0
- redis_benchmarks_specification/__compare__/args.py +139 -0
- redis_benchmarks_specification/__compare__/compare.py +1153 -0
- redis_benchmarks_specification/__runner__/runner.py +120 -59
- redis_benchmarks_specification/__self_contained_coordinator__/self_contained_coordinator.py +21 -10
- redis_benchmarks_specification/test-suites/create-re-string.py +286 -0
- redis_benchmarks_specification/test-suites/generate.py +108 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hincrby.yml +1 -1
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-200KiB-values.yml +37 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-20KiB-values.yml +37 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-2MB-values.yml +37 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-200KiB.yml +33 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-20KiB.yml +33 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-2MB.yml +33 -0
- redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements-long-scores.yml +2 -2
- redis_benchmarks_specification/test-suites/my-new-test.yml +16 -0
- redis_benchmarks_specification/test-suites/string/memtier_benchmark-100Kkeys-load-string200c-with-20KiB-values-pipeline-10.yml +20 -0
- redis_benchmarks_specification/test-suites/string/memtier_benchmark-100Kkeys-load-string200c-with-20KiB-values.yml +20 -0
- redis_benchmarks_specification/test-suites/string/memtier_benchmark-100Kkeys-load-string50c-with-20KiB-values-pipeline-10.yml +20 -0
- redis_benchmarks_specification/test-suites/string/memtier_benchmark-100Kkeys-load-string50c-with-20KiB-values.yml +20 -0
- redis_benchmarks_specification/test-suites/string/memtier_benchmark-100Kkeys-string-setget200c-20KiB-pipeline-10.yml +26 -0
- redis_benchmarks_specification/test-suites/string/memtier_benchmark-100Kkeys-string-setget200c-20KiB.yml +26 -0
- redis_benchmarks_specification/test-suites/string/memtier_benchmark-100Kkeys-string-setget50c-20KiB-pipeline-10.yml +26 -0
- redis_benchmarks_specification/test-suites/string/memtier_benchmark-100Kkeys-string-setget50c-20KiB.yml +26 -0
- redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-load-string200c-with-100B-values-pipeline-10.yml +20 -0
- redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-load-string200c-with-100B-values.yml +20 -0
- redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-load-string200c-with-1KiB-values-pipeline-10.yml +20 -0
- redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-load-string200c-with-1KiB-values.yml +20 -0
- redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-load-string50c-with-100B-values-pipeline-10.yml +20 -0
- redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-load-string50c-with-100B-values.yml +20 -0
- redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-load-string50c-with-1KiB-values-pipeline-10.yml +20 -0
- redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-load-string50c-with-1KiB-values.yml +20 -0
- redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-string-mget-1KiB.yml +27 -0
- redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-string-setget200c-100B-pipeline-10.yml +26 -0
- redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-string-setget200c-100B.yml +26 -0
- redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-string-setget200c-1KiB-pipeline-10.yml +26 -0
- redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-string-setget200c-1KiB.yml +26 -0
- redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-string-setget50c-100B-pipeline-10.yml +26 -0
- redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-string-setget50c-100B.yml +26 -0
- redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-string-setget50c-1KiB-pipeline-10.yml +26 -0
- redis_benchmarks_specification/test-suites/string/memtier_benchmark-1Mkeys-string-setget50c-1KiB.yml +26 -0
- redis_benchmarks_specification/test-suites/template.txt +16 -0
- {redis_benchmarks_specification-0.1.72.dist-info → redis_benchmarks_specification-0.1.73.dist-info}/METADATA +2 -1
- {redis_benchmarks_specification-0.1.72.dist-info → redis_benchmarks_specification-0.1.73.dist-info}/RECORD +50 -12
- {redis_benchmarks_specification-0.1.72.dist-info → redis_benchmarks_specification-0.1.73.dist-info}/WHEEL +1 -1
- {redis_benchmarks_specification-0.1.72.dist-info → redis_benchmarks_specification-0.1.73.dist-info}/entry_points.txt +1 -0
- {redis_benchmarks_specification-0.1.72.dist-info → redis_benchmarks_specification-0.1.73.dist-info}/LICENSE +0 -0
|
@@ -358,7 +358,21 @@ def process_self_contained_coordinator_stream(
|
|
|
358
358
|
preserve_temporary_client_dirs=False,
|
|
359
359
|
resp_version=None,
|
|
360
360
|
override_memtier_test_time=0,
|
|
361
|
+
used_memory_check_fail=False,
|
|
361
362
|
):
|
|
363
|
+
def delete_temporary_files(
|
|
364
|
+
temporary_dir_client, full_result_path, benchmark_tool_global
|
|
365
|
+
):
|
|
366
|
+
if preserve_temporary_client_dirs is True:
|
|
367
|
+
logging.info(f"Preserving temporary client dir {temporary_dir_client}")
|
|
368
|
+
else:
|
|
369
|
+
if "redis-benchmark" in benchmark_tool_global:
|
|
370
|
+
if full_result_path is not None:
|
|
371
|
+
os.remove(full_result_path)
|
|
372
|
+
logging.info("Removing temporary JSON file")
|
|
373
|
+
shutil.rmtree(temporary_dir_client, ignore_errors=True)
|
|
374
|
+
logging.info(f"Removing temporary client dir {temporary_dir_client}")
|
|
375
|
+
|
|
362
376
|
overall_result = True
|
|
363
377
|
results_matrix = []
|
|
364
378
|
total_test_suite_runs = 0
|
|
@@ -507,6 +521,11 @@ def process_self_contained_coordinator_stream(
|
|
|
507
521
|
test_name, maxmemory, benchmark_required_memory
|
|
508
522
|
)
|
|
509
523
|
)
|
|
524
|
+
delete_temporary_files(
|
|
525
|
+
temporary_dir_client=temporary_dir_client,
|
|
526
|
+
full_result_path=None,
|
|
527
|
+
benchmark_tool_global=benchmark_tool_global,
|
|
528
|
+
)
|
|
510
529
|
continue
|
|
511
530
|
|
|
512
531
|
reset_commandstats(redis_conns)
|
|
@@ -543,6 +562,11 @@ def process_self_contained_coordinator_stream(
|
|
|
543
562
|
test_name, priority_upper_limit, priority
|
|
544
563
|
)
|
|
545
564
|
)
|
|
565
|
+
delete_temporary_files(
|
|
566
|
+
temporary_dir_client=temporary_dir_client,
|
|
567
|
+
full_result_path=None,
|
|
568
|
+
benchmark_tool_global=benchmark_tool_global,
|
|
569
|
+
)
|
|
546
570
|
continue
|
|
547
571
|
if priority < priority_lower_limit:
|
|
548
572
|
logging.warning(
|
|
@@ -550,6 +574,11 @@ def process_self_contained_coordinator_stream(
|
|
|
550
574
|
test_name, priority_lower_limit, priority
|
|
551
575
|
)
|
|
552
576
|
)
|
|
577
|
+
delete_temporary_files(
|
|
578
|
+
temporary_dir_client=temporary_dir_client,
|
|
579
|
+
full_result_path=None,
|
|
580
|
+
benchmark_tool_global=benchmark_tool_global,
|
|
581
|
+
)
|
|
553
582
|
continue
|
|
554
583
|
logging.info(
|
|
555
584
|
"Test {} priority ({}) is within the priority limit [{},{}]".format(
|
|
@@ -559,46 +588,61 @@ def process_self_contained_coordinator_stream(
|
|
|
559
588
|
priority_upper_limit,
|
|
560
589
|
)
|
|
561
590
|
)
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
591
|
+
if "dbconfig" in benchmark_config:
|
|
592
|
+
if "dataset" in benchmark_config["dbconfig"]:
|
|
593
|
+
if args.run_tests_with_dataset is False:
|
|
594
|
+
logging.warning(
|
|
595
|
+
"Skipping test {} giving it implies dataset preload".format(
|
|
596
|
+
test_name
|
|
597
|
+
)
|
|
568
598
|
)
|
|
569
|
-
|
|
570
|
-
|
|
599
|
+
delete_temporary_files(
|
|
600
|
+
temporary_dir_client=temporary_dir_client,
|
|
601
|
+
full_result_path=None,
|
|
602
|
+
benchmark_tool_global=benchmark_tool_global,
|
|
603
|
+
)
|
|
604
|
+
continue
|
|
571
605
|
|
|
572
606
|
if dry_run is True:
|
|
573
607
|
dry_run_count = dry_run_count + 1
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
benchmark_config,
|
|
579
|
-
benchmark_tool_workdir,
|
|
580
|
-
client_cpuset_cpus,
|
|
581
|
-
docker_client,
|
|
582
|
-
git_hash,
|
|
583
|
-
port,
|
|
584
|
-
temporary_dir_client,
|
|
585
|
-
test_name,
|
|
586
|
-
host,
|
|
587
|
-
tls_enabled,
|
|
588
|
-
tls_skip_verify,
|
|
589
|
-
test_tls_cert,
|
|
590
|
-
test_tls_key,
|
|
591
|
-
test_tls_cacert,
|
|
592
|
-
resp_version,
|
|
593
|
-
args.benchmark_local_install,
|
|
594
|
-
password,
|
|
595
|
-
oss_cluster_api_enabled,
|
|
608
|
+
delete_temporary_files(
|
|
609
|
+
temporary_dir_client=temporary_dir_client,
|
|
610
|
+
full_result_path=None,
|
|
611
|
+
benchmark_tool_global=benchmark_tool_global,
|
|
596
612
|
)
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
613
|
+
continue
|
|
614
|
+
if "dbconfig" in benchmark_config:
|
|
615
|
+
if "preload_tool" in benchmark_config["dbconfig"]:
|
|
616
|
+
res = data_prepopulation_step(
|
|
617
|
+
benchmark_config,
|
|
618
|
+
benchmark_tool_workdir,
|
|
619
|
+
client_cpuset_cpus,
|
|
620
|
+
docker_client,
|
|
621
|
+
git_hash,
|
|
622
|
+
port,
|
|
623
|
+
temporary_dir_client,
|
|
624
|
+
test_name,
|
|
625
|
+
host,
|
|
626
|
+
tls_enabled,
|
|
627
|
+
tls_skip_verify,
|
|
628
|
+
test_tls_cert,
|
|
629
|
+
test_tls_key,
|
|
630
|
+
test_tls_cacert,
|
|
631
|
+
resp_version,
|
|
632
|
+
args.benchmark_local_install,
|
|
633
|
+
password,
|
|
634
|
+
oss_cluster_api_enabled,
|
|
600
635
|
)
|
|
601
|
-
|
|
636
|
+
if res is False:
|
|
637
|
+
logging.warning(
|
|
638
|
+
"Skipping this test given preload result was false"
|
|
639
|
+
)
|
|
640
|
+
delete_temporary_files(
|
|
641
|
+
temporary_dir_client=temporary_dir_client,
|
|
642
|
+
full_result_path=None,
|
|
643
|
+
benchmark_tool_global=benchmark_tool_global,
|
|
644
|
+
)
|
|
645
|
+
continue
|
|
602
646
|
execute_init_commands(
|
|
603
647
|
benchmark_config, r, dbconfig_keyname="dbconfig"
|
|
604
648
|
)
|
|
@@ -608,6 +652,7 @@ def process_self_contained_coordinator_stream(
|
|
|
608
652
|
benchmark_required_memory,
|
|
609
653
|
redis_conns,
|
|
610
654
|
"start of benchmark",
|
|
655
|
+
used_memory_check_fail,
|
|
611
656
|
)
|
|
612
657
|
|
|
613
658
|
logging.info("Checking if there is a keyspace check being enforced")
|
|
@@ -618,6 +663,11 @@ def process_self_contained_coordinator_stream(
|
|
|
618
663
|
|
|
619
664
|
if dry_run_include_preload is True:
|
|
620
665
|
dry_run_count = dry_run_count + 1
|
|
666
|
+
delete_temporary_files(
|
|
667
|
+
temporary_dir_client=temporary_dir_client,
|
|
668
|
+
full_result_path=None,
|
|
669
|
+
benchmark_tool_global=benchmark_tool_global,
|
|
670
|
+
)
|
|
621
671
|
continue
|
|
622
672
|
|
|
623
673
|
benchmark_tool = extract_client_tool(benchmark_config)
|
|
@@ -692,6 +742,11 @@ def process_self_contained_coordinator_stream(
|
|
|
692
742
|
logging.warning(
|
|
693
743
|
"Forcing skip this test given there is an arbitrary commmand and memtier usage. Check https://github.com/RedisLabs/memtier_benchmark/pull/117 ."
|
|
694
744
|
)
|
|
745
|
+
delete_temporary_files(
|
|
746
|
+
temporary_dir_client=temporary_dir_client,
|
|
747
|
+
full_result_path=None,
|
|
748
|
+
benchmark_tool_global=benchmark_tool_global,
|
|
749
|
+
)
|
|
695
750
|
continue
|
|
696
751
|
|
|
697
752
|
client_container_image = extract_client_container_image(
|
|
@@ -789,6 +844,7 @@ def process_self_contained_coordinator_stream(
|
|
|
789
844
|
benchmark_required_memory,
|
|
790
845
|
redis_conns,
|
|
791
846
|
"end of benchmark",
|
|
847
|
+
used_memory_check_fail,
|
|
792
848
|
)
|
|
793
849
|
|
|
794
850
|
if args.flushall_on_every_test_end:
|
|
@@ -899,18 +955,11 @@ def process_self_contained_coordinator_stream(
|
|
|
899
955
|
shutil.copy(full_result_path, dest_fpath)
|
|
900
956
|
overall_result &= test_result
|
|
901
957
|
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
if "redis-benchmark" in benchmark_tool_global:
|
|
908
|
-
os.remove(full_result_path)
|
|
909
|
-
logging.info("Removing temporary JSON file")
|
|
910
|
-
shutil.rmtree(temporary_dir_client, ignore_errors=True)
|
|
911
|
-
logging.info(
|
|
912
|
-
f"Removing temporary client dir {temporary_dir_client}"
|
|
913
|
-
)
|
|
958
|
+
delete_temporary_files(
|
|
959
|
+
temporary_dir_client=temporary_dir_client,
|
|
960
|
+
full_result_path=full_result_path,
|
|
961
|
+
benchmark_tool_global=benchmark_tool_global,
|
|
962
|
+
)
|
|
914
963
|
|
|
915
964
|
table_name = "Results for entire test-suite"
|
|
916
965
|
results_matrix_headers = [
|
|
@@ -957,22 +1006,33 @@ def get_maxmemory(r):
|
|
|
957
1006
|
|
|
958
1007
|
def get_benchmark_required_memory(benchmark_config):
|
|
959
1008
|
benchmark_required_memory = 0
|
|
960
|
-
if "
|
|
961
|
-
resources
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
1009
|
+
if "dbconfig" in benchmark_config:
|
|
1010
|
+
if "resources" in benchmark_config["dbconfig"]:
|
|
1011
|
+
resources = benchmark_config["dbconfig"]["resources"]
|
|
1012
|
+
if "requests" in resources:
|
|
1013
|
+
resources_requests = benchmark_config["dbconfig"]["resources"][
|
|
1014
|
+
"requests"
|
|
1015
|
+
]
|
|
1016
|
+
if "memory" in resources_requests:
|
|
1017
|
+
benchmark_required_memory = resources_requests["memory"]
|
|
1018
|
+
benchmark_required_memory = int(
|
|
1019
|
+
parse_size(benchmark_required_memory)
|
|
1020
|
+
)
|
|
1021
|
+
logging.info(
|
|
1022
|
+
"Benchmark required memory: {} Bytes".format(
|
|
1023
|
+
benchmark_required_memory
|
|
1024
|
+
)
|
|
970
1025
|
)
|
|
971
|
-
)
|
|
972
1026
|
return benchmark_required_memory
|
|
973
1027
|
|
|
974
1028
|
|
|
975
|
-
def used_memory_check(
|
|
1029
|
+
def used_memory_check(
|
|
1030
|
+
test_name,
|
|
1031
|
+
benchmark_required_memory,
|
|
1032
|
+
redis_conns,
|
|
1033
|
+
stage,
|
|
1034
|
+
used_memory_check_fail=False,
|
|
1035
|
+
):
|
|
976
1036
|
used_memory = 0
|
|
977
1037
|
for conn in redis_conns:
|
|
978
1038
|
used_memory = used_memory + conn.info("memory")["used_memory"]
|
|
@@ -984,7 +1044,8 @@ def used_memory_check(test_name, benchmark_required_memory, redis_conns, stage):
|
|
|
984
1044
|
test_name, benchmark_required_memory, used_memory_gb
|
|
985
1045
|
)
|
|
986
1046
|
)
|
|
987
|
-
|
|
1047
|
+
if used_memory_check_fail:
|
|
1048
|
+
exit(1)
|
|
988
1049
|
|
|
989
1050
|
|
|
990
1051
|
def cp_to_workdir(benchmark_tool_workdir, srcfile):
|
|
@@ -433,7 +433,26 @@ def process_self_contained_coordinator_stream(
|
|
|
433
433
|
run_arch,
|
|
434
434
|
) = extract_build_info_from_streamdata(testDetails)
|
|
435
435
|
|
|
436
|
-
|
|
436
|
+
skip_test = False
|
|
437
|
+
if b"platform" in testDetails:
|
|
438
|
+
platform = testDetails[b"platform"]
|
|
439
|
+
if running_platform != platform:
|
|
440
|
+
skip_test = True
|
|
441
|
+
logging.info(
|
|
442
|
+
"skipping stream_id {} given plaform {}!={}".format(
|
|
443
|
+
stream_id, running_platform, platform
|
|
444
|
+
)
|
|
445
|
+
)
|
|
446
|
+
|
|
447
|
+
if run_arch != arch:
|
|
448
|
+
skip_test = True
|
|
449
|
+
logging.info(
|
|
450
|
+
"skipping stream_id {} given arch {}!={}".format(
|
|
451
|
+
stream_id, run_arch, arch
|
|
452
|
+
)
|
|
453
|
+
)
|
|
454
|
+
|
|
455
|
+
if skip_test is False:
|
|
437
456
|
overall_result = True
|
|
438
457
|
profiler_dashboard_links = []
|
|
439
458
|
if docker_air_gap:
|
|
@@ -912,9 +931,7 @@ def process_self_contained_coordinator_stream(
|
|
|
912
931
|
logging.critical("Printing redis container log....")
|
|
913
932
|
print("-" * 60)
|
|
914
933
|
print(
|
|
915
|
-
redis_container.logs(
|
|
916
|
-
stdout=True, stderr=True, logs=True
|
|
917
|
-
)
|
|
934
|
+
redis_container.logs(stdout=True, stderr=True)
|
|
918
935
|
)
|
|
919
936
|
print("-" * 60)
|
|
920
937
|
test_result = False
|
|
@@ -953,12 +970,6 @@ def process_self_contained_coordinator_stream(
|
|
|
953
970
|
|
|
954
971
|
overall_result &= test_result
|
|
955
972
|
|
|
956
|
-
else:
|
|
957
|
-
logging.info(
|
|
958
|
-
"skipping stream_id {} given arch {}!={}".format(
|
|
959
|
-
stream_id, run_arch, arch
|
|
960
|
-
)
|
|
961
|
-
)
|
|
962
973
|
else:
|
|
963
974
|
logging.error("Missing commit information within received message.")
|
|
964
975
|
except:
|
|
@@ -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)
|