[
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]