Joyemang33
Joyemang33
ATApache TinkerPop
Created by Joyemang33 on 7/1/2023 in #questions
Encounter strange behaviors in "match()" step
Regard to the issue in this question: I believe this query is solvable but it returns inconsistent behavior after I rebuild the graph. Could you kindly further investigate on it?
8 replies
ATApache TinkerPop
Created by Joyemang33 on 7/1/2023 in #questions
Encounter strange behaviors in "match()" step
@spmallette Many thanks for your response. I agree that the second query is unsolvable and different from the first one. I include this query in Jira to show that such missing exception does not only occur in the case of an empty graph.
8 replies
ATApache TinkerPop
Created by Joyemang33 on 7/1/2023 in #questions
Encounter strange behaviors in "match()" step
Yeah, sorry for the complex query and I have tried my best to reduce it. Maybe we can investigate some automated tools to reduce such test cases next time.😂
8 replies
ATApache TinkerPop
Created by Joyemang33 on 6/10/2023 in #questions
Are the developers of TinkerPop interested in the Performance difference on the equivalent queries?
40 replies
ATApache TinkerPop
Created by Joyemang33 on 6/10/2023 in #questions
Are the developers of TinkerPop interested in the Performance difference on the equivalent queries?
Thank you very much for your invitation and for your help in investigating these bugs 🥰 , we will improve and open-source our work ASAP. Once this is done, we will contact you to share our technology on your twitch stream and discuss with you how to make it a better testing tool for developers, similar to what SQLancer did for relational databases.
40 replies
ATApache TinkerPop
Created by Joyemang33 on 6/10/2023 in #questions
Are the developers of TinkerPop interested in the Performance difference on the equivalent queries?
I am not sure whether result is correct since the test cases are complex, but it looks like that missing such exception will lead to a worse result than we thought before.
40 replies
ATApache TinkerPop
Created by Joyemang33 on 6/10/2023 in #questions
Are the developers of TinkerPop interested in the Performance difference on the equivalent queries?
Thanks! I found some complex cases just now, where such an unsolvable pattern will lead to a non-zero result, and this result is not equal its equivalent query. I will also post the test cases on Jira.
40 replies
ATApache TinkerPop
Created by Joyemang33 on 6/10/2023 in #questions
Are the developers of TinkerPop interested in the Performance difference on the equivalent queries?
This code you provided is OK to execute! I agree with you that moving the validation to compilation will make Gremlin more consistent and help the downstream applications. Could I post a Jira for that improvement of missing exceptions rather than filtering?
40 replies
ATApache TinkerPop
Created by Joyemang33 on 6/10/2023 in #questions
Are the developers of TinkerPop interested in the Performance difference on the equivalent queries?
If so, I think in the previous case, we miss an exception in the empty graph, since the pattern is really unsolvable in Gremlin.
40 replies
ATApache TinkerPop
Created by Joyemang33 on 6/10/2023 in #questions
Are the developers of TinkerPop interested in the Performance difference on the equivalent queries?
Thanks for your help! So is it right to say that when we write a match, every sub-traversal has to start from an existing label, except for the starting node?
40 replies
ATApache TinkerPop
Created by Joyemang33 on 6/10/2023 in #questions
Are the developers of TinkerPop interested in the Performance difference on the equivalent queries?
Sure. I've tried going through the documentation and I don't seem to see a definition at the query level of whether a pattern can be solved, i.e., whether the query can be solved in Gremlin without actually executing it.
40 replies
ATApache TinkerPop
Created by Joyemang33 on 6/10/2023 in #questions
Are the developers of TinkerPop interested in the Performance difference on the equivalent queries?
PS: it looks like there are no well-defined rules for solvable patterns in Gremlin, looking forward to your new approach in 3.8.0
40 replies
ATApache TinkerPop
Created by Joyemang33 on 6/10/2023 in #questions
Are the developers of TinkerPop interested in the Performance difference on the equivalent queries?
Thanks again! I agree with you that it does not lead to incorrect results or crashes. In the research, they are also interested in these unexpected exception issues, and I believe that filtering the exception in such cases will improve the behaviors of the downstream applications (e.g., receiving an exception may make their code harder to handle). Thus, I will create a JIRA for filtering the unexpected exception 🥰 .
40 replies
ATApache TinkerPop
Created by Joyemang33 on 6/10/2023 in #questions
Are the developers of TinkerPop interested in the Performance difference on the equivalent queries?
Regarding the example of returning an exception, I'd like to gather your perspective on whether it should be considered a bug or an area for potential improvement in the future. While I truly enjoy our discussion on Discord, I had to post some questions on Jira before for the purpose of paper publication (paper should quote these Jira links). This will enable us to open-source our testing tools at the earliest opportunity. We kindly request your permission to post this example on Jira as a point for further improvement, which would be highly appreciated 🥰 .
40 replies
ATApache TinkerPop
Created by Joyemang33 on 6/10/2023 in #questions
Are the developers of TinkerPop interested in the Performance difference on the equivalent queries?
Thank you very much for your thorough explanation! I agree with you that many statements with "match" can be better replaced by other statements in Gremlin, and I use these test cases only because they are part of my testing algorithm.
40 replies
ATApache TinkerPop
Created by Joyemang33 on 6/10/2023 in #questions
Are the developers of TinkerPop interested in the Performance difference on the equivalent queries?
Thanks for your help, but I have a question why in the second case instead of returning an empty result it returns such an exception? It seems a bit confusing to the user because the pattern itself is not unsolvable, but there is no result in the database that matches the condition.
40 replies
ATApache TinkerPop
Created by Joyemang33 on 6/10/2023 in #questions
Are the developers of TinkerPop interested in the Performance difference on the equivalent queries?
Consider the following Gremlin query in an empty graph, it is OK to execute:
gremlin> g.V().match(__.as("A").out().as("B"), __.as("C").out().as("B"), __.as("D").out().as("A")).profile()
=>TinkerGraphStep(vertex,[])
MatchStep(null,AND,[[MatchStartStep(A), VertexS...
MatchStartStep(A)
VertexStep(OUT,vertex)
MatchEndStep(B)
MatchStartStep(C)
VertexStep(OUT,vertex)
MatchEndStep(B)
MatchStartStep(D)
VertexStep(OUT,vertex)
MatchEndStep(A)
gremlin> g.V().match(__.as("A").out().as("B"), __.as("C").out().as("B"), __.as("D").out().as("A")).profile()
=>TinkerGraphStep(vertex,[])
MatchStep(null,AND,[[MatchStartStep(A), VertexS...
MatchStartStep(A)
VertexStep(OUT,vertex)
MatchEndStep(B)
MatchStartStep(C)
VertexStep(OUT,vertex)
MatchEndStep(B)
MatchStartStep(D)
VertexStep(OUT,vertex)
MatchEndStep(A)
However, it will lead to an "unsolvable pattern" exception in the graph Mordern
gremlin> graph = TinkerFactory.createModern()
==>tinkergraph[vertices:6 edges:6]
gremlin> g=traversal().withEmbedded(graph)
==>graphtraversalsource[tinkergraph[vertices:6 edges:6], standard]
gremlin> g.V().match(__.as("A").out().as("B"), __.as("C").out().as("B"), __.as("D").out().as("A"))
The provided match pattern is unsolvable: [[MatchStartStep(A), VertexStep(OUT,vertex), MatchEndStep(B)], [MatchStartStep(D), VertexStep(OUT,vertex), MatchEndStep(A)], [MatchStartStep(C), VertexStep(OUT,vertex), MatchEndStep(B)]]
gremlin> graph = TinkerFactory.createModern()
==>tinkergraph[vertices:6 edges:6]
gremlin> g=traversal().withEmbedded(graph)
==>graphtraversalsource[tinkergraph[vertices:6 edges:6], standard]
gremlin> g.V().match(__.as("A").out().as("B"), __.as("C").out().as("B"), __.as("D").out().as("A"))
The provided match pattern is unsolvable: [[MatchStartStep(A), VertexStep(OUT,vertex), MatchEndStep(B)], [MatchStartStep(D), VertexStep(OUT,vertex), MatchEndStep(A)], [MatchStartStep(C), VertexStep(OUT,vertex), MatchEndStep(B)]]
40 replies
ATApache TinkerPop
Created by Joyemang33 on 6/10/2023 in #questions
Are the developers of TinkerPop interested in the Performance difference on the equivalent queries?
Thanks! I will provide some examples after the reduction ASAP. I mean that the same query fails with an "unsolvable match" exception in certain graph data, while it is ok to execute in the TinkerGraphModern.
40 replies
ATApache TinkerPop
Created by Joyemang33 on 6/10/2023 in #questions
Are the developers of TinkerPop interested in the Performance difference on the equivalent queries?
The different graph data, it fails in the database I create and ok to execute in modern graph.
40 replies
ATApache TinkerPop
Created by Joyemang33 on 6/10/2023 in #questions
Are the developers of TinkerPop interested in the Performance difference on the equivalent queries?
PS: I think it's cool to be able to communicate with you here instead of posting on Jira, because there are so many interesting things in Gremlin to learn in depth. Thank you all for providing this discord platform!🥰
40 replies