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

[GIE CI Test] Introduce Integrated Tests for Compiler and Hiactor Functionality in GIE #2914

Open
shirly121 opened this issue Jun 19, 2023 · 4 comments
Assignees

Comments

@shirly121
Copy link
Collaborator

shirly121 commented Jun 19, 2023

Is your feature request related to a problem? Please describe.

The GraphScope Interactive Engine (GIE) is a powerful tool for executing Gremlin or Cypher queries against graph data. To ensure the functionality and reliability of the Compiler and Hiactor components within GIE, it is crucial to introduce integrated tests that cover their respective functionalities. This GitHub issue focuses on implementing a comprehensive test suite that consists of three parts: the test entry point, the Compiler service, and the Hiactor service.

Test Entry Point:
The test entry point encompasses the test framework and the workload. For the workload, we will introduce LDBC interactive workload written in Cypher. This workload will contain a diverse set of Cypher queries that cover various query patterns, complexities, and use cases. The test framework will utilize the Maven test command to execute the tests. Behind the scenes, the Maven test command will utilize a Neo4j driver, which will send the Cypher queries as strings to the remote Compiler service.

Compiler Service:
The Compiler service is a critical component responsible for translating Cypher queries into execution plans. Start or Stop commands need to be provided to initialize or gracefully terminate the Compiler service.

Hiactor Service:
The Hiactor service is responsible for actual execution. In addition to start and stop commands, the Hiactor service needs to load graph data for testing purposes. Specifically, we will use the LDBC benchmark data with a scale factor of 1. Loading this data will ensure realistic and representative testing scenarios.

@yecol
Copy link
Collaborator

yecol commented Jun 19, 2023

Sounds very cool!
Is that possible to make the tests are easy to trigger? Or maybe consider integrating it to the gsctl command?
Thus whether in CI or the developers are easily to verify the modification on code, just by running:

gsctl test interactive-entry-point
gsctl test interactive-compiler-service
gsctl test interactive-hiactor-service
# or even simpler to run a complete suite by
gsctl test interactve

If you think this proposal is OK,
just add a sub-command for test here and organize the scripts here

@shirly121
Copy link
Collaborator Author

Sounds very cool! Is that possible to make the tests are easy to trigger? Or maybe consider integrating it to the gsctl command? Thus whether in CI or the developers are easily to verify the modification on code, just by running:

gsctl test interactive-entry-point
gsctl test interactive-compiler-service
gsctl test interactive-hiactor-service
# or even simpler to run a complete suite by
gsctl test interactve

If you think this proposal is OK, just add a sub-command for test here and organize the scripts here

Okay~ but I'm a little confused, what's the difference between gsctl and gs (under root directory) ?

@yecol
Copy link
Collaborator

yecol commented Jun 20, 2023

Hi shirly121,

In short, gsctl (write in Python) is a replacement to gs(bash), which is going to be deprecated.

as suggested and discussed on our weekly meeting, (5/23),
We are going to deprecate gs and rewrite it in Python, to make the functionalities reusable and callable via code.
This is initialized by this #2825 and its PR introducing gsctl.

Please leave gs untouched, and it will be deleted soon.

shirly121 added a commit that referenced this issue Jul 19, 2023
<!--
Thanks for your contribution! please review
https://github.com/alibaba/GraphScope/blob/main/CONTRIBUTING.md before
opening an issue.
-->

## What do these changes do?
as titled.

<!-- Please give a short brief about these changes. -->

## Related issue number

<!-- Are there any issues opened that will be resolved by merging this
change? -->

#2914

---------

Co-authored-by: Longbin Lai <longbin.lailb@alibaba-inc.com>
@zhanglei1949
Copy link
Collaborator

The Cypher Queries CI tests for HighQPS Engine is introduced in this PR

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

No branches or pull requests

3 participants