System & Environment Parameters
-
client.jvm_asserts
| Default: |
false |
| Permitted Tye: |
boolean |
| Execute each client thread with JVM asserts enabled. The client asserts will not affect the runtime performance of the database cluster, but it may increase the overhead of each client thread. |
-
client.jvm_args Experimental
| Default: |
null |
| Permitted Tye: |
string |
| Additional JVM arguments to include when launching each benchmark client process. These arguments will be automatically split and escaped based on spaces. |
-
client.jar_dir
| Default: |
. |
| Permitted Tye: |
string |
| The directory that benchmark project jars will be stored in. |
-
client.memory
| Default: |
512 |
| Permitted Tye: |
int |
| The amount of memory to allocate for each client process (in MB) |
-
client.host Deprecated
-
client.hosts
| Default: |
global.defaulthost |
| Permitted Tye: |
string |
| A semi-colon separated list of hostnames that the BenchmarkController will invoke benchmark clients on. Like the HStoreSite hosts, these machines must have passwordless SSH enabled and have the H-Store distribution installed inthe same directory heirarchy as where the BenchmarkController was invoked from. Each client host represents a unique JVM that will spawn the number of client threads defined by the client.threads_per_host parameter. |
-
client.txnrate
| Default: |
1000 |
| Permitted Tye: |
int |
| The number of txns that client process submits (per second). The underlying BenchmarkComponent will continue invoke the client driver’s runOnce() method until it has submitted enough transactions to satisfy client.txnrate. If client.blocking is disabled, then the total transaction rate for a benchmark invocation is client.txnrate * client.processesperclient * client.count. |
-
client.weights
| Default: |
null |
| Permitted Tye: |
string |
|
-
client.processesperclient Deprecated
| Default: |
10 |
| Permitted Tye: |
int |
| Replaced By: |
client.threads_per_host |
| Number of benchmark client threads to use per client host. |
-
client.threads_per_host
| Default: |
10 |
| Permitted Tye: |
int |
| Number of benchmark client threads to invoke per client host. If client.shared_connection is set to true, then all of these threads will share the same Client handle to the HStoreSite cluster. |
-
client.processesperclient_per_partition
| Default: |
false |
| Permitted Tye: |
boolean |
| Multiply the client.processesperclient parameter by the number of partitions in the target cluster. |
-
client.shared_connection
| Default: |
false |
| Permitted Tye: |
boolean |
|
-
client.count
| Default: |
1 |
| Permitted Tye: |
int |
| The number of clients hosts to use in the benchmark run. |
-
client.singlepartition_threads Experimental
| Default: |
0 |
| Permitted Tye: |
int |
| The number of client threads that will submit only single-partition transaction requests. This is not supported in all benchmarks. |
-
client.duration
| Default: |
60000 |
| Permitted Tye: |
int |
| How long should the benchmark trial run (in milliseconds). Does not include client.warmup time. |
-
client.warmup
| Default: |
0 |
| Permitted Tye: |
int |
| How long should the system be allowed to warmup (in milliseconds). Any stats collected during this period are not counted in the final totals. |
-
client.interval
| Default: |
10000 |
| Permitted Tye: |
int |
| How often (in milliseconds) should the BenchmarkController poll the individual client processes and get their intermediate results. |
-
client.blocking
| Default: |
true |
| Permitted Tye: |
boolean |
| Whether to use the BlockingClient. When this is true, then each client process will submit one transaction at a time and wait until the result is returned before submitting the next. The clients still follow the client.txnrate parameter. |
-
client.blocking_concurrent
| Default: |
500 |
| Permitted Tye: |
int |
| When the BlockingClient is enabled with client.blocking, this defines the number of concurrent transactions that each client instance can submit to the H-Store cluster before it will block. |
-
client.blocking_loader Experimental
| Default: |
false |
| Permitted Tye: |
boolean |
| When this parameter is enabled, the benchmark’s loaders will only be allowed to load tables into the database cluster one at a time. This is only useful for debugging. |
-
client.scalefactor
| Default: |
1.0 |
| Permitted Tye: |
double |
| The scaling factor determines how large to make the target benchmark’s data set. A scalefactor greater than one makes the data set larger, while less than one makes it smaller. Implementation depends on benchmark specification. |
-
client.skewfactor Experimental
| Default: |
0.0 |
| Permitted Tye: |
double |
| How much skew to use when generating the benchmark data set. Default is zero (no skew). The amount skew gets larger for values greater than one. Implementation depends on benchmark specification. |
-
client.temporalwindow Experimental
| Default: |
0 |
| Permitted Tye: |
int |
| Used to define the amount of temporal skew in the benchmark data set. Implementation depends on benchmark specification. |
-
client.temporaltotal Experimental
| Default: |
100 |
| Permitted Tye: |
int |
| Used to define the amount of temporal skew in the benchmark data set. Implementation depends on benchmark specification. |
-
client.tick_interval
| Default: |
-1 |
| Permitted Tye: |
int |
| If client.tick_interval is greater than one, then it determines how often (in ms) the BenchmarkComponent will execute tick(). A client driver implementation can reliably use this to perform some maintence operation or change data distributions. By default, tick() will be invoked at the interval defined by client.interval. |
-
client.dump_database
| Default: |
false |
| Permitted Tye: |
boolean |
| If this enabled, then each DBMS will dump their entire database contents into CSV files after executing a benchmark run. |
-
client.dump_database_dir
| Default: |
global.temp_dir/dumps |
| Permitted Tye: |
string |
| If client.dump_database is enabled, then each DBMS will dump their entire database contents into CSV files in the this directory after executing a benchmark run. |
-
client.tablestats
| Default: |
false |
| Permitted Tye: |
boolean |
| If set to true, then the benchmark data loader will generate a WorkloadStatistics based on the data uploaded to the server. These stats will be written to the path specified by client.tablestats_output. |
-
client.tablestats_dir
| Default: |
global.temp_dir/stats |
| Permitted Tye: |
string |
| If client.tablestats is enabled, then the loader will write out a database statistics file in the directory defined in this parameter. |
-
client.delay_threshold
| Default: |
8 |
| Permitted Tye: |
int |
| If a node is executing multiple client processes, then the node may become overloaded if all the clients are started at the same time. This parameter defines the threshold for when the BenchmarkController will stagger the start time of clients. For example, if a node will execute ten clients and client.delay_threshold is set to five, then the first five processes will start right away and the remaining five will wait until the first ones finish before starting themselves. |
-
client.profiling
| Default: |
false |
| Permitted Tye: |
boolean |
|
Debug Logging Parameters
-
client.log_dir
| Default: |
global.log_dir/clients |
| Permitted Tye: |
string |
| Benchmark client log directory on the host that the BenchmarkController is invoked from. |
-
client.log_backup
| Default: |
false |
| Permitted Tye: |
boolean |
| Whether to back-up log files before the benchmark is exceuted |
Transaction Parameters
-
client.txn_hints
| Default: |
true |
| Permitted Tye: |
boolean |
| If this parameter is set to true, then each the client will calculate the base partition needed by each transaction request before it sends to the DBMS. This base partition is embedded in the StoreProcedureInvocation wrapper and is automatically sent to the HStoreSite that has that partition. Note that the HStoreSite will not use the PartitionEstimator to determine whether the client is correct, but the transaction can be restarted and re-executed if site.exec_db2_redirects is enabled. |
Codespeed API Parameters
-
client.codespeed_url
| Default: |
null |
| Permitted Tye: |
string |
| The URL of the CodeSpeed site that the H-Store BenchmarkController will post the transaction throughput rate after a benchmark invocation finishes. This parameter must be a well-formed HTTP URL. See the CodeSpeed documentation page for more info (https://github.com/tobami/codespeed). |
-
client.codespeed_project
| Default: |
H-Store |
| Permitted Tye: |
string |
| The name of the project to use when posting the benchmark result to CodeSpeed.This parameter is required by CodeSpeed and cannot be empty. Note that the the client.codespeed_url parameter must also be set. |
-
client.codespeed_environment
| Default: |
null |
| Permitted Tye: |
string |
| The name of the environment to use when posting the benchmark result to CodeSpeed. The value of this parameter must already exist in the CodeSpeed site. This parameter is required by CodeSpeed and cannot be empty. Note that the the client.codespeed_url parameter must also be set. |
-
client.codespeed_executable
| Default: |
null |
| Permitted Tye: |
string |
| The name of the executable to use when posting the benchmark result to CodeSpeed. This parameter is required by CodeSpeed and cannot be empty. Note that the the client.codespeed_url parameter must also be set. |
-
client.codespeed_commitid
| Default: |
null |
| Permitted Tye: |
string |
| The revision number of the H-Store source code that is reported when posting the benchmark result used to CodeSpeed. This parameter is required by CodeSpeed and cannot be empty. Note that the the client.codespeed_url parameter must also be set. |
-
client.codespeed_branch
| Default: |
null |
| Permitted Tye: |
string |
| The branch corresponding for this version of H-Store used when posting the benchmark result to CodeSpeed. This is parameter is optional. |
Benchmark Output Control Parameters
-
client.output_interval
| Default: |
true |
| Permitted Tye: |
boolean |
| Output a status update about the benchmark run at the end of each interval defined by client.interval. |
-
client.output_clients
| Default: |
false |
| Permitted Tye: |
boolean |
| Output a breakdown at the end of a benchmark run of the number of transactions that each unique client thread executed successfully. |
-
client.output_basepartitions
| Default: |
false |
| Permitted Tye: |
boolean |
| Output a histogram at the end of a benchmark run of the number of transactions that each partition executed. |
-
client.output_response_status Deprecated
| Default: |
false |
| Permitted Tye: |
boolean |
| Replaced By: |
client.output_status |
| Output a histogram at the end of a benchmark run of the different transaction response status codes that the database returned to the clients. |
-
client.output_status
| Default: |
true |
| Permitted Tye: |
boolean |
| Output a histogram at the end of a benchmark run of the different transaction response status codes that the database returned to the clients. |
-
client.output_results_table
| Default: |
true |
| Permitted Tye: |
boolean |
| Print the benchmark results in a simple text-based output table. |
-
client.output_json Deprecated
| Default: |
false |
| Permitted Tye: |
boolean |
| Replaced By: |
client.output_results_json |
| Print the benchmark results in a JSON parseable format. This is useful for running experiments inside of scripts. |
-
client.output_results_json
| Default: |
false |
| Permitted Tye: |
boolean |
| Print the benchmark results in a JSON parseable format. This is useful for running experiments inside of scripts. |
-
client.output_csv Deprecated
-
client.output_results_csv
| Default: |
null |
| Permitted Tye: |
string |
| Print the benchmark results in a CSV table. |
-
client.output_memory_stats
| Default: |
null |
| Permitted Tye: |
string |
| Defines the path where the BenchmarkController will dump a CSV containing the memory stats information about the cluster. This will periodically invoke the @Statistics system stored procedure to collect SysProcSelector.MEMORY data. |
-
client.output_responses
| Default: |
null |
| Permitted Tye: |
string |
| Defines the path where the BenchmarkController will dump a CSV containing the complete listing of all transactions executed by the clients. |
-
client.output_exec_profiling
| Default: |
null |
| Permitted Tye: |
string |
| Defines the path where the BenchmarkController will dump a CSV containing PartitionExecutor profiling stats. Note that this will automatically enable site.exec_profiling, which will affect the runtime performance.Any file that exists with the same name as this will be overwritten. |
-
client.output_queue_profiling
| Default: |
null |
| Permitted Tye: |
string |
| Defines the path where the BenchmarkController will dump a CSV containing TransactionQueueManager profiling stats. Note that this will automatically enable site.queue_profiling, which will affect the runtime performance.Any file that exists with the same name as this will be overwritten. |
-
client.output_anticache_profiling
| Default: |
null |
| Permitted Tye: |
string |
| Defines the path where the BenchmarkController will dump a CSV containing AntiCacheManager profiling stats. Note that this will automatically enable site.anticache_profiling, which will affect the runtime performance. Any file that exists with the same name as this will be overwritten. |
-
client.output_site_profiling
| Default: |
null |
| Permitted Tye: |
string |
| Defines the path where the BenchmarkController will dump a CSV containing HStoreSite profiling stats. Note that this will automatically enable site.profiling, which will affect the runtime performance.Any file that exists with the same name as this will be overwritten. |
-
client.output_anticache_evictions
| Default: |
null |
| Permitted Tye: |
string |
| Defines the path where the BenchmarkController will dump a CSV containing AntiCacheManager eviction history. Note that this will automatically enable site.anticache_profiling, which will affect the runtime performance. Any file that exists with the same name as this will be overwritten. |
-
client.output_anticache_access
| Default: |
null |
| Permitted Tye: |
string |
| Defines the path where the BenchmarkController will dump a CSV containing the transactions that tried to access evicted tuples from the anti-cache. Note that this will automatically enable site.anticache_profiling, which will affect the runtime performance. Any file that exists with the same name as this will be overwritten. |
-
client.output_anticache_memory_stats
| Default: |
null |
| Permitted Tye: |
string |
| Defines the path where the BenchmarkController will dump a CSV containing the memory stats of different tiers of anti-cache. This can work with single-tieranti-cache. site.anticache_enable should be set to true to enable this feature.Any file that exists with the same name as this will be overwritten. |
-
client.output_txn_profiling
| Default: |
null |
| Permitted Tye: |
string |
| Defines the path where the BenchmarkController will dump a CSV containing transaction profiling stats. Note that this will automatically enable site.txn_profiling, which will affect the runtime performance.Any file that exists with the same name as this will be overwritten. |
-
client.output_txn_profiling_combine
| Default: |
true |
| Permitted Tye: |
boolean |
| If set to true, then the data generated for client.output_txn_profiling will be aggregated based on the Procedure handle. |
-
client.output_specexec_profiling
| Default: |
null |
| Permitted Tye: |
string |
| Defines the path where the BenchmarkController will dump a CSV containing the speculative execution stats. Note that this will automatically enable site.specexec_profiling, which will affect the runtime performance. |
-
client.output_specexec_profiling_combine
| Default: |
true |
| Permitted Tye: |
boolean |
| If set to true, then the data generated for client.output_specexec_profiling will be aggregated based on the SpeculateType handle. |
-
client.output_planner_profiling
| Default: |
null |
| Permitted Tye: |
string |
| Defines the path where the BenchmarkController will dump a CSV containing the BatchPlanner profiling stats. Note that this will automatically enable site.planner_profiling, which will affect the runtime performance. |
-
client.output_planner_profiling_combine
| Default: |
true |
| Permitted Tye: |
boolean |
| If set to true, then the data generated for client.output_planner_profiling will be aggregated based on the Procedure handle. |
-
client.output_markov_profiling
| Default: |
null |
| Permitted Tye: |
string |
| Defines the path where the BenchmarkController will dump a CSV containing the MarkovEstimator profiling stats. Note that this will automatically enable site.markov_profiling, which will affect the runtime performance. |
-
client.output_table_stats
| Default: |
null |
| Permitted Tye: |
string |
| Defines the path where the BenchmarkController will dump a CSV containing the memory stats information about the cluster. This will periodically invoke the @Statistics system stored procedure to collect SysProcSelector.TABLE data. |
-
client.output_txn_counters
| Default: |
null |
| Permitted Tye: |
string |
| Defines the path where the BenchmarkController will dump a CSV containing transaction counter stats. This will contain information about how the transactions were executed (i.e., whether they were single-partitioned or not,whether they were speculatively executed). Note that this will automatically enable site.txn_counters, which will affect the runtime performance. |
-
client.output_txn_counters_combine
| Default: |
true |
| Permitted Tye: |
boolean |
| If set to true, then the data generated for client.output_txn_counters will be aggregated based on the Procedure handle. |
Anti-Caching Parameters
-
client.anticache_enable Experimental
| Default: |
false |
| Permitted Tye: |
boolean |
| If set to true, then the BenchmarkController will periodically send requests to the H-Store cluster to evict tuples into the anti-cache database. Note that site.anticache_enable must be set to true when the cluster is started. |
-
client.anticache_evict_interval Experimental
| Default: |
30000 |
| Permitted Tye: |
int |
| This parameter defines how often in milliseconds the BenchmarkController will send request to evict tuples from all of the tables marked as evictable. Both site.anticache_enable and client.anticache_enable must be set to true. |
-
client.anticache_evict_size Experimental