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