Documentation > Configuration > Properties File > Client Parameters

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
    Default: global.defaulthost
    Permitted Tye: string
    Replaced By: client.hosts
    Default client host name
  • 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
    Default: null
    Permitted Tye: string
    Replaced By: client.output_results_csv
  • 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
    Default: 2097152
    Permitted Tye: int
    Defines the block size in bytes that will be evicted for each eviction requestBoth site.anticache_enable and client.anticache_enable must be set to true.