JBoss Community Archive (Read Only)

Teiid 8.3

Threading

Transport

max-socket-threads (default 0) - The max number of threads dedicated to the initial request processing. Zero indicates to use the system default of max available processors. All the access to Teiid (JDBC, ODBC, etc) is controlled by "transport" element in the configuration. Socket threads are configured for each transport. They handle NIO non-blocking IO operations as well as directly servicing any operation that can run without blocking. For longer running operations, the socket threads queue with work the query engine.

Query Engine

max-threads (default 64) - The query engine has several settings that determine its thread utilization. max-threads sets the total number of threads available in the process pool for query engine work (processing plans, transaction control operations, processing source queries, etc.). You should consider increasing the maximum threads on systems with a large number of available processors and/or when it's common to issue non-transactional queries that issue a large number of concurrent source requests.

max-active-plans (default 20) - Should always be smaller than max-threads. The calculation of (max-threads / max_active_plans) * 2 will indicate the number of max-threads that are available to be used for processing each user query. Increasing the max-active-plans should be considered for workloads with a high number of long running queries and/or systems with a large number of available processors. If memory issues arise from increasing the max-threads and max-active-plans, then consider decreasing the processor-batch-size to limit the base number of memory rows consumed by each plan.

thread-count-for-source-concurrency (default 0) - Should always be smaller than max-threads, sets the number of concurrently executing source queries per user request. 0 indicates to use the default calculated value based on 2 * (max-threads / max-active-plans). Setting this to 1 forces serial execution of all source queries by the processing thread. Any number greater than 1 limits the maximum number of concurrently execution source requests according. Using the respective defaults, this means that each user request would be allowed 6 concurrently executing source queries. If the default calculated value is not applicable to your workload, for example, if you have queries that generate more concurrent long running source queries, you should adjust this value.

JBoss.org Content Archive (Read Only), exported from JBoss Community Documentation Editor at 2020-03-13 12:37:26 UTC, last content change 2013-03-14 16:26:19 UTC.