Jonathan Hurley created AMBARI-20345:
----------------------------------------
Summary: Alert Event Publisher Executor Doesn't Scale Threads
Key: AMBARI-20345
URL: https://issues.apache.org/jira/browse/AMBARI-20345
Project: Ambari
Issue Type: Bug
Components: ambari-server
Affects Versions: 2.5.0
Reporter: Jonathan Hurley
Assignee: Jonathan Hurley
Fix For: 2.5.0
The event bus which is used to handling incoming {{AlertEvent}} events is
incorrectly initialized and can never scale from the core number of threads.
This is because it uses an unbounded queued. From the
[ThreadPoolExecutor|https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ThreadPoolExecutor.html]
documentation:
{quote}
A ThreadPoolExecutor will automatically adjust the pool size (see
getPoolSize()) according to the bounds set by corePoolSize (see
getCorePoolSize()) and maximumPoolSize (see getMaximumPoolSize()). When a new
task is submitted in method execute(java.lang.Runnable), and fewer than
corePoolSize threads are running, a new thread is created to handle the
request, even if other worker threads are idle. If there are more than
corePoolSize but less than maximumPoolSize threads running, *a new thread will
be created only if the queue is full.*
{quote}
We should switch to a configurable, bounded queue so that this property can be
utilized in large clusters where more than the default of 2 core threads is
needed.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)