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

Reply via email to