----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/72452/#review220553 -----------------------------------------------------------
repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasRelationshipStoreV2.java Lines 780 (patched) <https://reviews.apache.org/r/72452/#comment309045> Just thinking the below might be more easy to understand if someone is not aware of why we do both edge count. AtlasPerfMetrics.MetricRecorder metric = RequestContext.get().startMetricRecord("getRelationshipEdge"); AtlasEdge ret = null; long toVertexIncomingEdgesCount = graphHelper.getInComingEdgesByLabelCount(toVertex, relationshipLabel); if(toVertexIncomingEdgesCount > 0) { long fromVertexOutgoingEdgesCount = graphHelper.getOutGoingEdgesByLabelCount(fromVertex, relationshipLabel); if(toVertexIncomingEdgesCount < fromVertexOutgoingEdgesCount) { Iterator<AtlasEdge> edgesIterator = graphHelper.getIncomingEdgesByLabel(toVertex, relationshipLabel); ret = getActiveEdgeFromList(fromVertex.getId(), edgesIterator); } else if(fromVertexOutgoingEdgesCount > 0) { Iterator<AtlasEdge> edgesIterator = graphHelper.getOutGoingEdgesByLabel(fromVertex, relationshipLabel); ret = getActiveEdgeFromList(toVertex.getId(), edgesIterator); } } RequestContext.get().endMetricRecord(metric); return ret; - Sidharth Mishra On April 29, 2020, 5:51 p.m., Ashutosh Mestry wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/72452/ > ----------------------------------------------------------- > > (Updated April 29, 2020, 5:51 p.m.) > > > Review request for atlas, Madhan Neethiraj, Nikhil Bonte, Nixon Rodrigues, > Sarath Subramanian, and Sidharth Mishra. > > > Bugs: ATLAS-3762 > https://issues.apache.org/jira/browse/ATLAS-3762 > > > Repository: atlas > > > Description > ------- > > **Problem Definition** > Please refer to JIRA for details. > > **Updates** > - Modifed: _AtlasJanusGraph.wrapVertices_ and _AtlasJanusGraph.wrapEdges_ : > Now uses genuine iterators. This reduces number of elements fetched, since > the search is linear. > - New: _AtlasVertex.getEdgeCount_ fetches edge count using iterator returned > from _JanusVertex_. Fetching the count is effecient using stream support. > > > Diffs > ----- > > > graphdb/api/src/main/java/org/apache/atlas/repository/graphdb/AtlasVertex.java > 9406e26ff > > graphdb/janus/src/main/java/org/apache/atlas/repository/graphdb/janus/AtlasJanusGraph.java > eb0206271 > > graphdb/janus/src/main/java/org/apache/atlas/repository/graphdb/janus/AtlasJanusVertex.java > fdc9fd0b5 > repository/src/main/java/org/apache/atlas/repository/graph/GraphHelper.java > 2b8227a7e > > repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasRelationshipStoreV2.java > d1c1f1255 > > > Diff: https://reviews.apache.org/r/72452/diff/1/ > > > Testing > ------- > > **Volume testing** > High volume testing makes the edge fetching effcient. Cases where incoming > edges was in 1000s and outgoing edges was handful. > > Memory footprint has improved since JanusGrpah caches edges and then expires > it. Fetching fewer edges will reduce number of items in memory. > > **Pre-commit Build** > https://builds.apache.org/view/A/view/Atlas/job/PreCommit-ATLAS-Build-Test/1858/ > > > Thanks, > > Ashutosh Mestry > >
