ClusterOptions stores the configurable cluster-level manager options.
bleveMaxResultWindow => It controls the maximum bleve result window which helps users search deeper pages in FTS. The default value for this is 10000 which may not be sufficient for many use cases. Meaning if users are interested in finding results beyond this offset position of default 10K.
bleveMaxClauseCount => It limits the maximum number of query sub-clauses within any FTS search request. The default value of this max clause count is 1024. Users may hit this limit for queries like wildcard, regex, prefix, disjuncts, fuzzy, etc. The intent of this limit is to restrict resource utilization for serving a query, esp memory usage. While users can bump the `bleveMaxClauseCount` limit to a higher value to temporarily fix the issue, it is highly recommended to revisit the query patterns too. ie make it more efficient and well-scoped.
ftsMemoryQuota => controls the maximum usable memory for the FTS service from the total amount of RAM available in the system. The Search service doesn’t mandate any minimum memory-resident ratio for its index. Nevertheless, the users are advised to spare enough Search memory quota for a healthy resident ratio of the index. This lets the system have sufficient memory available to perform the indexing, querying, or other lifecycle operations like rebalances, etc.
Using the manager option, users can control the FTS/Search service's memory quota at run time without a service reboot.
maxReplicasAllowed => The default limit value of this is 3. This can be reset to override the default limit on the maximum number of index partitions for any index in the system.
slowQueryLogTimeout => This parameter controls query logging functionality depending on the timeout value specified here. The default limit value of this is 5s. Meaning, every query which takes more than 5s for completing its execution will be logged in the FTS server logs as well as the slow-query server stats.
enableVerboseLogging => Enables additional logs for debug purposes.
maxFeedsPerDCPAgent => feed refers to the data ingestion pipes for the index partitions. The data from the source bucket/colletion is streamed to an index partition by a feed. maxFeedsPerDCPAgent controls the sharing of feed Agent or the underlying connection per feed of various index partitions belonging to the same bucket. Default value for this configurable is 6.
Lower values for `maxFeedsPerDCPAgent` would result in faster indexing or higher indexing throughput. The maximum indexing throughput is attainable at value of 1 for the maxFeedsPerDCPAgent setting.
maxConcurrentPartitionMovesPerNode => FTS moves or builds the partitions one at a time per node during the rebalance operations. This could significantly increase the overall time taken for the rebalance operation.
One way to speed up the rebalance operation is to enable the movement of partitions parallelly.
There is a configurable option [maxConcurrentPartitionMovesPerNode] to bring the additional concurrency to the way we move/build partitions during a rebalance operation.
If we override this parameter (maxConcurrentPartitionMovesPerNode to N) as a runtime cluster option then we could concurrently build that many partitions in parallel per node at a time and the rebalance ought to complete faster in shorter time.
Configuring `maxFeedsPerDCPAgent` to a value of 1 with sufficient FTS memory quota would help to maximise the rebalancing thoroughput.
The users can override any of the above manager configs using the manager options endpoint.