Benoit Tellier created JAMES-4177:
-------------------------------------
Summary: Finner grain Cassandra profiles
Key: JAMES-4177
URL: https://issues.apache.org/jira/browse/JAMES-4177
Project: James Server
Issue Type: Improvement
Reporter: Benoit Tellier
h3. Why ?
As a Cassandra operator I want more control on the consistency levels
EG:
- I want globally to write at QUORUM but for my reads I do want to operate at
LOCAL_ONE
The idea: we offer a way for the operator to trade small window of
inconsistency for more performance without compromising correctness (Not
loosing non replicated writes).
Also I want to be able to do this on a per collection matter - eg reading
domains at LOCAL_ONE is trivially ok, so I'd want to be able to squeeze the
extra perf out of it.
h3. How?
In cassandra-diver.conf define the read + write profiles defaulting to QUORUM
Each DAO would propose 2 extra profiles, read-name-of-the-dto and
write-name-of-the-dto, and if undefined in the conf fallback to read / write
profile. Done in the DAO constructor:
{code:java}
public String resolveProfile(CqlSession session, String profileName, String
fallback) {
Map<String, DriverExecutionProfile> profiles =
session.getContext()
.getConfig()
.getProfiles();
return profiles.containsKey(profileName) ? profileName : fallback;
}
{code}
We would supply in the conf a full list of supported profiles.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]