Document how java.util.concurrent.ForkJoinPool.common.* system properties should be set for Druid nodes
- Dominant language
- Java
- Stars
- 14.1k
- Forks
- 3.8k
- Avg merge
- 2d 58m
- Merged PRs (30d)
- 233
Description
See the [class-level Javadoc for `ForkJoinPool`](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ForkJoinPool.html):
- `java.util.concurrent.ForkJoinPool.common.parallelism`: I think it should be N_CPU / 2 on historical and broker nodes and realtime peons (note that the default is N_CPU) to leave more CPU resources to query-processing threads, and N_CPU - 1 (or - 2?) on other types of Druid processes (Coordinator, MiddleManager, Overlord, Router).
- `java.util.concurrent.ForkJoinPool.common.exceptionHandler` - probably we should create a Druid-specific exception handler that does the right thing in terms of logging, alerting, etc (or such ExceptionHandler already exists in the codebase?) but we can't configure it programmatically from inside a Druid process, it must be configured via the system property before the Druid process has started.
Related to #7143.
FYI @gianm @jihoonson @drcrallen
Contributor guide
Research direction
Start with the linked ForkJoinPool class-level Javadoc and read related issue #7143 for context. Determine the correct parallelism guidance for each Druid node type and whether an exception handler already exists; done means documenting the agreed system-property settings and any required handler configuration, though no target documentation file is named.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- backend, documentation
- Issue type
- Documentation
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100