[ https://issues.apache.org/jira/browse/AMBARI-20345?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jonathan Hurley updated AMBARI-20345: ------------------------------------- Attachment: AMBARI-20345.patch > 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 > > Attachments: AMBARI-20345.patch > > > 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)