IndexPool MBean
The IndexPool MBean exposes metrics around the progress of indexing tasks as they move through the pipeline, and provides a mechanism to tweak the flushing, concurrency, and back-pressure behavior of a core indexing thread pool.
The IndexPool MBean is useful for controlling task submission and flush with these properties:
- Configurable concurrency
-
The maximum number of concurrent workers is predefined at construction time. The actual concurrency can be dynamically configured between 1 (synchronous execution) and the given max concurrency.
- Flow control via back pressure
-
To reduce memory consumption in case of fast producers, back pressure throttles incoming tasks. Back-pressure is applied directly as a result of the size of the global RAM buffer.
Path
The IndexPool MBean is identified by the following path:
com.datastax.bdp.search.keyspace_name.table_name.IndexPool
where:
-
search
is the MBean type -
keyspace_name.table_name
is the search index (core) that the metrics reference -
IndexPool
is the MBean name
Configurable attributes
The attributes are effective only until the node is restarted.
To make the change permanent, you must change the corresponding option in dse.yaml
.
Where is the dse.yaml
file?
The location of the dse.yaml
file depends on the type of installation:
Installation Type | Location |
---|---|
Package installations + Installer-Services installations |
|
Tarball installations + Installer-No Services installations |
|
- FlushMaxTime
-
The maximum time, in milliseconds, to wait before flushing asynchronous index updates, which occurs at DSE Search commit time or at database flush time. See the
flush_max_time_per_core
option indse.yaml
. (DSE 6.8 | 6.7 | 6.0 | 5.1) - Concurrency
-
The maximum number of concurrent asynchronous indexing threads.
View-only attributes
You can get the following MBean operations:
- BackPressurePauseNanos
-
Get the average back pressure pause.
- IncomingRate
-
Get the 1-minute rate of ingested tasks per second.
- MaxConcurrency
-
Get the predefined max concurrency level.
- OutgoingRate
-
Get the 1-minute rate of processed tasks per second.
- ProcessedTasks
-
Get the total number of processed tasks for all workers.
- QueueSize
-
Get the current size of each processing queues.
- TaskProcessingTimeNanos
-
Get the last processing time for all workers. Could be 0 in case the clock resolution is too coarse.
- Throughput
-
The 1-minute rate of work throughput per second.
- TotalQueueSize
-
Get the total size of all processing queues.