5
5
from mbdirector .runner import RunConfig
6
6
7
7
8
+ def test_preload_and_set_get (env ):
9
+ key_max = 500000
10
+ key_min = 1
11
+ benchmark_specs = {"name" : env .testName , "args" : ['--pipeline=10' ,'--ratio=1:0' ,'--key-pattern=P:P' ,'--key-minimum={}' .format (key_min ),'--key-maximum={}' .format (key_max )]}
12
+ addTLSArgs (benchmark_specs , env )
13
+ config = get_default_memtier_config (threads = 2 , clients = 10 , requests = 'allkeys' )
14
+ master_nodes_list = env .getMasterNodesList ()
15
+ overall_expected_request_count = get_expected_request_count (config ,key_min , key_max )
16
+
17
+ add_required_env_arguments (benchmark_specs , config , env , master_nodes_list )
18
+
19
+ # Create a temporary directory
20
+ test_dir = tempfile .mkdtemp ()
21
+
22
+ config = RunConfig (test_dir , env .testName , config , {})
23
+ ensure_clean_benchmark_folder (config .results_dir )
24
+
25
+ benchmark = Benchmark .from_json (config , benchmark_specs )
26
+
27
+ # benchmark.run() returns True if the return code of memtier_benchmark was 0
28
+ memtier_ok = benchmark .run ()
29
+ debugPrintMemtierOnError (config , env , memtier_ok )
30
+
31
+ master_nodes_connections = env .getOSSMasterNodesConnectionList ()
32
+ merged_command_stats = {'cmdstat_set' : {'calls' : 0 }, 'cmdstat_get' : {'calls' : 0 }}
33
+ assert_keyspace_range (env , key_max , key_min , master_nodes_connections )
34
+
35
+ overall_request_count = agg_info_commandstats (master_nodes_connections , merged_command_stats )
36
+ assert_minimum_memtier_outcomes (config , env , memtier_ok , merged_command_stats , overall_expected_request_count ,
37
+ overall_request_count )
38
+ json_filename = '{0}/mb.json' .format (config .results_dir )
39
+
40
+ for master_connection in master_nodes_connections :
41
+ master_connection .execute_command ("CONFIG" , "RESETSTAT" )
42
+
43
+ benchmark_specs = {"name" : env .testName , "args" : ['--pipeline=10' ,'--ratio=1:1' ,'--key-pattern=R:R' ,'--key-minimum={}' .format (key_min ),'--key-maximum={}' .format (key_max )]}
44
+ addTLSArgs (benchmark_specs , env )
45
+ config = get_default_memtier_config (threads = 2 , clients = 10 , requests = 200000 )
46
+ master_nodes_list = env .getMasterNodesList ()
47
+ overall_expected_request_count = get_expected_request_count (config ,key_min , key_max )
48
+
49
+ add_required_env_arguments (benchmark_specs , config , env , master_nodes_list )
50
+
51
+ # Create a temporary directory
52
+ test_dir = tempfile .mkdtemp ()
53
+
54
+ config = RunConfig (test_dir , env .testName , config , {})
55
+ ensure_clean_benchmark_folder (config .results_dir )
56
+
57
+ benchmark = Benchmark .from_json (config , benchmark_specs )
58
+
59
+ # benchmark.run() returns True if the return code of memtier_benchmark was 0
60
+ memtier_ok = benchmark .run ()
61
+ debugPrintMemtierOnError (config , env , memtier_ok )
62
+
63
+ merged_command_stats = {'cmdstat_set' : {'calls' : 0 }, 'cmdstat_get' : {'calls' : 0 }}
64
+ assert_keyspace_range (env , key_max , key_min , master_nodes_connections )
65
+
66
+ overall_request_count = agg_info_commandstats (master_nodes_connections , merged_command_stats )
67
+ assert_minimum_memtier_outcomes (config , env , memtier_ok , merged_command_stats , overall_expected_request_count ,
68
+ overall_request_count )
69
+ json_filename = '{0}/mb.json' .format (config .results_dir )
70
+
71
+
72
+ def test_default_set (env ):
73
+ key_max = 500000
74
+ key_min = 1
75
+ benchmark_specs = {"name" : env .testName , "args" : ['--pipeline=10' ,'--ratio=1:0' ,'--key-pattern=P:P' ,'--key-minimum={}' .format (key_min ),'--key-maximum={}' .format (key_max )]}
76
+ addTLSArgs (benchmark_specs , env )
77
+ config = get_default_memtier_config (threads = 2 , clients = 10 , requests = 'allkeys' )
78
+ master_nodes_list = env .getMasterNodesList ()
79
+ overall_expected_request_count = get_expected_request_count (config ,key_min , key_max )
80
+
81
+ add_required_env_arguments (benchmark_specs , config , env , master_nodes_list )
82
+
83
+ # Create a temporary directory
84
+ test_dir = tempfile .mkdtemp ()
85
+
86
+ config = RunConfig (test_dir , env .testName , config , {})
87
+ ensure_clean_benchmark_folder (config .results_dir )
88
+
89
+ benchmark = Benchmark .from_json (config , benchmark_specs )
90
+
91
+ # benchmark.run() returns True if the return code of memtier_benchmark was 0
92
+ memtier_ok = benchmark .run ()
93
+ debugPrintMemtierOnError (config , env , memtier_ok )
94
+ master_nodes_connections = env .getOSSMasterNodesConnectionList ()
95
+
96
+ merged_command_stats = {'cmdstat_set' : {'calls' : 0 }, 'cmdstat_get' : {'calls' : 0 }}
97
+ assert_keyspace_range (env , key_max , key_min , master_nodes_connections )
98
+
99
+ overall_request_count = agg_info_commandstats (master_nodes_connections , merged_command_stats )
100
+ assert_minimum_memtier_outcomes (config , env , memtier_ok , merged_command_stats , overall_expected_request_count ,
101
+ overall_request_count )
102
+ json_filename = '{0}/mb.json' .format (config .results_dir )
103
+
104
+ # ensure if we run again on a different key pattern the dataset doesn't grow
105
+ for master_connection in master_nodes_connections :
106
+ master_connection .execute_command ("CONFIG" , "RESETSTAT" )
107
+
108
+ benchmark_specs = {"name" : env .testName , "args" : ['--pipeline=10' ,'--ratio=1:0' ,'--key-pattern=R:R' ,'--key-minimum={}' .format (key_min ),'--key-maximum={}' .format (key_max )]}
109
+ addTLSArgs (benchmark_specs , env )
110
+ config = get_default_memtier_config (threads = 2 , clients = 10 , requests = 200000 )
111
+ master_nodes_list = env .getMasterNodesList ()
112
+ overall_expected_request_count = get_expected_request_count (config ,key_min , key_max )
113
+
114
+ add_required_env_arguments (benchmark_specs , config , env , master_nodes_list )
115
+
116
+ # Create a temporary directory
117
+ test_dir = tempfile .mkdtemp ()
118
+
119
+ config = RunConfig (test_dir , env .testName , config , {})
120
+ ensure_clean_benchmark_folder (config .results_dir )
121
+
122
+ benchmark = Benchmark .from_json (config , benchmark_specs )
123
+
124
+ # benchmark.run() returns True if the return code of memtier_benchmark was 0
125
+ memtier_ok = benchmark .run ()
126
+ debugPrintMemtierOnError (config , env , memtier_ok )
127
+
128
+ master_nodes_connections = env .getOSSMasterNodesConnectionList ()
129
+ merged_command_stats = {'cmdstat_set' : {'calls' : 0 }}
130
+ assert_keyspace_range (env , key_max , key_min , master_nodes_connections )
131
+
132
+ overall_request_count = agg_info_commandstats (master_nodes_connections , merged_command_stats )
133
+ assert_minimum_memtier_outcomes (config , env , memtier_ok , merged_command_stats , overall_expected_request_count ,
134
+ overall_request_count )
135
+ json_filename = '{0}/mb.json' .format (config .results_dir )
136
+
8
137
def test_default_set_get (env ):
9
138
benchmark_specs = {"name" : env .testName , "args" : []}
10
139
addTLSArgs (benchmark_specs , env )
@@ -24,11 +153,13 @@ def test_default_set_get(env):
24
153
25
154
# benchmark.run() returns True if the return code of memtier_benchmark was 0
26
155
memtier_ok = benchmark .run ()
156
+ debugPrintMemtierOnError (config , env , memtier_ok )
27
157
28
158
master_nodes_connections = env .getOSSMasterNodesConnectionList ()
29
159
merged_command_stats = {'cmdstat_set' : {'calls' : 0 }, 'cmdstat_get' : {'calls' : 0 }}
30
160
overall_request_count = agg_info_commandstats (master_nodes_connections , merged_command_stats )
31
- assert_minimum_memtier_outcomes (config , env , memtier_ok , overall_expected_request_count , overall_request_count )
161
+ assert_minimum_memtier_outcomes (config , env , memtier_ok , merged_command_stats , overall_expected_request_count ,
162
+ overall_request_count )
32
163
33
164
34
165
def test_default_set_get_with_print_percentiles (env ):
@@ -52,11 +183,13 @@ def test_default_set_get_with_print_percentiles(env):
52
183
53
184
# benchmark.run() returns True if the return code of memtier_benchmark was 0
54
185
memtier_ok = benchmark .run ()
186
+ debugPrintMemtierOnError (config , env , memtier_ok )
55
187
56
188
master_nodes_connections = env .getOSSMasterNodesConnectionList ()
57
189
merged_command_stats = {'cmdstat_set' : {'calls' : 0 }, 'cmdstat_get' : {'calls' : 0 }}
58
190
overall_request_count = agg_info_commandstats (master_nodes_connections , merged_command_stats )
59
- assert_minimum_memtier_outcomes (config , env , memtier_ok , overall_expected_request_count , overall_request_count )
191
+ assert_minimum_memtier_outcomes (config , env , memtier_ok , merged_command_stats , overall_expected_request_count ,
192
+ overall_request_count )
60
193
json_filename = '{0}/mb.json' .format (config .results_dir )
61
194
62
195
hdr_files_sufix = ["_FULL_RUN_1" ,"_SET_command_run_1" ,"_GET_command_run_1" ]
@@ -99,11 +232,13 @@ def test_default_set_get_1_1(env):
99
232
100
233
# benchmark.run() returns True if the return code of memtier_benchmark was 0
101
234
memtier_ok = benchmark .run ()
235
+ debugPrintMemtierOnError (config , env , memtier_ok )
102
236
103
237
master_nodes_connections = env .getOSSMasterNodesConnectionList ()
104
238
merged_command_stats = {'cmdstat_set' : {'calls' : 0 }, 'cmdstat_get' : {'calls' : 0 }}
105
239
overall_request_count = agg_info_commandstats (master_nodes_connections , merged_command_stats )
106
- assert_minimum_memtier_outcomes (config , env , memtier_ok , overall_expected_request_count , overall_request_count )
240
+ assert_minimum_memtier_outcomes (config , env , memtier_ok , merged_command_stats , overall_expected_request_count ,
241
+ overall_request_count )
107
242
108
243
# assert same number of gets and sets
109
244
env .assertEqual (merged_command_stats ['cmdstat_set' ]['calls' ], merged_command_stats ['cmdstat_get' ]['calls' ])
@@ -130,11 +265,13 @@ def test_default_set_get_3_runs(env):
130
265
131
266
# benchmark.run() returns True if the return code of memtier_benchmark was 0
132
267
memtier_ok = benchmark .run ()
268
+ debugPrintMemtierOnError (config , env , memtier_ok )
133
269
134
270
master_nodes_connections = env .getOSSMasterNodesConnectionList ()
135
271
merged_command_stats = {'cmdstat_set' : {'calls' : 0 }, 'cmdstat_get' : {'calls' : 0 }}
136
272
overall_request_count = agg_info_commandstats (master_nodes_connections , merged_command_stats )
137
- assert_minimum_memtier_outcomes (config , env , memtier_ok , overall_expected_request_count , overall_request_count )
273
+ assert_minimum_memtier_outcomes (config , env , memtier_ok , merged_command_stats , overall_expected_request_count ,
274
+ overall_request_count )
138
275
139
276
140
277
def test_default_arbitrary_command_pubsub (env ):
@@ -143,6 +280,7 @@ def test_default_arbitrary_command_pubsub(env):
143
280
addTLSArgs (benchmark_specs , env )
144
281
config = get_default_memtier_config ()
145
282
master_nodes_list = env .getMasterNodesList ()
283
+ overall_expected_request_count = 0
146
284
147
285
add_required_env_arguments (benchmark_specs , config , env , master_nodes_list )
148
286
@@ -154,8 +292,9 @@ def test_default_arbitrary_command_pubsub(env):
154
292
155
293
benchmark = Benchmark .from_json (config , benchmark_specs )
156
294
157
- if not benchmark .run ():
158
- debugPrintMemtierOnError (config , env )
295
+ # benchmark.run() returns True if the return code of memtier_benchmark was 0
296
+ memtier_ok = benchmark .run ()
297
+ debugPrintMemtierOnError (config , env , memtier_ok )
159
298
160
299
161
300
def test_default_arbitrary_command_set (env ):
@@ -178,11 +317,13 @@ def test_default_arbitrary_command_set(env):
178
317
179
318
# benchmark.run() returns True if the return code of memtier_benchmark was 0
180
319
memtier_ok = benchmark .run ()
320
+ debugPrintMemtierOnError (config , env , memtier_ok )
181
321
182
322
master_nodes_connections = env .getOSSMasterNodesConnectionList ()
183
323
merged_command_stats = {'cmdstat_set' : {'calls' : 0 }}
184
324
overall_request_count = agg_info_commandstats (master_nodes_connections , merged_command_stats )
185
- assert_minimum_memtier_outcomes (config , env , memtier_ok , overall_expected_request_count , overall_request_count )
325
+ assert_minimum_memtier_outcomes (config , env , memtier_ok , merged_command_stats , overall_expected_request_count ,
326
+ overall_request_count )
186
327
187
328
188
329
def test_default_arbitrary_command_hset (env ):
@@ -205,9 +346,10 @@ def test_default_arbitrary_command_hset(env):
205
346
206
347
# benchmark.run() returns True if the return code of memtier_benchmark was 0
207
348
memtier_ok = benchmark .run ()
349
+ debugPrintMemtierOnError (config , env , memtier_ok )
208
350
209
351
master_nodes_connections = env .getOSSMasterNodesConnectionList ()
210
352
merged_command_stats = {'cmdstat_hset' : {'calls' : 0 }}
211
353
overall_request_count = agg_info_commandstats (master_nodes_connections , merged_command_stats )
212
- assert_minimum_memtier_outcomes (config , env , memtier_ok , overall_expected_request_count , overall_request_count )
213
-
354
+ assert_minimum_memtier_outcomes (config , env , memtier_ok , merged_command_stats , overall_expected_request_count ,
355
+ overall_request_count )
0 commit comments