Hello,

Le 20/02/2020 à 03:22, Tellier Benoit a écrit :
Hello Raphael.

You mention risk of cancelling a legitimate action that could have been
taken as an inconsistency.

To prevent that, a strategy based on delays could be effective as well:

  - Detect all the inconsistencies
  - Wait long enough to be sure ongoing operations are finished. 2 times
the Cassandra driver time out should be enough.


I don't see how you expect waiting for some time on one node of a distributed system can help. Distributed concensus cannot be resolved just by waiting some time on one node.


  - Confirm the inconsistency
  - Then fix it.


You still have the exact same window of error: between "confirm the inconsistency" and "fix it" a concurrent operation can happen, either on the same server, or on an other one.

Telling that the solution is pretty simple, if you can "fix it" in a lightweight transaction assuring your assumption is correct.


(night is generally of good advice)


On 19/02/2020 23:27, Raphaël Ouazana-Sustowski wrote:
Hello,

My main concern is that trying to solve some inconsistencies, we risk to
introduce some incorrectness.

Your proposal is probably reducing the window of error, but it
potentially adds errors where we had only inconsistencies. Do we accept
that trade-off?
An inconsistency is an error in itself, so I am.


IMHO not the same kind of error. An inconsistency is an error that has been reported to the user. Here we can potentially blindly change some valid data without warning the user.


Regards,

Raphaël.


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