Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
Description
A DocumentNodeStore cluster currently shows a conflict behavior, which
is not intuitive. A modification may fail with a conflict even though
before and after the conflict, the external change is not visible to
the current session. There are two aspects to this issue.
1) a modification may conflict with a change done on another cluster
node, which is committed but not yet visible on the current cluster node.
2) even after the InvalidItemStateException caused by the conflict, a
refreshed session may still not see the external change.
The first aspect is a fundamental design decision and cannot be changed
easily.
The second part can be addressed by suspending the commit until the external
conflict becomes visible on the current cluster node. This would at least
avoid the awkward situation where the external change is not visible after
the InvalidItemStateException.
The system would also become more deterministic. A commit currently goes
into a number of retries with exponential back off, but there's no guarantee
the external modification becomes visible within those retries.
Attachments
Attachments
Issue Links
- is related to
-
OAK-3386 ConcurrentAddNodesClusterIT.addNodesConcurrent() blocks occasionally
- Closed