[ 
https://issues.apache.org/jira/browse/JAMES-3105?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Benoit Tellier closed JAMES-3105.
---------------------------------
    Fix Version/s: 3.5.0
       Resolution: Fixed

https://github.com/linagora/james-project/pull/3185 contributed the above 
described task

> Corrective task for mailbox counters
> ------------------------------------
>
>                 Key: JAMES-3105
>                 URL: https://issues.apache.org/jira/browse/JAMES-3105
>             Project: James Server
>          Issue Type: New Feature
>          Components: cassandra, mailbox
>            Reporter: Benoit Tellier
>            Priority: Major
>             Fix For: 3.5.0
>
>
> Cassandra maintains a per mailbox projection for message count and unseen 
> message count.
> As with any projection, it can go out of sync, leading to inconsistent 
> results being returned to the client, which is not acceptable.
> We need to expose a corrective task, resetting mailbox counters to their 
> correct value.
> The proposed endpoint is:
> {code:java}
> curl -XPST http://ip:port/mailbox?task=RecomputeMailboxCounters
> {code}
> This endpoints will:
>  - List existing mailboxes
>  - List their messages
>  - Check them against their source of truth
>  - Compute mailbox counter values
>  - And reset the value of the counter if needed
> Of course, this endpoint won't be friendly in the face of concurrent 
> operations, which would be ignored during the recomputation of the counter of 
> the given mailbox. However the source of truth is unaffected hence, upon 
> rerunning the task, the result will be eventually correct.
> To be noted that we rely on the "listing messages by mailbox" projection 
> (that we recheck). Missing entries in there will be ignored until the given 
> projection is healed (currently unsupported). We furthermore can piggy back a 
> partial check of the message denormalization upon counter recomputation 
> (partial because we cannot detect missing entries in the "list messages in 
> mailbox" denormalization table)



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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to