Skip to content
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

Orion v2 / Orion v1 comparison tests and benchmarks #65

Closed
4 tasks done
Lezek123 opened this issue Jan 30, 2023 · 1 comment
Closed
4 tasks done

Orion v2 / Orion v1 comparison tests and benchmarks #65

Lezek123 opened this issue Jan 30, 2023 · 1 comment
Assignees
Labels

Comments

@Lezek123
Copy link
Contributor

Lezek123 commented Jan 30, 2023

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

  1. Run ephesus network tests from https://github.com/Joystream/joystream/tree/ephesus (set PERSIST=true to keep the chain alive once tests are done)
  2. Run Orion v1 and Orion v2 instances working w/ the test chain (once the tests are done).
  3. Use the Benchmarking script to compare performance between Orion v1 and Orion v2.
  4. Use the Data comparison script to compare query results between Orion v1 and Orion v2.

Joystream mainnet chain tests:

  1. Run Orion v1 and Orion v2 instance processing the current Joystream mainnet chain
  2. Use the Benchmarking script to compare performance between Orion v1 and Orion v2.
  3. 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.

@Lezek123
Copy link
Contributor Author

Lezek123 commented Feb 28, 2023

Status update on the work related to this issue:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants