55from mbdirector .runner import RunConfig
66
77
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+
8137def test_default_set_get (env ):
9138 benchmark_specs = {"name" : env .testName , "args" : []}
10139 addTLSArgs (benchmark_specs , env )
@@ -24,11 +153,13 @@ def test_default_set_get(env):
24153
25154 # benchmark.run() returns True if the return code of memtier_benchmark was 0
26155 memtier_ok = benchmark .run ()
156+ debugPrintMemtierOnError (config , env , memtier_ok )
27157
28158 master_nodes_connections = env .getOSSMasterNodesConnectionList ()
29159 merged_command_stats = {'cmdstat_set' : {'calls' : 0 }, 'cmdstat_get' : {'calls' : 0 }}
30160 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 )
32163
33164
34165def test_default_set_get_with_print_percentiles (env ):
@@ -52,11 +183,13 @@ def test_default_set_get_with_print_percentiles(env):
52183
53184 # benchmark.run() returns True if the return code of memtier_benchmark was 0
54185 memtier_ok = benchmark .run ()
186+ debugPrintMemtierOnError (config , env , memtier_ok )
55187
56188 master_nodes_connections = env .getOSSMasterNodesConnectionList ()
57189 merged_command_stats = {'cmdstat_set' : {'calls' : 0 }, 'cmdstat_get' : {'calls' : 0 }}
58190 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 )
60193 json_filename = '{0}/mb.json' .format (config .results_dir )
61194
62195 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):
99232
100233 # benchmark.run() returns True if the return code of memtier_benchmark was 0
101234 memtier_ok = benchmark .run ()
235+ debugPrintMemtierOnError (config , env , memtier_ok )
102236
103237 master_nodes_connections = env .getOSSMasterNodesConnectionList ()
104238 merged_command_stats = {'cmdstat_set' : {'calls' : 0 }, 'cmdstat_get' : {'calls' : 0 }}
105239 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 )
107242
108243 # assert same number of gets and sets
109244 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):
130265
131266 # benchmark.run() returns True if the return code of memtier_benchmark was 0
132267 memtier_ok = benchmark .run ()
268+ debugPrintMemtierOnError (config , env , memtier_ok )
133269
134270 master_nodes_connections = env .getOSSMasterNodesConnectionList ()
135271 merged_command_stats = {'cmdstat_set' : {'calls' : 0 }, 'cmdstat_get' : {'calls' : 0 }}
136272 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 )
138275
139276
140277def test_default_arbitrary_command_pubsub (env ):
@@ -143,6 +280,7 @@ def test_default_arbitrary_command_pubsub(env):
143280 addTLSArgs (benchmark_specs , env )
144281 config = get_default_memtier_config ()
145282 master_nodes_list = env .getMasterNodesList ()
283+ overall_expected_request_count = 0
146284
147285 add_required_env_arguments (benchmark_specs , config , env , master_nodes_list )
148286
@@ -154,8 +292,9 @@ def test_default_arbitrary_command_pubsub(env):
154292
155293 benchmark = Benchmark .from_json (config , benchmark_specs )
156294
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 )
159298
160299
161300def test_default_arbitrary_command_set (env ):
@@ -178,11 +317,13 @@ def test_default_arbitrary_command_set(env):
178317
179318 # benchmark.run() returns True if the return code of memtier_benchmark was 0
180319 memtier_ok = benchmark .run ()
320+ debugPrintMemtierOnError (config , env , memtier_ok )
181321
182322 master_nodes_connections = env .getOSSMasterNodesConnectionList ()
183323 merged_command_stats = {'cmdstat_set' : {'calls' : 0 }}
184324 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 )
186327
187328
188329def test_default_arbitrary_command_hset (env ):
@@ -205,9 +346,10 @@ def test_default_arbitrary_command_hset(env):
205346
206347 # benchmark.run() returns True if the return code of memtier_benchmark was 0
207348 memtier_ok = benchmark .run ()
349+ debugPrintMemtierOnError (config , env , memtier_ok )
208350
209351 master_nodes_connections = env .getOSSMasterNodesConnectionList ()
210352 merged_command_stats = {'cmdstat_hset' : {'calls' : 0 }}
211353 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