forked from JanusGraph/janusgraph
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Revamp JanusGraphMultiQueryStrategy for better parent step usage
This commit improves JanusGraphMultiQueryStrategy to better support multi-query compatible parent steps. 1. This commit brings better support for `repeat` step by introducing next itaration registration process. Previously `repeat` children steps was getting traversers registered from the beginning of all outer repeat steps which could result in duplicate or unnecesary retrievals for the first batch. Moreover, next iterations were not considered. This commit changes the approach to register only with the beginning and end of the first reaching `repeat` step. 2. Instead of using JanusGraphMultiQueryStep in the local traversal, this commit changes the approach to use the most outer eligible parent's JanusGraphMultiQueryStep. This improves usage of the existing parent steps by properly registering batches instead of registering batches considering local elements only. 3. This commit adds support to almost all known TinkerPop Parent steps. The exception is `match` step. We didn't have proper outter start registration for `match` step previously and now as well. Fixes JanusGraph#3733 Fixes JanusGraph#3735 Fixes JanusGraph#2996 Signed-off-by: Oleksandr Porunov <alexandr.porunov@gmail.com>
- Loading branch information
Showing
20 changed files
with
960 additions
and
161 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
464f027
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Benchmark
org.janusgraph.JanusGraphSpeedBenchmark.basicAddAndDelete
22591.61132622552
ms/op14592.350329134762
ms/op1.55
org.janusgraph.GraphCentricQueryBenchmark.getVertices
1759.0309326152978
ms/op1410.712796988719
ms/op1.25
org.janusgraph.MgmtOlapJobBenchmark.runClearIndex
223.0356434596838
ms/op220.4986067826087
ms/op1.01
org.janusgraph.MgmtOlapJobBenchmark.runReindex
565.2601097933333
ms/op463.4839651230303
ms/op1.22
org.janusgraph.JanusGraphSpeedBenchmark.basicCount
410.36693196582615
ms/op435.58338127635653
ms/op0.94
org.janusgraph.CQLMultiQueryBenchmark.getNeighborNames
56671.73308133333
ms/op35025.41079112
ms/op1.62
org.janusgraph.CQLMultiQueryBenchmark.getNames
56677.99831524999
ms/op35580.854839073334
ms/op1.59
This comment was automatically generated by workflow using github-action-benchmark.