Matthieu Baechler created JAMES-3123:
----------------------------------------

             Summary: Manage properly Cassandra queries concurrency
                 Key: JAMES-3123
                 URL: https://issues.apache.org/jira/browse/JAMES-3123
             Project: James Server
          Issue Type: Improvement
          Components: cassandra
            Reporter: Matthieu Baechler


We have several parameters regarding Cassandra usage in James:
* cassandra driver queue size
* cassandra driver threadpool size
* reactor concurrency tuning

We frequently fine tune these parameters based on metrics feedback: for example 
https://github.com/linagora/james-project/pull/3218 tries to limit the impact 
of counters computation on the user queries

However, this "try, measure, fix" strategy could be handle by engineering a 
better execution framework.

I suggest this one:

* use two specific reactor workqueues for running cassandra queries, one for 
interactive queries and another one for background queries
 
* ensure we don't schedule more queries than the Cassandra queue size can 
handle by using back-pressure

* send queries to the right workqueue depending on the expected execution 
characteristics



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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

Reply via email to