{"id":1762,"date":"2012-07-16T10:26:07","date_gmt":"2012-07-16T14:26:07","guid":{"rendered":"http:\/\/hstore.cs.brown.edu\/?page_id=1762"},"modified":"2013-11-13T22:35:48","modified_gmt":"2013-11-14T03:35:48","slug":"client-configuration","status":"publish","type":"page","link":"https:\/\/hstore.cs.brown.edu\/documentation\/deployment\/client-configuration\/","title":{"rendered":"Benchmark Client Configuration"},"content":{"rendered":"
This page provides documentation on the various ways to tune, control, and configure the execution behavior of clients in H-Store’s benchmark framework.<\/p>\n
The following is a list of things that you need to do when running experiments for research projects in order to get maximum performance:<\/p>\n
Each of H-Store’s built-in benchmarks<\/a> comes with a default workload distribution. This defines how likely each particular stored procedure type will be selected by a client thread for its next request. There are occasions, however, where you may need to alter this workload mix for whatever reason. You can control this mix using the client.weights<\/a> configuration option. The expected value for this option is a comma separated list of pairs in the format of <ProcedureName:Weight><\/tt>. The ProcedureName<\/tt> is the case-sensitive name of the target’s stored procedure class name. You can use *<\/tt> as a wild card that matches all procedures not explicitly listed in this parameter. The Weight<\/tt> is an integer value between 0 and 100 (inclusive) that corresponds to what percentage of the executed workload should be made up of that particular procedure. All of the weights given with this parameter must add up to 100.<\/p>\n For example, let’s say for the TM1 benchmark that we want to execute the GetAccessData<\/a> and UpdateLocation<\/a> procedures 60% and 40% of the time, respectively, and disable all of the remaining procedures. The corresponding command would be:<\/p>\n Note that you do not need to recompile the benchmark catalog with hstore-prepare<\/tt> if you change the workload mix. Not all benchmarks support this option yet.<\/p>\n There are several parameters that you can use to control what information the client prints out to its log file, as well as how often it is printed. You can also control what information is collected during a benchmark and is printed at the end of the run.<\/p>\n The BenchmarkController separates the output generated from client thread and writes it to a separate file in the directory defined by client.log_dir<\/a>. You can control whether a new is created each benchmark run or whether it will overwrite existing files with the client.log_backup<\/a>. If this configuration parameter is set to true, then the BenchmarkController will rename any existing files in clients’ log directory to a different file with the timestamp added to its name.<\/p>\nant hstore-benchmark<\/tt> -Dproject=tm1 \\\r\n -Dclient.weights=\"GetAccessData:60,UpdateLocation:40,*:0\"<\/pre>\n
Controlling Output<\/h2>\n