apache / apache/druid

Document how java.util.concurrent.ForkJoinPool.common.* system properties should be set for Druid nodes

Open
#7,144 1 comment 0 reactions 0 assignees View on GitHub
Area - Documentation Area - Operations
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.