Skip to content

Limit launch new MergeThread count to execute pending merges with max_merge_count #107650

Open
@cfangpp

Description

@cfangpp

Description

Lucene just according max_thread_count to pause MergeThread through IO throttling,when pending a lot of merges, ConcurrentMergeScheduler will launched corresponding quantity MergeThread and start running, then through IO throttling to pause the largest MergeThead if it's thread idx more than max_thread_count。

So if Lucene IndexWriter pending may merges, ElasticsearchConcurrentMergeScheduler will activate IndexThrottle when inflight merges more than max_merge_count, request that this engine throttle incoming indexing requests to one thread, A large number of index requests maybe be rejected due to this。

I think many MergeThread be paused by Lucene's IO throttling, might as well stop it to launching new MergeThread. can I used ElasticsearchConcurrentMergeScheduler.maybeStall method to limit to launch and run new MergeThread by max_thread_count or max_merge_count limited?

Metadata

Metadata

Assignees

No one assigned

    Labels

    :Distributed Indexing/EngineAnything around managing Lucene and the Translog in an open shard.>enhancementTeam:Distributed (Obsolete)Meta label for distributed team (obsolete). Replaced by Distributed Indexing/Coordination.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions