Hi Team, While running Oak in Sling we rely on Sling Scheduler [1] to execute the periodic jobs. By default Sling Scheduler uses a pool of 5 threads to run all such periodic jobs in the system. Recently we saw an issue OAK-4563 where due to some reason the pool got exhausted for long time and that prevented the async indexing job to run for long time and hence affected the query result.
To address that Sling now provides a new option (SLING-5831) where one can specify the pool name to be used to execute a specific job. So we can specify custom pool which can be used for Oak related jobs. Now currently in Oak we use following types of periodic jobs 1. Async indexing - (Cluster Singleton) 2. Document Store - Journal GC (Cluster Singleton) 3. Document Store - LastRevRecovery 4. Statistic Collection - For timeseries data update in ChangeProcessor, SegmentNodeStore GCMonitor Now should we use A - one single pool for all of the above B - use the pool only for 1-3. The default pool would be of 5. So even if #2 #3 are running it would not hamper #1 Assuming #4 is not that critical to run and may consist of lots of jobs. My suggestion would be to go for #B Chetan Mehrotra [1] https://sling.apache.org/documentation/bundles/scheduler-service-commons-scheduler.html