Streaming is mono-threaded (the bulk loader too by extension)
-------------------------------------------------------------

                 Key: CASSANDRA-3494
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3494
             Project: Cassandra
          Issue Type: Improvement
          Components: Core
    Affects Versions: 0.8.0
            Reporter: Sylvain Lebresne
            Priority: Minor


The streamExecutor is define as:
{noformat}
streamExecutor_ = new DebuggableThreadPoolExecutor("Streaming", 
Thread.MIN_PRIORITY);
{noformat}
In the meantime, in DebuggableThreadPoolExecutor.java:
{noformat}
public DebuggableThreadPoolExecutor(String threadPoolName, int priority)
{
   this(1, Integer.MAX_VALUE, TimeUnit.SECONDS, new 
LinkedBlockingQueue<Runnable>(), new NamedThreadFactory(threadPoolName, 
priority));
}
{noformat}
In other word, since the core pool size is 1 and the queue unbounded, tasks 
will always queued and the executor is essentially mono-threaded.
This is clearly not necessary since we already have stream throttling nowadays. 
And it could be a limiting factor in the case of the bulk loader.

Besides, I would venture that this maybe was not the intention, because putting 
the max core size to MAX_VALUE would suggest that the intention was to spawn 
threads on demand. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to