[
https://issues.apache.org/jira/browse/SOLR-922?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12657677#action_12657677
]
Kay Kay commented on SOLR-922:
------------------------------
| But, the problem is that means defining an extra API and may be having an
extra configuration in say solrconfig.xml
Selecting the number of threads in the thread pools / specifying the queuing
policy for an even distribution of tasks , are some of the various
customizations that could be implemented for the ExecutorService
implementation. Since DIH and other parts of the solr application server live
in the same jvm process - I am not sure why we would like to exclude the same
since that would mean multiple resource managers ( thread pools ) in the same
process - that would be hard to change / modify if we encounter an
OutOfMemoryError (very much possible when there are multiple ExecutorService
impls locally ) etc.
> Solr WebApp wide Executor for better efficient management of threads ,
> separating the logic in the thread from the launch of the same.
> ---------------------------------------------------------------------------------------------------------------------------------------
>
> Key: SOLR-922
> URL: https://issues.apache.org/jira/browse/SOLR-922
> Project: Solr
> Issue Type: Improvement
> Components: clients - java
> Environment: Tomcat 6, JRE 6
> Reporter: Kay Kay
> Priority: Minor
>
> For a different jira - when we were discussing bringing in parallelism
> through threads and using Executors - encountered a case of using a webapp
> wide Executor for reusing thread pools for better use of thread resources ,
> instead of thread.start() .
> pros: Custom Request Handlers and other plugins to the Solr App server can
> use this Executor API to retrieve the executor and just submit the Runnable /
> Callable impls to get the job done while getting the benefits of a thread
> pool . This might be necessary as we continue to write plugins to the core
> architecture and centralizing the threadpools might make it easy to control /
> prevent global Executor objects across the codebase / recreating them locally
> ( as they might be expensive ).
> $ find . -name *.java | xargs grep -nr 'start()' | grep "}"
> ./contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/XPathEntityProcessor.java:377:
> }.start();
> ./contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DataImporter.java:368:
> }.start();
> ./src/java/org/apache/solr/handler/SnapPuller.java:382: }.start();
> ./src/java/org/apache/solr/handler/SnapShooter.java:52: }.start();
> ./src/java/org/apache/solr/handler/ReplicationHandler.java:134:
> }.start();
> ./src/common/org/apache/solr/common/util/ConcurrentLRUCache.java:112:
> }.start();
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.