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