-
Type:
Task
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: Performance
-
None
-
Query Execution
-
Fully Compatible
-
200
-
None
-
None
-
None
-
None
-
None
-
None
-
None
In the backfill coordinator we use a task executor to schedule backfilling asynchronously.
Before the change, we used MongoProcessInterface task executor. In sharding case, it used NetworkInterfaceThreadPool, which uses the main thread to process tasks.
In testing, we use hangBeforeExecutingBackfillTask to hang the backfilling tasks, but because we used NetworkInterfaceThreadPool, it could hang more than only the specific async task.
To fix it, in sharding case we will use Grid::get(opCtx)>getExecutorPool()>getFixedExecutor().
This is consistent with executor pool recommendation to use fixed executors for a non-performance critical tasks.