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

Reply via email to