Hello Duc, answers inlined.

On 14/02/2020 17:06, Đức Trần Tiến wrote:
> Hello people,
> 
> In recent days, James had been recieved a report about the strage
> *MailboxNotFoundException*. There were some investigation to find the cause
> of the issue.
> We found that there are some inconsistent between mailbox and mailboxPathV2
> tables. The issue is considered critical and it and bother/annoying users
> to creates, rename, delete mailboxes.
> I had open a PR for demonstrate this problem in unit test
> https://github.com/linagora/james-project/pull/3100. There are some taken
> actions to be resolving the mailbox inconsistencies.
> 
> But look back to the bigger picture, there're many tables have close
> relationships, mailbox and mailboxPathV2 is just an example.

I just want to add that mailboxPath/mailbox projection is specific as it
is a rare place we use a projection for holding an invariant (not too
mailboxes shall have the same name).

Our other projections are based on a "source_of_truth + projection"
model. WHich is easier to handle.

> There are
> several proposals to prevent inconsistent but some have not been discussed
> further than an idea:
> 
>  - Introducing a *transaction* bounded with cassandra (it can
> systematically resolve the issue)

I don't understand this line as Cassandra don't allow transactions
further than the Row.

Can you describe what you are referring to?

>  - Re write the MailboxManager by *EventSourcing*

I propose myself to investigate "mailbox/cassandra" projections
requiring a task to fix them.

>  - Having tools to fix the already existing inconsistent
> 
> *Having tools to fix the already existing inconsistent*
> 
> We have:
>  - Webadmin Task for solving inconsistent cassandra mappings
>  - A self healing MessageFastViewProjections
> 
> In developement:
>  - Webadmin Task for solving inconsistent mailbox & mailboxPath
>  - Retrying on failed mailbox creation/deletion
> 
> I want to bring this conversation to the mailling list and hope that we can
> contribute solutions, enrich the proposals in order to reduce/fix the
> cassandra inconsistencies.
> 
> Thank you!
> 
> Tran Tien Duc
> 

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