Starting with 6.1.2, the MDEX Engine consistently manages all
processor-intensive tasks related to query and updates processing by using its
preconfigured threading pool. The
--threads
flag reflects the total number of threads in the
MDEX Engine threading pool.
With this change, the MDEX Engine consistently manages all CPU-intensive
operations using its preconfigured threading pool. The threading pool controls
the total number of all high-priority, query-related threads. These threads
include query processing and partial update processing threads and additional
threads that support query and update processing. Prior to MDEX Engine 6.1.2,
the number of threads controlled by the
--threads
flag reflected only threads used for query
processing.
You define the number of threads in the threading pool at MDEX Engine
startup, based on the setting for the
--threads
flag.
Recall that the recommended number of threads for the MDEX Engine is typically equal to the number of cores on the MDEX Engine server. By managing the threading pool, the MDEX Engine lets you more accurately limit the available computation resources to each core. This ensures that the system resources are used effectively for the highly prioritized tasks in the MDEX Engine, all of which support query processing and high performance.
The threading pool manages the following MDEX Engine tasks:
All tasks that support query processing in the MDEX Engine. The MDEX Engine allocates these tasks for threads in the threading pool. The tasks include all high-priority, CPU-intensive, frequently performed operations the MDEX Engine runs in production. For example, they include precomputed sorting, background merging of index generations, and operations that support high performance of updates, among others.
Other MDEX Engine operations that do not have a significant impact on CPU usage are not managed by the threading pool.
Note
If you use operating system commands such as
top
to examine the number of threads used by the MDEX
Engine server, you may see a number that is larger than the number you specify
with the
--threads
flag. This is because in addition to this
number of threads, the MDEX Engine may use additional threads for other tasks.
These additional threads support tasks that are run infrequently, are less-CPU
intensive, and do not affect overall MDEX Engine performance. You cannot
control these additional threads.