Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
leventov opened this issue Feb 26, 2019 · 1 comment

Comments

@leventov
Copy link
Member

leventov commented Feb 26, 2019

See the class-level Javadoc for ForkJoinPool:

  • 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

@drcrallen
Copy link
Contributor

drcrallen commented Feb 26, 2019

IMHO this shouldn't be a fork join pool specific thing, but part of a larger "here are your CPU thread pools" kind of documentation that includes jetty pools, http client pools, etc.

Processing and ForkJoinPool.common sounds like a great start for such a doc and worth getting in even it if is "just" those two and passive mention to others.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants