You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ambari.apache.org by "Hudson (JIRA)" <ji...@apache.org> on 2017/03/07 20:13:38 UTC

[jira] [Commented] (AMBARI-20345) Alert Event Publisher Executor Doesn't Scale Threads

    [ https://issues.apache.org/jira/browse/AMBARI-20345?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15900065#comment-15900065 ] 

Hudson commented on AMBARI-20345:
---------------------------------

FAILURE: Integrated in Jenkins build Ambari-trunk-Commit #6966 (See [https://builds.apache.org/job/Ambari-trunk-Commit/6966/])
AMBARI-20345 - Alert Event Publisher Executor Doesn't Scale Threads (jhurley: [http://git-wip-us.apache.org/repos/asf?p=ambari.git&a=commit&h=434ff1f25fa62e26709a500d70bf8012e531d5bb])
* (edit) ambari-server/src/test/java/org/apache/ambari/server/orm/dao/AlertsDAOCachedTest.java
* (edit) ambari-server/docs/configuration/index.md
* (edit) ambari-server/src/main/java/org/apache/ambari/server/configuration/Configuration.java
* (edit) ambari-server/src/test/java/org/apache/ambari/server/controller/internal/AlertResourceProviderTest.java
* (edit) ambari-server/src/test/java/org/apache/ambari/server/state/services/CachedAlertFlushServiceTest.java
* (edit) ambari-server/src/main/java/org/apache/ambari/server/events/publishers/AlertEventPublisher.java


> 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)