I was not knowing this pattern. I would not use it as it prevents concurrent execution.
(You can very well refresh and check entries in parrallel to go faster) On 19/02/2020 16:38, Đức Trần Tiến wrote: > Hi, > What do you think about `.setFetchSize()` to 1 or a number small enough? > This helps to avoid re-read and by the same time, the whole process > requires only one connection to read from a table. > > The cassandra documentation dis-encourage this practice because of its poor > performance. But we're expecting a task to be taking really long. > > Vào Th 4, 19 thg 2, 2020 vào lúc 15:10 Tellier Benoit <btell...@apache.org> > đã viết: > >> Hello Raphael, >> >> The simple fix could be : >> >> - 1. Iterating the in memory list of record >> - 2. For each record, refresh it (re read it from DB to be sure to have >> the latest version of it) >> - 3. Then detect inconsistencies (reading the associated >> denormalization table) >> >> Step 2., currently not implemented in [1], could be a way to mitigate >> these risks. >> >> [1] Solving mailbox inconsistencies: >> https://github.com/linagora/james-project/pull/3110 >> >> That way you decrease the concurrency window to the maximum. >> >> Cheers, >> >> Benoit >> >> On 18/02/2020 23:50, Raphaël Ouazana-Sustowski wrote: >>> Hello, >>> >>> Is there a way to solve inconsistencies while not adding new ones? >>> >>> When you solve inconsistencies, you have a view of data in memory and >>> try to fix it. If the data change between the moment you take this view >>> and the moment you try to fix the inconsistency, you risk to add an >>> other inconsistency, or worst to cancel a legitimate action. >>> >>> Do you see a way to mitigate this risk? >>> >>> Regards, >>> >>> Raphaël. >>> >>> Le 14/02/2020 à 11:06, Đức Trần Tiến a écrit : >>>> 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. 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) >>>> - Re write the MailboxManager by *EventSourcing* >>>> - 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 >>> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org >> For additional commands, e-mail: server-dev-h...@james.apache.org >> >> > --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org