You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lens.apache.org by "Amareshwari Sriramadasu (JIRA)" <ji...@apache.org> on 2016/03/24 06:06:25 UTC
[jira] [Commented] (LENS-993) Estimate thread pool does not grow
beyond minimum pool size.
[ https://issues.apache.org/jira/browse/LENS-993?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15209763#comment-15209763 ]
Amareshwari Sriramadasu commented on LENS-993:
----------------------------------------------
As per https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ThreadPoolExecutor.html :
----
Any BlockingQueue may be used to transfer and hold submitted tasks. The use of this queue interacts with pool sizing:
# If fewer than corePoolSize threads are running, the Executor always prefers adding a new thread rather than queuing.
# If corePoolSize or more threads are running, the Executor always prefers queuing a request rather than adding a new thread.
# If a request cannot be queued, a new thread is created unless this would exceed maximumPoolSize, in which case, the task will be rejected.
----
With following code in QueryExecutionServiceImpl:
{code}
ThreadPoolExecutor estimatePool = new ThreadPoolExecutor(minPoolSize, maxPoolSize, keepAlive, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(), threadFactory);
{code}
It would never create thread more than minPoolSize. Some discussion - http://stackoverflow.com/questions/19528304/how-to-get-the-threadpoolexecutor-to-increase-threads-to-max-before-queueing
I'm proposing we use Executoes.newCachedThreadPool instead of creating ThreadPoolExecutor by the server, as suggested in javadoc.
> Estimate thread pool does not grow beyond minimum pool size.
> ------------------------------------------------------------
>
> Key: LENS-993
> URL: https://issues.apache.org/jira/browse/LENS-993
> Project: Apache Lens
> Issue Type: Bug
> Components: server
> Reporter: Amareshwari Sriramadasu
> Assignee: Amareshwari Sriramadasu
> Fix For: 2.6
>
>
> We noticed that there are only 3 threads (the min pool size) on the server and not growing. And 3 threads are blocked on JDBC connection and all subsequent estimate calls timeout as there are no threads.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)