Skip to content

Commit 25e61f4

Browse files
Added --redis-7 flag to control if we include or not the redis 7 config directives (#362)
* Added --redis-7 flag to control if we include or not the redis 7 config directives * Bumping version to 0.9.6
1 parent 58a7111 commit 25e61f4

File tree

13 files changed

+213
-48
lines changed

13 files changed

+213
-48
lines changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "redisbench-admin"
3-
version = "0.9.5"
3+
version = "0.9.6"
44
description = "Redis benchmark run helper. A wrapper around Redis and Redis Modules benchmark tools ( ftsb_redisearch, memtier_benchmark, redis-benchmark, aibench, etc... )."
55
authors = ["filipecosta90 <filipecosta.90@gmail.com>","Redis Performance Group <performance@redis.com>"]
66
readme = "README.md"

redisbench_admin/environments/oss_cluster.py

Lines changed: 16 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,11 @@
99

1010
import redis
1111

12-
from redisbench_admin.utils.utils import wait_for_conn, redis_server_config_module_part
12+
from redisbench_admin.utils.utils import (
13+
wait_for_conn,
14+
redis_server_config_module_part,
15+
generate_common_server_args,
16+
)
1317

1418

1519
def spin_up_local_redis_cluster(
@@ -22,6 +26,7 @@ def spin_up_local_redis_cluster(
2226
configuration_parameters=None,
2327
dataset_load_timeout_secs=60,
2428
modules_configuration_parameters_map={},
29+
redis_7=True,
2530
):
2631
redis_processes = []
2732
redis_conns = []
@@ -41,6 +46,9 @@ def spin_up_local_redis_cluster(
4146
configuration_parameters,
4247
"no",
4348
modules_configuration_parameters_map,
49+
None,
50+
"yes",
51+
redis_7,
4452
)
4553

4654
logging.info(
@@ -147,41 +155,25 @@ def generate_cluster_redis_server_args(
147155
daemonize="yes",
148156
modules_configuration_parameters_map={},
149157
logname_prefix=None,
158+
enable_debug_command="yes",
159+
enable_redis_7_config_directives=False,
150160
):
151161
if logname_prefix is None:
152162
logname_prefix = ""
153163
logfile = "{}cluster-node-port-{}.log".format(logname_prefix, port)
154-
if type(binary) == list:
155-
command = binary
156-
else:
157-
command = [binary]
158-
# start redis-server
164+
dbfilename = get_cluster_dbfilename(port)
165+
166+
command = generate_common_server_args(
167+
binary, daemonize, dbdir, dbfilename, enable_debug_command, ip, logfile, port
168+
)
159169
command.extend(
160170
[
161-
"--appendonly",
162-
"no",
163-
"--logfile",
164-
logfile,
165171
"--cluster-enabled",
166172
"yes",
167-
"--daemonize",
168-
daemonize,
169-
"--dbfilename",
170-
get_cluster_dbfilename(port),
171-
"--protected-mode",
172-
"no",
173-
"--bind",
174-
"{}".format(ip),
175173
"--cluster-config-file",
176174
"cluster-node-port-{}.config".format(port),
177-
"--save",
178-
"",
179175
"--cluster-announce-ip",
180176
"{}".format(ip),
181-
"--port",
182-
"{}".format(port),
183-
"--dir",
184-
dbdir,
185177
]
186178
)
187179
if configuration_parameters is not None:

redisbench_admin/environments/oss_standalone.py

Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,11 @@
88

99
import redis
1010

11-
from redisbench_admin.utils.utils import wait_for_conn, redis_server_config_module_part
11+
from redisbench_admin.utils.utils import (
12+
wait_for_conn,
13+
redis_server_config_module_part,
14+
generate_common_server_args,
15+
)
1216

1317

1418
def spin_up_local_redis(
@@ -20,6 +24,7 @@ def spin_up_local_redis(
2024
dbdir_folder=None,
2125
dataset_load_timeout_secs=120,
2226
modules_configuration_parameters_map={},
27+
redis_7=True,
2328
):
2429
command = generate_standalone_redis_server_args(
2530
binary,
@@ -28,6 +33,9 @@ def spin_up_local_redis(
2833
port,
2934
configuration_parameters,
3035
modules_configuration_parameters_map,
36+
"yes",
37+
"yes",
38+
redis_7,
3139
)
3240

3341
logging.info(
@@ -49,22 +57,25 @@ def generate_standalone_redis_server_args(
4957
port,
5058
configuration_parameters=None,
5159
modules_configuration_parameters_map={},
60+
enable_debug_command="yes",
61+
daemonize="yes",
62+
enable_redis_7_config_directives=False,
5263
):
53-
if type(binary) == list:
54-
command = binary
55-
else:
56-
command = [binary]
57-
# start redis-server
58-
command.extend(
59-
[
60-
"--save",
61-
"",
62-
"--port",
63-
"{}".format(port),
64-
"--dir",
65-
dbdir,
66-
]
64+
logfile = "redis.log"
65+
dbfilename = "dump.rdb"
66+
ip = "127.0.0.1"
67+
command = generate_common_server_args(
68+
binary,
69+
daemonize,
70+
dbdir,
71+
dbfilename,
72+
enable_debug_command,
73+
ip,
74+
logfile,
75+
port,
76+
enable_redis_7_config_directives,
6777
)
78+
6879
if configuration_parameters is not None:
6980
for parameter, parameter_value in configuration_parameters.items():
7081
command.extend(

redisbench_admin/run/args.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
BENCHMARK_GLOB = os.getenv("BENCHMARK_GLOB", "*.yml")
2727
S3_BUCKET_NAME = os.getenv("S3_BUCKET_NAME", "ci.benchmarks.redislabs")
2828
PUSH_S3 = bool(os.getenv("PUSH_S3", False))
29+
REDIS_7 = bool(os.getenv("REDIS_7", True))
2930
FAIL_FAST = bool(int(os.getenv("FAIL_FAST", 0)))
3031
PROFILERS_DSO = os.getenv("PROFILERS_DSO", None)
3132
GIT_ORG = os.getenv("GIT_ORG", None)
@@ -117,6 +118,13 @@ def common_run_args(parser):
117118
+ "Full list of profilers: {}".format(ALLOWED_PROFILERS)
118119
+ "Only available on x86 Linux platform and kernel version >= 4.9",
119120
)
121+
parser.add_argument(
122+
"--redis-7",
123+
type=bool,
124+
default=REDIS_7,
125+
help="Include Redis 7 configuration directives.",
126+
)
127+
120128
parser.add_argument("--dso", type=str, required=False, default=PROFILERS_DSO)
121129
parser.add_argument(
122130
"--s3_bucket_name",

redisbench_admin/run/cluster.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ def spin_up_redis_cluster_remote_redis(
113113
ssh_port,
114114
modules_configuration_parameters_map,
115115
logname,
116+
redis_7=True,
116117
):
117118
logging.info("Generating the remote redis-server command arguments")
118119
redis_process_commands = []
@@ -131,6 +132,8 @@ def spin_up_redis_cluster_remote_redis(
131132
"yes",
132133
modules_configuration_parameters_map,
133134
logname_prefix,
135+
"yes",
136+
redis_7,
134137
)
135138
logging.error(
136139
"Remote primary shard {} command: {}".format(

redisbench_admin/run_local/local_db.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ def local_db_spin(
5050
# setup Redis
5151
# copy the rdb to DB machine
5252
temporary_dir = tempfile.mkdtemp()
53+
redis_7 = args.redis_7
5354
logging.info(
5455
"Using local temporary dir to spin up Redis Instance. Path: {}".format(
5556
temporary_dir
@@ -89,6 +90,7 @@ def local_db_spin(
8990
redis_configuration_parameters,
9091
dataset_load_timeout_secs,
9192
modules_configuration_parameters_map,
93+
redis_7,
9294
)
9395

9496
status = setup_redis_cluster_from_conns(
@@ -116,6 +118,7 @@ def local_db_spin(
116118
dbdir_folder,
117119
dataset_load_timeout_secs,
118120
modules_configuration_parameters_map,
121+
redis_7,
119122
)
120123

121124
r = redis.Redis(port=args.port)

redisbench_admin/run_remote/remote_db.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ def remote_db_spin(
8989
private_key,
9090
s3_bucket_name,
9191
s3_bucket_path,
92+
redis_7=True,
9293
):
9394
(
9495
_,
@@ -137,6 +138,7 @@ def remote_db_spin(
137138
db_ssh_port,
138139
modules_configuration_parameters_map,
139140
logname,
141+
redis_7,
140142
)
141143
try:
142144
for p in range(cluster_start_port, cluster_start_port + shard_count):
@@ -185,6 +187,7 @@ def remote_db_spin(
185187
redis_configuration_parameters,
186188
db_ssh_port,
187189
modules_configuration_parameters_map,
190+
redis_7,
188191
)
189192
full_logfiles.append(full_logfile)
190193
local_redis_conn, ssh_tunnel = ssh_tunnel_redisconn(

redisbench_admin/run_remote/standalone.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ def spin_up_standalone_remote_redis(
2525
redis_configuration_parameters=None,
2626
port=22,
2727
modules_configuration_parameters_map={},
28+
redis_7=True,
2829
):
2930

3031
full_logfile, initial_redis_cmd = generate_remote_standalone_redis_cmd(
@@ -33,6 +34,7 @@ def spin_up_standalone_remote_redis(
3334
remote_module_files,
3435
temporary_dir,
3536
modules_configuration_parameters_map,
37+
redis_7,
3638
)
3739

3840
# start redis-server
@@ -105,10 +107,14 @@ def generate_remote_standalone_redis_cmd(
105107
remote_module_files,
106108
temporary_dir,
107109
modules_configuration_parameters_map,
110+
enable_redis_7_config_directives=True,
111+
enable_debug_command="yes",
108112
):
109-
initial_redis_cmd = "redis-server --save '' --logfile {} --dir {} --daemonize yes --protected-mode no --enable-debug-command yes ".format(
113+
initial_redis_cmd = "redis-server --save '' --logfile {} --dir {} --daemonize yes --protected-mode no ".format(
110114
logfile, temporary_dir
111115
)
116+
if enable_redis_7_config_directives:
117+
initial_redis_cmd = +" --enable-debug-command {} ".format(enable_debug_command)
112118
full_logfile = "{}/{}".format(temporary_dir, logfile)
113119
if redis_configuration_parameters is not None:
114120
for (

redisbench_admin/utils/utils.py

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,54 @@ def redis_server_config_module_part(
5555
)
5656

5757

58+
def generate_common_server_args(
59+
binary,
60+
daemonize,
61+
dbdir,
62+
dbfilename,
63+
enable_debug_command,
64+
ip,
65+
logfile,
66+
port,
67+
enable_redis_7_config_directives=False,
68+
):
69+
if type(binary) == list:
70+
command = binary
71+
else:
72+
command = [binary]
73+
command.extend(
74+
[
75+
"--appendonly",
76+
"no",
77+
"--logfile",
78+
logfile,
79+
"--daemonize",
80+
daemonize,
81+
"--dbfilename",
82+
dbfilename,
83+
"--protected-mode",
84+
"no",
85+
"--bind",
86+
"{}".format(ip),
87+
"--save",
88+
"",
89+
"--port",
90+
"{}".format(port),
91+
"--dir",
92+
dbdir,
93+
]
94+
)
95+
if enable_redis_7_config_directives:
96+
command.extend(
97+
[
98+
"--enable-debug-command",
99+
enable_debug_command,
100+
]
101+
)
102+
103+
return command
104+
105+
58106
def upload_artifacts_to_s3(
59107
artifacts,
60108
s3_bucket_name,

0 commit comments

Comments
 (0)