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)