You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tinkerpop.apache.org by "Yuancheng (Jira)" <ji...@apache.org> on 2023/02/28 08:51:00 UTC

[jira] [Updated] (TINKERPOP-2886) Inconsistent results when executing equivalent queries

     [ https://issues.apache.org/jira/browse/TINKERPOP-2886?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Yuancheng updated TINKERPOP-2886:
---------------------------------
    Description: 
 
{code:java}
g.V().as('s1').hasLabel('A').emit(__.loops().is(gte(1))).repeat(__.bothE().dedup().by(__.path()).otherV()).times(2).simplePath().from('s1').as('s2').hasLabel('B').emit(__.loops().is(gte(1))).repeat(__.inE().outV()).times(2).hasLabel('B').bothE().dedup().by(__.path()).otherV().hasLabel('A').select('s1').count()
// Result: 19100{code}
 
{code:java}
g.V().as('s1').hasLabel('A').emit(__.loops().is(gte(1))).repeat(__.bothE().dedup().by(__.path()).otherV()).times(2).simplePath().from('s1').hasLabel('B').emit(__.loops().is(gte(1))).repeat(__.inE().outV()).times(2).hasLabel('B').bothE().dedup().by(__.path()).otherV().hasLabel('A').select('s1').count() 
// Result: 18198{code}
The only difference is `as('s2')`. I would not expect it to change the result. However, they output differently. 

Profiles:
{code:java}
{'dur': 113.635007, 'metrics': [{'dur': 0.099535, 'counts': {'traverserCount': 5, 'elementCount': 5}, 'name': 'TinkerGraphStep(vertex,[~label.eq(A)])@[s1]', 'annotations': {'percentDur': 0.08759184570649078}, 'id': '15.0.0()'}, {'dur': 1.518938, 'counts': {'traverserCount': 568, 'elementCount': 568}, 'name': 'RepeatStep(emit([LoopsStep, IsStep(gte(1))]),[VertexStep(BOTH,edge), DedupGlobalStep(null,[PathStep]), EdgeOtherVertexStep, RepeatEndStep],until(loops(2)))', 'annotations': {'percentDur': 1.3366813978371999}, 'id': '2.0.0()', 'metrics': [{'dur': 0.012455, 'counts': {'traverserCount': 55, 'elementCount': 55}, 'name': 'LoopsStep', 'id': '0.1.2(2.0.0())'}, {'dur': 0.02038, 'counts': {}, 'name': 'IsStep(gte(1))', 'id': '2.1.2(2.0.0())'}, {'dur': 0.175709, 'counts': {'traverserCount': 568, 'elementCount': 568}, 'name': 'VertexStep(BOTH,edge)', 'id': '0.1.0(2.0.0())'}, {'dur': 0.631128, 'counts': {'traverserCount': 568, 'elementCount': 568}, 'name': 'DedupGlobalStep(null,[PathStep])', 'id': '2.1.0(2.0.0())', 'metrics': [{'dur': 0.08288, 'counts': {'traverserCount': 568, 'elementCount': 568}, 'name': 'PathStep', 'id': '0.2.0(2.1.0(2.0.0()))'}]}, {'dur': 0.22524, 'counts': {'traverserCount': 568, 'elementCount': 568}, 'name': 'EdgeOtherVertexStep', 'id': '4.1.0(2.0.0())'}, {'dur': 0.265068, 'counts': {'traverserCount': 518, 'elementCount': 518}, 'name': 'RepeatEndStep', 'id': '6.1.0(2.0.0())'}]}, {'dur': 1.200035, 'counts': {'traverserCount': 444, 'elementCount': 444}, 'name': 'PathFilterStep(simple,s1,null)', 'annotations': {'percentDur': 1.0560434074686158}, 'id': '3.0.0()'}, {'dur': 0.214619, 'counts': {'traverserCount': 264, 'elementCount': 264}, 'name': 'HasStep([~label.eq(B)])@[s2]', 'annotations': {'percentDur': 0.18886697476949157}, 'id': '4.0.0()'}, {'dur': 14.506215, 'counts': {'traverserCount': 8368, 'elementCount': 8368}, 'name': 'RepeatStep(emit([LoopsStep, IsStep(gte(1))]),[VertexStep(IN,edge), EdgeVertexStep(OUT), RepeatEndStep],until(loops(2)))', 'annotations': {'percentDur': 12.765621601096923}, 'id': '5.0.0()', 'metrics': [{'dur': 0.352544, 'counts': {'traverserCount': 1625, 'elementCount': 1625}, 'name': 'LoopsStep', 'id': '0.1.2(5.0.0())'}, {'dur': 0.515114, 'counts': {}, 'name': 'IsStep(gte(1))', 'id': '2.1.2(5.0.0())'}, {'dur': 3.109686, 'counts': {'traverserCount': 8368, 'elementCount': 8368}, 'name': 'VertexStep(IN,edge)', 'id': '0.1.0(5.0.0())'}, {'dur': 3.077571, 'counts': {'traverserCount': 8368, 'elementCount': 8368}, 'name': 'EdgeVertexStep(OUT)', 'id': '2.1.0(5.0.0())'}, {'dur': 4.250924, 'counts': {'traverserCount': 7007, 'elementCount': 7007}, 'name': 'RepeatEndStep', 'id': '4.1.0(5.0.0())'}]}, {'dur': 2.603431, 'counts': {'traverserCount': 4250, 'elementCount': 4250}, 'name': 'HasStep([~label.eq(B)])', 'annotations': {'percentDur': 2.291046631431105}, 'id': '6.0.0()'}, {'dur': 8.140922, 'counts': {'traverserCount': 44192, 'elementCount': 44192}, 'name': 'VertexStep(BOTH,edge)', 'annotations': {'percentDur': 7.164096887854286}, 'id': '7.0.0()'}, {'dur': 45.69575, 'counts': {'traverserCount': 44192, 'elementCount': 44192}, 'name': 'DedupGlobalStep(null,[PathStep])', 'annotations': {'percentDur': 40.21274007577612}, 'id': '8.0.0()', 'metrics': [{'dur': 6.111861, 'counts': {'traverserCount': 44192, 'elementCount': 44192}, 'name': 'PathStep', 'id': '0.1.0(8.0.0())'}]}, {'dur': 15.48812, 'counts': {'traverserCount': 44192, 'elementCount': 44192}, 'name': 'EdgeOtherVertexStep', 'annotations': {'percentDur': 13.62970831690977}, 'id': '9.0.0()'}, {'dur': 12.234278, 'counts': {'traverserCount': 19100, 'elementCount': 19100}, 'name': 'HasStep([~label.eq(A)])', 'annotations': {'percentDur': 10.766293172314409}, 'id': '10.0.0()'}, {'dur': 9.183057, 'counts': {'traverserCount': 19100, 'elementCount': 19100}, 'name': 'SelectOneStep(last,s1,null)', 'annotations': {'percentDur': 8.08118663643854}, 'id': '11.0.0()'}, {'dur': 2.750107, 'counts': {'traverserCount': 1, 'elementCount': 1}, 'name': 'CountGlobalStep', 'annotations': {'percentDur': 2.4201230523970487}, 'id': '12.0.0()'}]} {code}
{code:java}
{'dur': 109.860501, 'metrics': [{'dur': 0.093296, 'counts': {'traverserCount': 5, 'elementCount': 5}, 'name': 'TinkerGraphStep(vertex,[~label.eq(A)])@[s1]', 'annotations': {'percentDur': 0.08492224152518657}, 'id': '15.0.0()'}, {'dur': 1.494234, 'counts': {'traverserCount': 568, 'elementCount': 568}, 'name': 'RepeatStep(emit([LoopsStep, IsStep(gte(1))]),[VertexStep(BOTH,edge), DedupGlobalStep(null,[PathStep]), EdgeOtherVertexStep, RepeatEndStep],until(loops(2)))', 'annotations': {'percentDur': 1.3601194117984223}, 'id': '2.0.0()', 'metrics': [{'dur': 0.027009, 'counts': {'traverserCount': 55, 'elementCount': 55}, 'name': 'LoopsStep', 'id': '0.1.2(2.0.0())'}, {'dur': 0.019714, 'counts': {}, 'name': 'IsStep(gte(1))', 'id': '2.1.2(2.0.0())'}, {'dur': 0.160825, 'counts': {'traverserCount': 568, 'elementCount': 568}, 'name': 'VertexStep(BOTH,edge)', 'id': '0.1.0(2.0.0())'}, {'dur': 0.622997, 'counts': {'traverserCount': 568, 'elementCount': 568}, 'name': 'DedupGlobalStep(null,[PathStep])', 'id': '2.1.0(2.0.0())', 'metrics': [{'dur': 0.079921, 'counts': {'traverserCount': 568, 'elementCount': 568}, 'name': 'PathStep', 'id': '0.2.0(2.1.0(2.0.0()))'}]}, {'dur': 0.215635, 'counts': {'traverserCount': 568, 'elementCount': 568}, 'name': 'EdgeOtherVertexStep', 'id': '4.1.0(2.0.0())'}, {'dur': 0.259263, 'counts': {'traverserCount': 518, 'elementCount': 518}, 'name': 'RepeatEndStep', 'id': '6.1.0(2.0.0())'}]}, {'dur': 1.143306, 'counts': {'traverserCount': 444, 'elementCount': 444}, 'name': 'PathFilterStep(simple,s1,null)', 'annotations': {'percentDur': 1.040688864144175}, 'id': '3.0.0()'}, {'dur': 0.169786, 'counts': {'traverserCount': 264, 'elementCount': 264}, 'name': 'HasStep([~label.eq(B)])', 'annotations': {'percentDur': 0.15454690125616669}, 'id': '4.0.0()'}, {'dur': 14.164336, 'counts': {'traverserCount': 8368, 'elementCount': 8368}, 'name': 'RepeatStep(emit([LoopsStep, IsStep(gte(1))]),[VertexStep(IN,edge), EdgeVertexStep(OUT), RepeatEndStep],until(loops(2)))', 'annotations': {'percentDur': 12.893019666822747}, 'id': '5.0.0()', 'metrics': [{'dur': 0.340473, 'counts': {'traverserCount': 1625, 'elementCount': 1625}, 'name': 'LoopsStep', 'id': '0.1.2(5.0.0())'}, {'dur': 0.497164, 'counts': {}, 'name': 'IsStep(gte(1))', 'id': '2.1.2(5.0.0())'}, {'dur': 2.920372, 'counts': {'traverserCount': 8368, 'elementCount': 8368}, 'name': 'VertexStep(IN,edge)', 'id': '0.1.0(5.0.0())'}, {'dur': 3.054795, 'counts': {'traverserCount': 8368, 'elementCount': 8368}, 'name': 'EdgeVertexStep(OUT)', 'id': '2.1.0(5.0.0())'}, {'dur': 4.27663, 'counts': {'traverserCount': 7007, 'elementCount': 7007}, 'name': 'RepeatEndStep', 'id': '4.1.0(5.0.0())'}]}, {'dur': 2.664804, 'counts': {'traverserCount': 4250, 'elementCount': 4250}, 'name': 'HasStep([~label.eq(B)])', 'annotations': {'percentDur': 2.4256252026376615}, 'id': '6.0.0()'}, {'dur': 8.060513, 'counts': {'traverserCount': 44192, 'elementCount': 44192}, 'name': 'VertexStep(BOTH,edge)', 'annotations': {'percentDur': 7.337043729665861}, 'id': '7.0.0()'}, {'dur': 44.41532, 'counts': {'traverserCount': 42265, 'elementCount': 42265}, 'name': 'DedupGlobalStep(null,[PathStep])', 'annotations': {'percentDur': 40.42883438152171}, 'id': '8.0.0()', 'metrics': [{'dur': 6.06568, 'counts': {'traverserCount': 44192, 'elementCount': 44192}, 'name': 'PathStep', 'id': '0.1.0(8.0.0())'}]}, {'dur': 14.927731, 'counts': {'traverserCount': 42265, 'elementCount': 42265}, 'name': 'EdgeOtherVertexStep', 'annotations': {'percentDur': 13.58789634502031}, 'id': '9.0.0()'}, {'dur': 11.377835, 'counts': {'traverserCount': 18198, 'elementCount': 18198}, 'name': 'HasStep([~label.eq(A)])', 'annotations': {'percentDur': 10.356620347107283}, 'id': '10.0.0()'}, {'dur': 8.696222, 'counts': {'traverserCount': 18198, 'elementCount': 18198}, 'name': 'SelectOneStep(last,s1,null)', 'annotations': {'percentDur': 7.915694831939643}, 'id': '11.0.0()'}, {'dur': 2.653118, 'counts': {'traverserCount': 1, 'elementCount': 1}, 'name': 'CountGlobalStep', 'annotations': {'percentDur': 2.414988076560838}, 'id': '12.0.0()'}]}
{code}
 

 

 

  was:
 
{code:java}
g.V().as('s1').hasLabel('A').emit(__.loops().is(gte(1))).repeat(__.bothE().dedup().by(__.path()).otherV()).times(2).simplePath().from('s1').as('s2').hasLabel('B').emit(__.loops().is(gte(1))).repeat(__.inE().outV()).times(2).hasLabel('B').bothE().dedup().by(__.path()).otherV().hasLabel('A').select('s1').count()
// Result: 19100{code}
 

 
{code:java}
g.V().as('s1').hasLabel('A').emit(__.loops().is(gte(1))).repeat(__.bothE().dedup().by(__.path()).otherV()).times(2).simplePath().from('s1').hasLabel('B').emit(__.loops().is(gte(1))).repeat(__.inE().outV()).times(2).hasLabel('B').bothE().dedup().by(__.path()).otherV().hasLabel('A').select('s1').count() 
// Result: 18198{code}
The only difference is `as('s2')`. I would not expect it to change the result. However, they output differently. 

Profiles:
{code:java}
{'dur': 113.635007, 'metrics': [{'dur': 0.099535, 'counts': {'traverserCount': 5, 'elementCount': 5}, 'name': 'TinkerGraphStep(vertex,[~label.eq(A)])@[s1]', 'annotations': {'percentDur': 0.08759184570649078}, 'id': '15.0.0()'}, {'dur': 1.518938, 'counts': {'traverserCount': 568, 'elementCount': 568}, 'name': 'RepeatStep(emit([LoopsStep, IsStep(gte(1))]),[VertexStep(BOTH,edge), DedupGlobalStep(null,[PathStep]), EdgeOtherVertexStep, RepeatEndStep],until(loops(2)))', 'annotations': {'percentDur': 1.3366813978371999}, 'id': '2.0.0()', 'metrics': [{'dur': 0.012455, 'counts': {'traverserCount': 55, 'elementCount': 55}, 'name': 'LoopsStep', 'id': '0.1.2(2.0.0())'}, {'dur': 0.02038, 'counts': {}, 'name': 'IsStep(gte(1))', 'id': '2.1.2(2.0.0())'}, {'dur': 0.175709, 'counts': {'traverserCount': 568, 'elementCount': 568}, 'name': 'VertexStep(BOTH,edge)', 'id': '0.1.0(2.0.0())'}, {'dur': 0.631128, 'counts': {'traverserCount': 568, 'elementCount': 568}, 'name': 'DedupGlobalStep(null,[PathStep])', 'id': '2.1.0(2.0.0())', 'metrics': [{'dur': 0.08288, 'counts': {'traverserCount': 568, 'elementCount': 568}, 'name': 'PathStep', 'id': '0.2.0(2.1.0(2.0.0()))'}]}, {'dur': 0.22524, 'counts': {'traverserCount': 568, 'elementCount': 568}, 'name': 'EdgeOtherVertexStep', 'id': '4.1.0(2.0.0())'}, {'dur': 0.265068, 'counts': {'traverserCount': 518, 'elementCount': 518}, 'name': 'RepeatEndStep', 'id': '6.1.0(2.0.0())'}]}, {'dur': 1.200035, 'counts': {'traverserCount': 444, 'elementCount': 444}, 'name': 'PathFilterStep(simple,s1,null)', 'annotations': {'percentDur': 1.0560434074686158}, 'id': '3.0.0()'}, {'dur': 0.214619, 'counts': {'traverserCount': 264, 'elementCount': 264}, 'name': 'HasStep([~label.eq(B)])@[s2]', 'annotations': {'percentDur': 0.18886697476949157}, 'id': '4.0.0()'}, {'dur': 14.506215, 'counts': {'traverserCount': 8368, 'elementCount': 8368}, 'name': 'RepeatStep(emit([LoopsStep, IsStep(gte(1))]),[VertexStep(IN,edge), EdgeVertexStep(OUT), RepeatEndStep],until(loops(2)))', 'annotations': {'percentDur': 12.765621601096923}, 'id': '5.0.0()', 'metrics': [{'dur': 0.352544, 'counts': {'traverserCount': 1625, 'elementCount': 1625}, 'name': 'LoopsStep', 'id': '0.1.2(5.0.0())'}, {'dur': 0.515114, 'counts': {}, 'name': 'IsStep(gte(1))', 'id': '2.1.2(5.0.0())'}, {'dur': 3.109686, 'counts': {'traverserCount': 8368, 'elementCount': 8368}, 'name': 'VertexStep(IN,edge)', 'id': '0.1.0(5.0.0())'}, {'dur': 3.077571, 'counts': {'traverserCount': 8368, 'elementCount': 8368}, 'name': 'EdgeVertexStep(OUT)', 'id': '2.1.0(5.0.0())'}, {'dur': 4.250924, 'counts': {'traverserCount': 7007, 'elementCount': 7007}, 'name': 'RepeatEndStep', 'id': '4.1.0(5.0.0())'}]}, {'dur': 2.603431, 'counts': {'traverserCount': 4250, 'elementCount': 4250}, 'name': 'HasStep([~label.eq(B)])', 'annotations': {'percentDur': 2.291046631431105}, 'id': '6.0.0()'}, {'dur': 8.140922, 'counts': {'traverserCount': 44192, 'elementCount': 44192}, 'name': 'VertexStep(BOTH,edge)', 'annotations': {'percentDur': 7.164096887854286}, 'id': '7.0.0()'}, {'dur': 45.69575, 'counts': {'traverserCount': 44192, 'elementCount': 44192}, 'name': 'DedupGlobalStep(null,[PathStep])', 'annotations': {'percentDur': 40.21274007577612}, 'id': '8.0.0()', 'metrics': [{'dur': 6.111861, 'counts': {'traverserCount': 44192, 'elementCount': 44192}, 'name': 'PathStep', 'id': '0.1.0(8.0.0())'}]}, {'dur': 15.48812, 'counts': {'traverserCount': 44192, 'elementCount': 44192}, 'name': 'EdgeOtherVertexStep', 'annotations': {'percentDur': 13.62970831690977}, 'id': '9.0.0()'}, {'dur': 12.234278, 'counts': {'traverserCount': 19100, 'elementCount': 19100}, 'name': 'HasStep([~label.eq(A)])', 'annotations': {'percentDur': 10.766293172314409}, 'id': '10.0.0()'}, {'dur': 9.183057, 'counts': {'traverserCount': 19100, 'elementCount': 19100}, 'name': 'SelectOneStep(last,s1,null)', 'annotations': {'percentDur': 8.08118663643854}, 'id': '11.0.0()'}, {'dur': 2.750107, 'counts': {'traverserCount': 1, 'elementCount': 1}, 'name': 'CountGlobalStep', 'annotations': {'percentDur': 2.4201230523970487}, 'id': '12.0.0()'}]} {code}
{code:java}
{'dur': 109.860501, 'metrics': [{'dur': 0.093296, 'counts': {'traverserCount': 5, 'elementCount': 5}, 'name': 'TinkerGraphStep(vertex,[~label.eq(A)])@[s1]', 'annotations': {'percentDur': 0.08492224152518657}, 'id': '15.0.0()'}, {'dur': 1.494234, 'counts': {'traverserCount': 568, 'elementCount': 568}, 'name': 'RepeatStep(emit([LoopsStep, IsStep(gte(1))]),[VertexStep(BOTH,edge), DedupGlobalStep(null,[PathStep]), EdgeOtherVertexStep, RepeatEndStep],until(loops(2)))', 'annotations': {'percentDur': 1.3601194117984223}, 'id': '2.0.0()', 'metrics': [{'dur': 0.027009, 'counts': {'traverserCount': 55, 'elementCount': 55}, 'name': 'LoopsStep', 'id': '0.1.2(2.0.0())'}, {'dur': 0.019714, 'counts': {}, 'name': 'IsStep(gte(1))', 'id': '2.1.2(2.0.0())'}, {'dur': 0.160825, 'counts': {'traverserCount': 568, 'elementCount': 568}, 'name': 'VertexStep(BOTH,edge)', 'id': '0.1.0(2.0.0())'}, {'dur': 0.622997, 'counts': {'traverserCount': 568, 'elementCount': 568}, 'name': 'DedupGlobalStep(null,[PathStep])', 'id': '2.1.0(2.0.0())', 'metrics': [{'dur': 0.079921, 'counts': {'traverserCount': 568, 'elementCount': 568}, 'name': 'PathStep', 'id': '0.2.0(2.1.0(2.0.0()))'}]}, {'dur': 0.215635, 'counts': {'traverserCount': 568, 'elementCount': 568}, 'name': 'EdgeOtherVertexStep', 'id': '4.1.0(2.0.0())'}, {'dur': 0.259263, 'counts': {'traverserCount': 518, 'elementCount': 518}, 'name': 'RepeatEndStep', 'id': '6.1.0(2.0.0())'}]}, {'dur': 1.143306, 'counts': {'traverserCount': 444, 'elementCount': 444}, 'name': 'PathFilterStep(simple,s1,null)', 'annotations': {'percentDur': 1.040688864144175}, 'id': '3.0.0()'}, {'dur': 0.169786, 'counts': {'traverserCount': 264, 'elementCount': 264}, 'name': 'HasStep([~label.eq(B)])', 'annotations': {'percentDur': 0.15454690125616669}, 'id': '4.0.0()'}, {'dur': 14.164336, 'counts': {'traverserCount': 8368, 'elementCount': 8368}, 'name': 'RepeatStep(emit([LoopsStep, IsStep(gte(1))]),[VertexStep(IN,edge), EdgeVertexStep(OUT), RepeatEndStep],until(loops(2)))', 'annotations': {'percentDur': 12.893019666822747}, 'id': '5.0.0()', 'metrics': [{'dur': 0.340473, 'counts': {'traverserCount': 1625, 'elementCount': 1625}, 'name': 'LoopsStep', 'id': '0.1.2(5.0.0())'}, {'dur': 0.497164, 'counts': {}, 'name': 'IsStep(gte(1))', 'id': '2.1.2(5.0.0())'}, {'dur': 2.920372, 'counts': {'traverserCount': 8368, 'elementCount': 8368}, 'name': 'VertexStep(IN,edge)', 'id': '0.1.0(5.0.0())'}, {'dur': 3.054795, 'counts': {'traverserCount': 8368, 'elementCount': 8368}, 'name': 'EdgeVertexStep(OUT)', 'id': '2.1.0(5.0.0())'}, {'dur': 4.27663, 'counts': {'traverserCount': 7007, 'elementCount': 7007}, 'name': 'RepeatEndStep', 'id': '4.1.0(5.0.0())'}]}, {'dur': 2.664804, 'counts': {'traverserCount': 4250, 'elementCount': 4250}, 'name': 'HasStep([~label.eq(B)])', 'annotations': {'percentDur': 2.4256252026376615}, 'id': '6.0.0()'}, {'dur': 8.060513, 'counts': {'traverserCount': 44192, 'elementCount': 44192}, 'name': 'VertexStep(BOTH,edge)', 'annotations': {'percentDur': 7.337043729665861}, 'id': '7.0.0()'}, {'dur': 44.41532, 'counts': {'traverserCount': 42265, 'elementCount': 42265}, 'name': 'DedupGlobalStep(null,[PathStep])', 'annotations': {'percentDur': 40.42883438152171}, 'id': '8.0.0()', 'metrics': [{'dur': 6.06568, 'counts': {'traverserCount': 44192, 'elementCount': 44192}, 'name': 'PathStep', 'id': '0.1.0(8.0.0())'}]}, {'dur': 14.927731, 'counts': {'traverserCount': 42265, 'elementCount': 42265}, 'name': 'EdgeOtherVertexStep', 'annotations': {'percentDur': 13.58789634502031}, 'id': '9.0.0()'}, {'dur': 11.377835, 'counts': {'traverserCount': 18198, 'elementCount': 18198}, 'name': 'HasStep([~label.eq(A)])', 'annotations': {'percentDur': 10.356620347107283}, 'id': '10.0.0()'}, {'dur': 8.696222, 'counts': {'traverserCount': 18198, 'elementCount': 18198}, 'name': 'SelectOneStep(last,s1,null)', 'annotations': {'percentDur': 7.915694831939643}, 'id': '11.0.0()'}, {'dur': 2.653118, 'counts': {'traverserCount': 1, 'elementCount': 1}, 'name': 'CountGlobalStep', 'annotations': {'percentDur': 2.414988076560838}, 'id': '12.0.0()'}]}
{code}
 

 

 


> Inconsistent results when executing equivalent queries
> ------------------------------------------------------
>
>                 Key: TINKERPOP-2886
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-2886
>             Project: TinkerPop
>          Issue Type: Bug
>    Affects Versions: 3.6.2
>            Reporter: Yuancheng
>            Priority: Major
>
>  
> {code:java}
> g.V().as('s1').hasLabel('A').emit(__.loops().is(gte(1))).repeat(__.bothE().dedup().by(__.path()).otherV()).times(2).simplePath().from('s1').as('s2').hasLabel('B').emit(__.loops().is(gte(1))).repeat(__.inE().outV()).times(2).hasLabel('B').bothE().dedup().by(__.path()).otherV().hasLabel('A').select('s1').count()
> // Result: 19100{code}
>  
> {code:java}
> g.V().as('s1').hasLabel('A').emit(__.loops().is(gte(1))).repeat(__.bothE().dedup().by(__.path()).otherV()).times(2).simplePath().from('s1').hasLabel('B').emit(__.loops().is(gte(1))).repeat(__.inE().outV()).times(2).hasLabel('B').bothE().dedup().by(__.path()).otherV().hasLabel('A').select('s1').count() 
> // Result: 18198{code}
> The only difference is `as('s2')`. I would not expect it to change the result. However, they output differently. 
> Profiles:
> {code:java}
> {'dur': 113.635007, 'metrics': [{'dur': 0.099535, 'counts': {'traverserCount': 5, 'elementCount': 5}, 'name': 'TinkerGraphStep(vertex,[~label.eq(A)])@[s1]', 'annotations': {'percentDur': 0.08759184570649078}, 'id': '15.0.0()'}, {'dur': 1.518938, 'counts': {'traverserCount': 568, 'elementCount': 568}, 'name': 'RepeatStep(emit([LoopsStep, IsStep(gte(1))]),[VertexStep(BOTH,edge), DedupGlobalStep(null,[PathStep]), EdgeOtherVertexStep, RepeatEndStep],until(loops(2)))', 'annotations': {'percentDur': 1.3366813978371999}, 'id': '2.0.0()', 'metrics': [{'dur': 0.012455, 'counts': {'traverserCount': 55, 'elementCount': 55}, 'name': 'LoopsStep', 'id': '0.1.2(2.0.0())'}, {'dur': 0.02038, 'counts': {}, 'name': 'IsStep(gte(1))', 'id': '2.1.2(2.0.0())'}, {'dur': 0.175709, 'counts': {'traverserCount': 568, 'elementCount': 568}, 'name': 'VertexStep(BOTH,edge)', 'id': '0.1.0(2.0.0())'}, {'dur': 0.631128, 'counts': {'traverserCount': 568, 'elementCount': 568}, 'name': 'DedupGlobalStep(null,[PathStep])', 'id': '2.1.0(2.0.0())', 'metrics': [{'dur': 0.08288, 'counts': {'traverserCount': 568, 'elementCount': 568}, 'name': 'PathStep', 'id': '0.2.0(2.1.0(2.0.0()))'}]}, {'dur': 0.22524, 'counts': {'traverserCount': 568, 'elementCount': 568}, 'name': 'EdgeOtherVertexStep', 'id': '4.1.0(2.0.0())'}, {'dur': 0.265068, 'counts': {'traverserCount': 518, 'elementCount': 518}, 'name': 'RepeatEndStep', 'id': '6.1.0(2.0.0())'}]}, {'dur': 1.200035, 'counts': {'traverserCount': 444, 'elementCount': 444}, 'name': 'PathFilterStep(simple,s1,null)', 'annotations': {'percentDur': 1.0560434074686158}, 'id': '3.0.0()'}, {'dur': 0.214619, 'counts': {'traverserCount': 264, 'elementCount': 264}, 'name': 'HasStep([~label.eq(B)])@[s2]', 'annotations': {'percentDur': 0.18886697476949157}, 'id': '4.0.0()'}, {'dur': 14.506215, 'counts': {'traverserCount': 8368, 'elementCount': 8368}, 'name': 'RepeatStep(emit([LoopsStep, IsStep(gte(1))]),[VertexStep(IN,edge), EdgeVertexStep(OUT), RepeatEndStep],until(loops(2)))', 'annotations': {'percentDur': 12.765621601096923}, 'id': '5.0.0()', 'metrics': [{'dur': 0.352544, 'counts': {'traverserCount': 1625, 'elementCount': 1625}, 'name': 'LoopsStep', 'id': '0.1.2(5.0.0())'}, {'dur': 0.515114, 'counts': {}, 'name': 'IsStep(gte(1))', 'id': '2.1.2(5.0.0())'}, {'dur': 3.109686, 'counts': {'traverserCount': 8368, 'elementCount': 8368}, 'name': 'VertexStep(IN,edge)', 'id': '0.1.0(5.0.0())'}, {'dur': 3.077571, 'counts': {'traverserCount': 8368, 'elementCount': 8368}, 'name': 'EdgeVertexStep(OUT)', 'id': '2.1.0(5.0.0())'}, {'dur': 4.250924, 'counts': {'traverserCount': 7007, 'elementCount': 7007}, 'name': 'RepeatEndStep', 'id': '4.1.0(5.0.0())'}]}, {'dur': 2.603431, 'counts': {'traverserCount': 4250, 'elementCount': 4250}, 'name': 'HasStep([~label.eq(B)])', 'annotations': {'percentDur': 2.291046631431105}, 'id': '6.0.0()'}, {'dur': 8.140922, 'counts': {'traverserCount': 44192, 'elementCount': 44192}, 'name': 'VertexStep(BOTH,edge)', 'annotations': {'percentDur': 7.164096887854286}, 'id': '7.0.0()'}, {'dur': 45.69575, 'counts': {'traverserCount': 44192, 'elementCount': 44192}, 'name': 'DedupGlobalStep(null,[PathStep])', 'annotations': {'percentDur': 40.21274007577612}, 'id': '8.0.0()', 'metrics': [{'dur': 6.111861, 'counts': {'traverserCount': 44192, 'elementCount': 44192}, 'name': 'PathStep', 'id': '0.1.0(8.0.0())'}]}, {'dur': 15.48812, 'counts': {'traverserCount': 44192, 'elementCount': 44192}, 'name': 'EdgeOtherVertexStep', 'annotations': {'percentDur': 13.62970831690977}, 'id': '9.0.0()'}, {'dur': 12.234278, 'counts': {'traverserCount': 19100, 'elementCount': 19100}, 'name': 'HasStep([~label.eq(A)])', 'annotations': {'percentDur': 10.766293172314409}, 'id': '10.0.0()'}, {'dur': 9.183057, 'counts': {'traverserCount': 19100, 'elementCount': 19100}, 'name': 'SelectOneStep(last,s1,null)', 'annotations': {'percentDur': 8.08118663643854}, 'id': '11.0.0()'}, {'dur': 2.750107, 'counts': {'traverserCount': 1, 'elementCount': 1}, 'name': 'CountGlobalStep', 'annotations': {'percentDur': 2.4201230523970487}, 'id': '12.0.0()'}]} {code}
> {code:java}
> {'dur': 109.860501, 'metrics': [{'dur': 0.093296, 'counts': {'traverserCount': 5, 'elementCount': 5}, 'name': 'TinkerGraphStep(vertex,[~label.eq(A)])@[s1]', 'annotations': {'percentDur': 0.08492224152518657}, 'id': '15.0.0()'}, {'dur': 1.494234, 'counts': {'traverserCount': 568, 'elementCount': 568}, 'name': 'RepeatStep(emit([LoopsStep, IsStep(gte(1))]),[VertexStep(BOTH,edge), DedupGlobalStep(null,[PathStep]), EdgeOtherVertexStep, RepeatEndStep],until(loops(2)))', 'annotations': {'percentDur': 1.3601194117984223}, 'id': '2.0.0()', 'metrics': [{'dur': 0.027009, 'counts': {'traverserCount': 55, 'elementCount': 55}, 'name': 'LoopsStep', 'id': '0.1.2(2.0.0())'}, {'dur': 0.019714, 'counts': {}, 'name': 'IsStep(gte(1))', 'id': '2.1.2(2.0.0())'}, {'dur': 0.160825, 'counts': {'traverserCount': 568, 'elementCount': 568}, 'name': 'VertexStep(BOTH,edge)', 'id': '0.1.0(2.0.0())'}, {'dur': 0.622997, 'counts': {'traverserCount': 568, 'elementCount': 568}, 'name': 'DedupGlobalStep(null,[PathStep])', 'id': '2.1.0(2.0.0())', 'metrics': [{'dur': 0.079921, 'counts': {'traverserCount': 568, 'elementCount': 568}, 'name': 'PathStep', 'id': '0.2.0(2.1.0(2.0.0()))'}]}, {'dur': 0.215635, 'counts': {'traverserCount': 568, 'elementCount': 568}, 'name': 'EdgeOtherVertexStep', 'id': '4.1.0(2.0.0())'}, {'dur': 0.259263, 'counts': {'traverserCount': 518, 'elementCount': 518}, 'name': 'RepeatEndStep', 'id': '6.1.0(2.0.0())'}]}, {'dur': 1.143306, 'counts': {'traverserCount': 444, 'elementCount': 444}, 'name': 'PathFilterStep(simple,s1,null)', 'annotations': {'percentDur': 1.040688864144175}, 'id': '3.0.0()'}, {'dur': 0.169786, 'counts': {'traverserCount': 264, 'elementCount': 264}, 'name': 'HasStep([~label.eq(B)])', 'annotations': {'percentDur': 0.15454690125616669}, 'id': '4.0.0()'}, {'dur': 14.164336, 'counts': {'traverserCount': 8368, 'elementCount': 8368}, 'name': 'RepeatStep(emit([LoopsStep, IsStep(gte(1))]),[VertexStep(IN,edge), EdgeVertexStep(OUT), RepeatEndStep],until(loops(2)))', 'annotations': {'percentDur': 12.893019666822747}, 'id': '5.0.0()', 'metrics': [{'dur': 0.340473, 'counts': {'traverserCount': 1625, 'elementCount': 1625}, 'name': 'LoopsStep', 'id': '0.1.2(5.0.0())'}, {'dur': 0.497164, 'counts': {}, 'name': 'IsStep(gte(1))', 'id': '2.1.2(5.0.0())'}, {'dur': 2.920372, 'counts': {'traverserCount': 8368, 'elementCount': 8368}, 'name': 'VertexStep(IN,edge)', 'id': '0.1.0(5.0.0())'}, {'dur': 3.054795, 'counts': {'traverserCount': 8368, 'elementCount': 8368}, 'name': 'EdgeVertexStep(OUT)', 'id': '2.1.0(5.0.0())'}, {'dur': 4.27663, 'counts': {'traverserCount': 7007, 'elementCount': 7007}, 'name': 'RepeatEndStep', 'id': '4.1.0(5.0.0())'}]}, {'dur': 2.664804, 'counts': {'traverserCount': 4250, 'elementCount': 4250}, 'name': 'HasStep([~label.eq(B)])', 'annotations': {'percentDur': 2.4256252026376615}, 'id': '6.0.0()'}, {'dur': 8.060513, 'counts': {'traverserCount': 44192, 'elementCount': 44192}, 'name': 'VertexStep(BOTH,edge)', 'annotations': {'percentDur': 7.337043729665861}, 'id': '7.0.0()'}, {'dur': 44.41532, 'counts': {'traverserCount': 42265, 'elementCount': 42265}, 'name': 'DedupGlobalStep(null,[PathStep])', 'annotations': {'percentDur': 40.42883438152171}, 'id': '8.0.0()', 'metrics': [{'dur': 6.06568, 'counts': {'traverserCount': 44192, 'elementCount': 44192}, 'name': 'PathStep', 'id': '0.1.0(8.0.0())'}]}, {'dur': 14.927731, 'counts': {'traverserCount': 42265, 'elementCount': 42265}, 'name': 'EdgeOtherVertexStep', 'annotations': {'percentDur': 13.58789634502031}, 'id': '9.0.0()'}, {'dur': 11.377835, 'counts': {'traverserCount': 18198, 'elementCount': 18198}, 'name': 'HasStep([~label.eq(A)])', 'annotations': {'percentDur': 10.356620347107283}, 'id': '10.0.0()'}, {'dur': 8.696222, 'counts': {'traverserCount': 18198, 'elementCount': 18198}, 'name': 'SelectOneStep(last,s1,null)', 'annotations': {'percentDur': 7.915694831939643}, 'id': '11.0.0()'}, {'dur': 2.653118, 'counts': {'traverserCount': 1, 'elementCount': 1}, 'name': 'CountGlobalStep', 'annotations': {'percentDur': 2.414988076560838}, 'id': '12.0.0()'}]}
> {code}
>  
>  
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)