Configuring Your Splice Machine Database Installation

The following table provides summary information about (some of) the configuration options used by Splice Machine.

   Learn more

Property Typical value Description
splice.authentication NATIVE This is documented in our Configuring Authentication topic.
splice.authentication.native.algorithm SHA-512 This is documented in our Configuring Authentication topic.
splice.client.write.maxDependentWrites 60000

A form of write throttling that controls the maximum number of concurrent dependent writes from a single process. Dependent writes are writes to a table with indexes and generate more independent writes (writes to the indexes themselves). They are segregated so we can guarantee progress by reserving some IPC threads for independent writes.

If your application is experiencing unexpected timeouts, see the Adjusting for Timeouts section below.

splice.client.write.maxIndependentWrites 60000

A form of write throttling that controls the maximum number of concurrent independent writes from a single process.

If your application is experiencing unexpected timeouts, see the Adjusting for Timeouts section below.

splice.client.writer.maxThreads 200

The total number of threads for the writer in the process, which determines the maximum number of concurrent writes from a process.

If your application is experiencing unexpected timeouts, see the Adjusting for Timeouts section below.

splice.compression snappy The type of compression to use when compressing Splice Tables. This is set the same HBase sets table compression, and has the same codecs available to it (GZIP,Snappy, or LZO depending on what is installed).
splice.debug.logStatementContext false Whether to log all statements. Note that this is costly in OLTP workloads.
splice.marshal.kryoPoolSize 1100 The maximum number of Kryo objects to pool for reuse. This setting should only be adjusted if there are an extremely large number of operations allowed on the system.
splice.olap_server.clientWaitTime 900000 The number of milliseconds the OLAP client should wait for a result.
splice.root.path /splice Zookeper root node for Splice Machine. All Zookeeper nodes used by Splice Machine will hang from this root node.
splice.splitBlockSize 67108864 Default size for Spark partitions when reading data from HBase. We sub-split each HBase region into several partitions targeting that size, but it rarely matches exactly. This is because it depend on a number of factors, including the number of storefiles in use by a given HBase region.
splice.timestamp_server.clientWaitTime 120000 The number of milliseconds the timestamp client should wait for a result.
splice.txn.completedTxns.concurrency 128 Concurrency level for the completed transactions cache. Specifies the estimated number of concurrently updating threads.
splice.txn.concurrencyLevel 4096 Expected concurrent updates to a transaction region. Increasing it increases memory consumption, decreasing it decreases concurrency on transaction operations. A reasonable default is the number of ipc threads configured for this system.

Adjusting for Application Timeouts

If your application is experiencing unexpected timeouts, it may be due to the queue getting too large, which means that you need to reduce throughput by adjusting these property values:

  • splice.client.write.maxIndependentWrites
  • splice.client.write.maxDependentWrites
  • splice.client.writer.maxThreads values

These values apply per process.

Here are some guidelines:

  • The splice.client.write.maxIndependentWrites and splice.client.write.maxDependentWrites maximum concurrent write values must be within the capacity of the nodes in your cluster.
  • You should set the value of the splice.client.writer.maxThreads property as follows:

    num-nodes * num-executors-per-node * (max-independent-write-threads + max-dependent-write-threads)
    

Make sure that the values you select for these properties are commensurate with your read-side throughput.