Elasticsearch thread pool setting recommendations
Pega Smart Claims Engine for Healthcare uses Elasticsearch technology for search functionality in several places in the product. For example: Member match, provider match, duplicate check, standalone UI – claim, member search.
The following thread pool settings can be set to scale application performance:
Threadpool setting | Elasticsearch default value | Pega's default in Embedded mode(till 8.x) | DASS to configure |
thread_pool.index.size | # of available processors | 1 | indexing/distributed/index_threadpool_size |
thread_pool.search.size | int((# of available_processors * 3) / 2) + 1 | 1 | indexing/distributed/search_threadpool_size |
thread_pool.bulk.size | # of available processors | 1 | indexing/distributed/bulk_threadpool_size |
thread_pool.force_merge.size | # of available processors | - | indexing/distributed/forcemerge_threadpool_size |
thread_pool.refresh.max | min(10, (# of available processors)/2) | - | indexing/distributed/refresh_threadpool_size |
All the above settings must be created in the ruleset Pega-SearchEngine. These settings are only applicable to Embedded Elasticsearch mode.
The settings are independent from the amount or size of data stored in the primary index of a cluster. The Pega platform will create 3 shards per index by default. This will be sufficient for many use cases. For very large primary indexes that exceed 30GB or 10GB per shard, the number of shards per index should be increased.
For example, one of the PCS customer has currently ~10k flattened plans in their production system and the size of the primary data index is 20GB or ~7GB per shard. If they want to double the number of flattened plans the average size per shard would exceed 10GB of data.
Use the following setting to adjust the number of shards per index if the expected amount of data in the primary index may exceed 30 GB:
- indexing/distributed/numshards in the Pega-SearchEngine ruleset to adjust the number of shards during creation of the ElasticSearch indexes, using 10GB max per shard as guidance.
For more information, see Creating and modifying Dynamic System Settings.
Previous topic Enabling Elasticsearch REST API Next topic Elasticsearch configuration for implementation work classes