-
Notifications
You must be signed in to change notification settings - Fork 18
Orion v2 / Orion v1 comparison tests and benchmarks #65
Copy link
Copy link
Closed
Labels
Description
This issue covers an idea to test the performance and data consistency of Orion v2 by executing a set of Orion v2 queries/mutations and corresponding Orion v1 / Query node queries/mutations and comparing the results.
Things to prepare:
Queries:
- Full state queries: A query/set of queries that cover as much of the Orion v2 state as possible (ideally - queries for all existing entities w/ all possible fields) + a corresponding query/set of queries that fetch the same data from the QN / Orion v1 (taking into account schema differences): partially done (Estimated time left: ~4h)
- Atlas queries & mutations: Orion v2 version of all current Atlas queries&mutations: done
Scripts:
- Benchmarking script: A script that executes an Orion v2 query/mutation and a corresponding Orion v1 query/mutation (for all queries listed under Queries) multiple times, against provided Orion v2 and Orion v1 graphql server endpoints and calculates the average time it takes to get the results for each query/mutation for both Orion v2 and Orion v1 (optionally also compares those time differences and scores the performance of both). (Estimated time: ~4h)
- Extra feature: Also supports executing multiple queries/mutations in parallel to simulate more realistic conditions and make sure table locking doesn't drastically decrease performance of Orion v2 (Estimated time: 6h / 1 day)
- Data comparison script: based on the result of queries listed under Queries, compares the data from two sources: Orion v1 (or Query Node) and Orion v2. The script must take into account schema differences and other non-backward-compatible changes as described in Orion v2's CHANGELOG (Estimated time: ~2 days)
Total time to prepare testing setup: ~4-5 days
Tests to run:
Network tests
- Run ephesus network tests from https://github.com/Joystream/joystream/tree/ephesus (set
PERSIST=trueto keep the chain alive once tests are done) - Run Orion v1 and Orion v2 instances working w/ the test chain (once the tests are done).
- Use the Benchmarking script to compare performance between Orion v1 and Orion v2.
- Use the Data comparison script to compare query results between Orion v1 and Orion v2.
Joystream mainnet chain tests:
- Run Orion v1 and Orion v2 instance processing the current Joystream mainnet chain
- Use the Benchmarking script to compare performance between Orion v1 and Orion v2.
- Use the Data comparison script to compare query results between Orion v1 and Orion v2.
Staging networks tests
Optionally: Run tests similar to Joystream mainnet but against other networks like atlas-dev / atlas-next etc.
Reactions are currently unavailable