This page is intended to identify and discuss all possible usecase scenarios of Mitosis during the refactoring process
When a same entry gets created on more than one master server then only one entry needs to be taken as base and the
other needs to be removed. But how do we choose which one to retain/discard.?
At the moment the one with greater CSN (i.e. the more recent) will be retained just like with any conflicting modification. The older entry is lost - it would be useful if it were moved to a lost+found area and an administrator notified in some way.
When one server deletes an entry while another server adds a child entry below at the same time, what do we do to resolve the conflict?
On a single server a delete followed by a child entry add would give an error, as would a child entry add followed by a delete. Perhaps this means we should just discard the second operation?
It all depends on the time of each operation. On A, we delete e1 at ti : A.del(e1, ti). On B we add e2 under e1 at tj : B.add( e1/e2, tj). If ti < tj, then we have to rollback the addition on B. If ti > tj, then we have to rollback e1 deletion and add e2 on A : ti < tj => A & B; ti > tj => A[e1/e2] & B [e1/e2]