[ https://issues.apache.org/jira/browse/ATLAS-2262?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16296488#comment-16296488 ]
David Radley commented on ATLAS-2262: ------------------------------------- [~grahamwallis] as we discussed - I suspect that your testing is using relationships based on AtlasRelationshipDefs defined with "isLegacyAttribute": true. I suggest testing with non legacy relationships as well - in this case there will be one edge for the relationship, I suspect we will then get the RelatedObjectIds and the relationship guid should then be used in matching. I suggest adding junits for these cases as well. We also discussed that in the Janus graph the edges always have a direction and the matching will need to be careful for ASSOCIATION relationship categories which at the entity level do not notionally have a direction. > EntityGraphMapper update semantics > ---------------------------------- > > Key: ATLAS-2262 > URL: https://issues.apache.org/jira/browse/ATLAS-2262 > Project: Atlas > Issue Type: Bug > Reporter: Graham Wallis > Assignee: Graham Wallis > Priority: Minor > Attachments: ATLAS-2262-v2.patch, ATLAS-2262-v3.patch, > ATLAS-2262-v4.patch, ATLAS-2262.patch > > > Intermittent failures in AtlasRelationshipStoreV1Test occur during > modification of the 'friends' relationships between sample Employee and > Manager entities. > The intermittent failures are seen as different numbers of updated entities > being reported, which causes the test assertion to fail. The failures are > intermittent because they are caused by non-deterministic behaviour during > UPDATE of an entity's relationships. The non-determinism is caused by the > order in which results are returned by a graph query, although any order > should be considered valid. > When built with graph provider titan0, the order of edges returned from the > graph is always the same, and the current EntityGraphMapper returns a > consistent result. The way it achieves it is slightly odd, with existing edge > reuse depending on the position of the edge in the returned list. But with > titan0, the behaviour is consistent, and correct. > When using the janus graph provider, the order of edges returned from the > graph varies. This is valid behaviour on the part of the graph, but the > EntityGraphMapper does not behave the same when the edges are returned in a > different order compared to titan0. > There are two levels of problem: The first is accuracy of the returned count > of updated entities; the second and in my opinion more important is the > semantics of an update operation that presents the same array of entity > relationships in an order that is not the same as the order returned by the > graph. In my opinion the result of the UPDATE operation should not vary > depending on the order of the edges returned by the internal graph query. If > the set of related entities presented matches the set already recorded then > the existing related entities should be reused, rather than replaced. It is > therefore the latter problem that I have been working on. -- This message was sent by Atlassian JIRA (v6.4.14#64029)