-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Query optimization summary based on cache experiment #4063
Comments
2.2 is by design in cypher. 2.3 and 2.4 are not expected and should be optimized at query layer. |
I think query of these nonexistent keys is caused by there is only RPC |
@Shylock-Hg In storage, the tag to search is passed by query layer. If tag is specified, the
|
|
With experiments on empty cache, we summarize the queries that will generate non-existing keys as follows. Some are expected but some are not.
1. GoNStep without specifying tags in return
GO 1 STEP FROM {} OVER KNOWS YIELD properties($$)
--- large number of non-existing keysvs.
GO 1 STEP FROM {} OVER KNOWS YIELD $$.Person.birthday
2. Match
2.1 queries returning vertices without a tag in matching condition
MATCH (v) RETURN v LIMIT 3
--- expected2.2 queries returning vertices with a tag in matching condition
MATCH (v:player) RETURN v LIMIT 3
---debatable2.3 Any path matching query
MATCH ()<-[e]-() RETURN e LIMIT 3
--- not expectedThis query is expected to return edges, but will call appendVertices -> getProp -> TagNode to get properties of nodes. It is not optimized.
2.4 Implicitly specifying edge type
MATCH (v:player{name:"Tim Duncan"})--(v2:player) RETURN v2.player.name AS Name
--- not expectedThis query implicitly indicates that the edge type to query is "follow'. But when it assembles the edge key prefix, it still tries all possible edge types, which result in the destination ids which belong to the "Team" tag are also retrieved. Then the key combined by that kind of destination ids and tag of player will cause keys not found for sure.
The text was updated successfully, but these errors were encountered: