alex-rufous commented on a change in pull request #29: QPID-8304: 
[Broker-J][JDBC Message Store] Performance bottleneck at the level of the 
executor
URL: https://github.com/apache/qpid-broker-j/pull/29#discussion_r280071020
 
 

 ##########
 File path: 
broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/AbstractJDBCMessageStore.java
 ##########
 @@ -216,7 +216,7 @@ private void updateDbVersion(int newVersion) throws 
SQLException
     protected void initMessageStore(final ConfiguredObject<?> parent)
     {
         _parent = parent;
-        _executor = new ScheduledThreadPoolExecutor(4, new ThreadFactory()
+        _executor = new 
ScheduledThreadPoolExecutor(Runtime.getRuntime().availableProcessors(), new 
ThreadFactory()
 
 Review comment:
   Olivier,
   I am wandering whether it would be better to introduce a context variable 
for configuring the number of core threads in executor. Potentially, the 
default value can be set to 'availableProcessors' but I am a bit concerned 
about setting core threads number to 'availableProcessors'. On machines with 
hundreds of CPUs that might result in wasted system resources. Please note, 
that we are starting all core threads immediately after executor creation.  I 
think, that for this kind of tasks we need a special executor which can scale 
threads up and down when required.  Though, I do not want to spend time on such 
executor implementation.  
   
   I created a pull request #32 where I moved setting of 
"qpid.jdbcstore.inClauseMaxSize" into context variables. I think we need to do 
the same for the number of core threads for the pool executor.  For example, we 
can introduce context variable like "qpid.jdbcstore.commitExecutorThreads". As 
we do not have executor capable of scaling number of threads up and down, I 
suppose, we can set the default value to 
Runtime.getRuntime().availableProcessors().
   
   What do you think about suggested changes?
   
   I am planning to commit PR #32 tonight if you have no objection

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org

Reply via email to