Planner
The planner module is responsible in parsing a (multi) search request and generating a logical model. This logical model is then optimised by leveraging the rule-based Hep engine and statistical Volcano engine from Apache Calcite. The outcome is a physical query plan, which is then executed. The physical query plan is a Directed Acyclic Graph workflow composed of individual computing steps. The workflow is executed as a Job
and the individual computing steps are executed as Tasks
. We can therefore map one (multi) search request to a single job.
-
siren.planner.pool.job.size
- Control the maximum number of concurrent jobs being executed per node. Defaults to 1.
-
siren.planner.pool.job.queue_size
- Control the size of the queue for pending jobs per node. Defaults to 100.
-
siren.planner.pool.tasks_per_job.size
- Control the maximum number of concurrent tasks being executed per job. Defaults to 3.
-
siren.planner.volcano.enable
- Enable or disable the Volcano statistical engine to select the most appropriate join algorithms. Defaults to
true
. -
siren.planner.volcano.join
- Defines which distributed join algorithm to be selected when optimizing a request. Valid values are either
HASH_JOIN
orMERGE_JOIN
, case-insensitive. Defaults toHASH_JOIN
. -
siren.planner.volcano.use_query
- Use contextual queries when computing statistics. If
false
, computed statistics are effectively "global" to the index. Defaults tofalse
. -
siren.planner.volcano.cache.enable
- Enable or disable a caching layer over Elasticsearch requests sent during query optimizations in order to gather statistics. Defaults to
true
. -
siren.planner.volcano.cache.refresh_interval
- The minimum interval time for refreshing the cached response of a statistics-gathering request. The time unit is in minutes and defaults to
60
minutes. -
siren.planner.volcano.cache.maximum_size
- The maximum number of requests response that can be cached. Defaults to 1000000.