You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by "Matthieu Baechler (Jira)" <se...@james.apache.org> on 2020/03/23 10:35:00 UTC

[jira] [Created] (JAMES-3123) Manage properly Cassandra queries concurrency

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-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org