-
Notifications
You must be signed in to change notification settings - Fork 0
[COR-78] Add limited-traversal query on a binary tree with one supernode #69
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
base: master
Are you sure you want to change the base?
Conversation
847fd1c to
566ff5f
Compare
|
Hi @jvolmer - we need to see whether your refactoring changes affect existing edges and subquery tests (their results to be exact) since both suites use test data created with: if (testParams.edges || testParams.subqueryTests) {
initializeEdgeCollection();
}Could you pls run perf-simple-branch pipeline (specifying the required ArangoDB and simple-performance-test branches) Thanks upfront :) |
|
Hi @jvolmer - thanks for running the performance tests from your branches. Now that we have results it's possible to visualize them and compare to As you can see (especially with tests executed against the cluster) - there's a number of tests that were negatively impacted by the changes and it's not only Could you pls trigger another build of perf-simple-branch so that we can have more data to compare and take a closer look at the tests' results with significant disparity (if the outcome will be similar). Thank you in advance! |
Depending on the distribution of shards, the traversals had to do different number of http requests which resulted in varying performance results.
|
I now ran perf-simple-branch several times and did not see significant differences (I looked here) at the behaviour over time. The two PRs I mentioned above that were the reason for this PR are now merged into devel already. Additionally, this PR now fixes significant instabilities in the traversal simple performance tests by setting the number of shards to the number of dbservers. This way we fix the number of required http requests per run. Before, we used one shard everywhere, such that in one run the edges and the vertices shard could live on different dbservers, on another run they could live on the same dbserver, which would result in a difference of http requests by a factor of 2 which would result in significant performance differences. We see these performance differences in the cluster traversal tests: They basically fluctuate between two values. |
|
This adds two tests for a traversal on a tree with a supernode:
This can be used to measure the performance changes from batching traversals (https://arangodb.atlassian.net/browse/COR-7), testable on cluster with https://github.com/arangodb/arangodb/pull/22081/files and single server with [COR-67] Make single-server traversal executor (with DFS) batch its neighbour retrieval arangodb#22062 - which are now merged into devel.
I also refactored the already existing script for the creation of trees for better readability.
Additionally, this PR now fixes significant instabilities in the traversal simple performance tests by setting the number of shards to the number of dbservers. This way we fix the number of required http requests per run. Before, we used one shard everywhere, such that in one run the edges and the vertices shard could live on different dbservers, on another run they could live on the same dbserver, which would result in a difference of http requests by a factor of 2 which would result in significant performance differences. We see these performance differences in the cluster traversal tests: They basically fluctuate between two values.