Benoit Tellier created JAMES-3960:
-------------------------------------
Summary: Hints to ensure UID/ModSeq consistency in case of disaster
Key: JAMES-3960
URL: https://issues.apache.org/jira/browse/JAMES-3960
Project: James Server
Issue Type: Improvement
Components: cassandra, mailbox
Reporter: Benoit Tellier
h3. Why?
{code:java}
Given James runs on data-center-1
AND connects in LOCAL_QUORUM and LOCAL_SERIAL to a 3 node cassandra cluster in
data-center-1
AND cassandra live replicate itself to a backup DC in data-center-2
WHEN a disaster render data-center-1 unusable
THEN I want to connect James to data-center-2
{code}
Doing so can be done by flipping local.dc in cassandra.properties
But uid/modseq monoticity can not be guarantied in the switch as dc2 is out of
the quorum. This may result in email loss/failure to synchronise a given mail
thus preventing a user to see it.
We are looking for an heuristic to prevent such inconsistencies
h3. How?
Upon the switch add a defensive amount to all uids and modseq. This will
prevent double allocation.
This can easdily be conffigured in cassandra.properties: uid.modseq.increment:
an integer defaulting to 0 added to each uid / modseq
h3. Definition of done
Unit tests showing that the configuration is well applied.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]