******************************************************* Neptune Gremlin Explain ******************************************************* Query String ============ g.V().project("VertexType1","VertexType2","VertexType3","VertexType4","VertexType5","VertexType6","VertexType7","VertexType8").by(V().hasLabel("VertexType1").limit(1)).by(V().hasLabel("VertexType2").limit(1)).by(V().hasLabel("VertexType3").limit(1)).by(V().hasLabel("VertexType4").limit(1)).by(V().hasLabel("VertexType5").limit(1)).by(V().hasLabel("VertexType6").limit(1)).by(V().hasLabel("VertexType7").limit(1)).by(V().hasLabel("VertexType8").limit(1)).limit(1) Original Traversal ================== [GraphStep(vertex,[]), ProjectStep([VertexType1, VertexType2, VertexType3, VertexType4, VertexType5, VertexType6, VertexType7, VertexType8],[[GraphStep(vertex,[]), HasStep([~label.eq(VertexType1)]), RangeGlobalStep(0,1)], [GraphStep(vertex,[]), HasStep([~label.eq(VertexType2)]), RangeGlobalStep(0,1)], [GraphStep(vertex,[]), HasStep([~label.eq(VertexType3)]), RangeGlobalStep(0,1)], [GraphStep(vertex,[]), HasStep([~label.eq(VertexType4)]), RangeGlobalStep(0,1)], [GraphStep(vertex,[]), HasStep([~label.eq(VertexType5)]), RangeGlobalStep(0,1)], [GraphStep(vertex,[]), HasStep([~label.eq(VertexType6)]), RangeGlobalStep(0,1)], [GraphStep(vertex,[]), HasStep([~label.eq(VertexType7)]), RangeGlobalStep(0,1)], [GraphStep(vertex,[]), HasStep([~label.eq(VertexType8)]), RangeGlobalStep(0,1)]]), RangeGlobalStep(0,1)] Converted Traversal =================== Neptune steps: [ NeptuneGraphQueryStep(Vertex) { JoinGroupNode { JoinGroupNode { PatternNode[VL(?1, <~label>, ?2, <~>) . project distinct ?1 .] }, finishers=[limit(1)] }, {path=[Vertex(?1):GraphStep], maxVarId=19} }, NeptuneProjectStep { NeptuneGraphQueryStep(Vertex) { JoinGroupNode { PatternNode[VL(?3, <~label>, ?4=, <~>) . project ?3 .], {estimatedCardinality=259941824, oneResult=true} }, {initialValues={?1=null}, path=[Vertex(?1):GraphStep, Vertex(?3):GraphStep], maxVarId=19} }, NeptuneGraphQueryStep(Vertex) { JoinGroupNode { PatternNode[VL(?5, <~label>, ?6=, <~>) . project ?5 .], {estimatedCardinality=94304986, oneResult=true} }, {initialValues={?1=null}, path=[Vertex(?1):GraphStep, Vertex(?5):GraphStep], maxVarId=19} }, NeptuneGraphQueryStep(Vertex) { JoinGroupNode { PatternNode[VL(?7, <~label>, ?8=, <~>) . project ?7 .], {estimatedCardinality=199481486, oneResult=true} }, {initialValues={?1=null}, path=[Vertex(?1):GraphStep, Vertex(?7):GraphStep], maxVarId=19} }, NeptuneGraphQueryStep(Vertex) { JoinGroupNode { PatternNode[VL(?9, <~label>, ?10=, <~>) . project ?9 .], {estimatedCardinality=72190876, oneResult=true} }, {initialValues={?1=null}, path=[Vertex(?1):GraphStep, Vertex(?9):GraphStep], maxVarId=19} }, NeptuneGraphQueryStep(Vertex) { JoinGroupNode { PatternNode[VL(?11, <~label>, ?12=, <~>) . project ?11 .], {estimatedCardinality=39101280, oneResult=true} }, {initialValues={?1=null}, path=[Vertex(?1):GraphStep, Vertex(?11):GraphStep], maxVarId=19} }, NeptuneGraphQueryStep(Vertex) { JoinGroupNode { PatternNode[VL(?13, <~label>, ?14=, <~>) . project ?13 .], {estimatedCardinality=205772256, oneResult=true} }, {initialValues={?1=null}, path=[Vertex(?1):GraphStep, Vertex(?13):GraphStep], maxVarId=19} }, NeptuneGraphQueryStep(Vertex) { JoinGroupNode { PatternNode[VL(?15, <~label>, ?16=, <~>) . project ?15 .], {estimatedCardinality=94554496, oneResult=true} }, {initialValues={?1=null}, path=[Vertex(?1):GraphStep, Vertex(?15):GraphStep], maxVarId=19} }, NeptuneGraphQueryStep(Vertex) { JoinGroupNode { PatternNode[VL(?17, <~label>, ?18=, <~>) . project ?17 .], {estimatedCardinality=99018742, oneResult=true} }, {initialValues={?1=null}, path=[Vertex(?1):GraphStep, Vertex(?17):GraphStep], maxVarId=19} } }, NeptuneTraverserConverterStep ] Optimized Traversal =================== Neptune steps: [ NeptuneGraphQueryStep(Vertex) { JoinGroupNode { PatternNode[VL(?1, <~label>, ?2, <~>) . project distinct ?1 .], {estimatedCardinality=INFINITY} }, finishers=[limit(1)], {path=[Vertex(?1):GraphStep], maxVarId=19, estimatedCardinality=1} }, NeptuneProjectStep { NeptuneGraphQueryStep(Vertex) { JoinGroupNode { PatternNode[VL(?3, <~label>, ?4=, <~>) . project ?3 .], {estimatedCardinality=259941824, oneResult=true} }, {initialValues={?1=null}, path=[Vertex(?1):GraphStep, Vertex(?3):GraphStep], maxVarId=19} }, NeptuneGraphQueryStep(Vertex) { JoinGroupNode { PatternNode[VL(?5, <~label>, ?6=, <~>) . project ?5 .], {estimatedCardinality=94304986, oneResult=true} }, {initialValues={?1=null}, path=[Vertex(?1):GraphStep, Vertex(?5):GraphStep], maxVarId=19} }, NeptuneGraphQueryStep(Vertex) { JoinGroupNode { PatternNode[VL(?7, <~label>, ?8=, <~>) . project ?7 .], {estimatedCardinality=199481486, oneResult=true} }, {initialValues={?1=null}, path=[Vertex(?1):GraphStep, Vertex(?7):GraphStep], maxVarId=19} }, NeptuneGraphQueryStep(Vertex) { JoinGroupNode { PatternNode[VL(?9, <~label>, ?10=, <~>) . project ?9 .], {estimatedCardinality=72190876, oneResult=true} }, {initialValues={?1=null}, path=[Vertex(?1):GraphStep, Vertex(?9):GraphStep], maxVarId=19} }, NeptuneGraphQueryStep(Vertex) { JoinGroupNode { PatternNode[VL(?11, <~label>, ?12=, <~>) . project ?11 .], {estimatedCardinality=39101280, oneResult=true} }, {initialValues={?1=null}, path=[Vertex(?1):GraphStep, Vertex(?11):GraphStep], maxVarId=19} }, NeptuneGraphQueryStep(Vertex) { JoinGroupNode { PatternNode[VL(?13, <~label>, ?14=, <~>) . project ?13 .], {estimatedCardinality=205772256, oneResult=true} }, {initialValues={?1=null}, path=[Vertex(?1):GraphStep, Vertex(?13):GraphStep], maxVarId=19} }, NeptuneGraphQueryStep(Vertex) { JoinGroupNode { PatternNode[VL(?15, <~label>, ?16=, <~>) . project ?15 .], {estimatedCardinality=94554496, oneResult=true} }, {initialValues={?1=null}, path=[Vertex(?1):GraphStep, Vertex(?15):GraphStep], maxVarId=19} }, NeptuneGraphQueryStep(Vertex) { JoinGroupNode { PatternNode[VL(?17, <~label>, ?18=, <~>) . project ?17 .], {estimatedCardinality=99018742, oneResult=true} }, {initialValues={?1=null}, path=[Vertex(?1):GraphStep, Vertex(?17):GraphStep], maxVarId=19} } }, NeptuneTraverserConverterStep ] Predicates ========== # of predicates: 31