We are delighted to bring a number of improvements to GraphScope, alongside the GraphScope 0.27.0 release. This release contains many important features and improvements to GraphScope FLEX、gsctl command-line utility、Graph Interactive Engine (GIE) and Groot persistent storage.
We highlight the following improvements included in this release:
**1. `gsctl` command-line utility**
`gsctl` is a command-line utility designed to simplify the usage of GraphScope. With gsctl, users can easily interact with [GraphScope Flex](https://github.com/alibaba/GraphScope/tree/main/flex) product, such as Interactive(for high QPS queries) and Insight(for online BI analysis), build binaries and docker images, and perform various utility tasks related to GraphScope. See more detailed informaton from [doc](https://graphscope.io/docs/latest/utilities/gs).
**Key Features of gsctl**
- Utility Scripts: gsctl provides a collection of utility scripts that simplify common tasks such as installing dependencies, building binaries and docker images, and running test suites.
- Client/Server Mode: With the client/server mode, users can connect to a launched coordinator and interact with specific GraphScope products behind it. This mode enables managing sessions, resources, and other product-specific functionalities.
- Scope Management: gsctl allows users to switch between global and local scopes, enabling them to work with graphs and resources at different levels. This flexibility enhances productivity and enables efficient management of graph computation tasks.
- Configuration Management: gsctl includes configuration options that can be customized to suit specific requirements. Users can specify a custom coordinator endpoint and manage other configuration settings as needed.
**2. [GraphScope FLEX](https://github.com/alibaba/GraphScope/tree/main/flex)**
- Support build docker images through `gsctl flexbuild` command.
bash
$ git clone https://github.com/alibaba/GraphScope.git && cd GraphScope
$ python3 gsctl.py flexbuild insight/interactive --app docker
- Support deploy `Interactive` and `Insight` product through docker image.
bash
$ docker pull registry.cn-hongkong.aliyuncs.com/graphscope/graphscope-store:0.27.0-flex
launch engine and coordinator service: 12312 gremlin endpoint, 55556 grpc endpoint, 8080 coordinator endpoint
$ docker run -p 12312:12312 -p 55556:55556 -p 8080:8080 registry.cn-hongkong.aliyuncs.com/graphscope/graphscope-store:0.27.0-flex /usr/local/groot/bin/start_local_cluster.sh
- Connect to a launched coordinator and interact with the products
bash
graphscopehost:/work/python$ gsctl connect --coordinator-endpoint http://127.0.0.1:8081
[SUCCESS] Connected to http://127.0.0.1:8081, coordinator is serving with GRAPHSCOPE_INSIGHT mode.
Try 'gsctl --help' for help.
graphscopehost:/work/python$ gsctl ls
schema
├── vertex types
│ ├── person
│ │ ├── Property(name: id, type: LONG, is_primary_key: True)
│ │ ├── Property(name: name, type: STRING, is_primary_key: False)
│ │ └── Property(name: age, type: LONG, is_primary_key: False)
│ └── software
│ ├── Property(name: id, type: LONG, is_primary_key: True)
│ ├── Property(name: name, type: STRING, is_primary_key: False)
│ └── Property(name: lang, type: STRING, is_primary_key: False)
└── edge types
├── (person) -[created]-> (software)
│ ├── Property(name: edge_id, type: LONG, is_primary_key: False)
│ └── Property(name: weight, type: DOUBLE, is_primary_key: False)
└── (person) -[knows]-> (person)
├── Property(name: edge_id, type: LONG, is_primary_key: False)
└── Property(name: weight, type: DOUBLE, is_primary_key: False)
**3. Enhancements for Groot**
- Integrate a prototype of OpenTelemetry into Groot, users could switch on option `trace.enabled=true`, which will have a jaeger container that collect traces. And it will serve a website on `POD_IP:16686`.
Docker Images
shell
Coordinator Image
docker pull registry.cn-hongkong.aliyuncs.com/graphscope/coordinator:0.27.0
Graph Analytical Engine(GAE) Image
docker pull registry.cn-hongkong.aliyuncs.com/graphscope/analytical:0.27.0
Frontend component of Graph Interactive Engine(GIE) image
docker pull registry.cn-hongkong.aliyuncs.com/graphscope/interactive-frontend:0.27.0
Executor component of Graph Interactive Engine(GIE) image
docker pull registry.cn-hongkong.aliyuncs.com/graphscope/interactive-executor:0.27.0
Graph Learning Engine(GLE) Image
docker pull registry.cn-hongkong.aliyuncs.com/graphscope/learning:0.27.0
GraphScope persistent storage, user can only perform GIE query on it.
docker pull registry.cn-hongkong.aliyuncs.com/graphscope/graphscope-store:0.27.0
Develop Image
docker pull registry.cn-hongkong.aliyuncs.com/graphscope/graphscope-dev:latest
What's Changed
* feat(flex): refactor memory management of mmap_array to support Hugepage. by luoxiaojian in https://github.com/alibaba/GraphScope/pull/3505
* fix(interactive): Fix install_dependency.sh by zhanglei1949 in https://github.com/alibaba/GraphScope/pull/3500
* fix(flex): Fixed the usage of storage strategy. by luoxiaojian in https://github.com/alibaba/GraphScope/pull/3506
* fix(interactive): Fix building flex with `-DBUILD_HQPS=OFF` by zhanglei1949 in https://github.com/alibaba/GraphScope/pull/3497
* fix(interactive): 离线全量导入时, 新增wait参数, 在download全部完成后, wait指定时间(单位ms), 再进行提交 by bufapiqi in https://github.com/alibaba/GraphScope/pull/3509
* ci: Fix ci failure and pre-release v0.27.0 by lidongze0629 in https://github.com/alibaba/GraphScope/pull/3512
* feat(flex): Configure the memory strategy with memory-level. by luoxiaojian in https://github.com/alibaba/GraphScope/pull/3511
* refactor: coordinator and gsctl under FLEX architecture by lidongze0629 in https://github.com/alibaba/GraphScope/pull/3481
* chore(deps): bump werkzeug from 0.16.1 to 2.3.8 in /flex/coordinator by dependabot in https://github.com/alibaba/GraphScope/pull/3518
* chore(deps): bump flask from 2.1.1 to 2.2.5 in /flex/coordinator by dependabot in https://github.com/alibaba/GraphScope/pull/3519
* docs(interactive): Update doc by zhanglei1949 in https://github.com/alibaba/GraphScope/pull/3514
* ci: fixes a syntax error in CI by sighingnow in https://github.com/alibaba/GraphScope/pull/3521
* fix(interactive): Fix argument passing in hqps_app by zhanglei1949 in https://github.com/alibaba/GraphScope/pull/3522
* chore: change manylinux2014-ci to manylinux2014 by siyuan0322 in https://github.com/alibaba/GraphScope/pull/3529
* feat(flex): Implemented Immutable Csrs. by luoxiaojian in https://github.com/alibaba/GraphScope/pull/3527
* fix(interactive): Fix interactive building Dockerfile by zhanglei1949 in https://github.com/alibaba/GraphScope/pull/3528
* fix(interactive): Fix error when loading edge with string properties by zhanglei1949 in https://github.com/alibaba/GraphScope/pull/3523
* feat(interactive): Update graph `graph_algo` by zhanglei1949 in https://github.com/alibaba/GraphScope/pull/3486
* fix(interactive): support non-blocking data loading interface in coordinator and fix failure during flexbuild process by lidongze0629 in https://github.com/alibaba/GraphScope/pull/3530
* feat(interactive): Decouple ingestor and store, remote direct RPC connections. by siyuan0322 in https://github.com/alibaba/GraphScope/pull/3525
* Update README.md for SIGMOD 2024 paper by wenyuanyu in https://github.com/alibaba/GraphScope/pull/3534
* fix(interactive): Integrate Gremlin Into New Compilation Stack by shirly121 in https://github.com/alibaba/GraphScope/pull/3332
* fix(k8s): Bump up vineyard to v0.20.3 by dashanji in https://github.com/alibaba/GraphScope/pull/3532
* fix(interactive): Fix sinking `ElementID` for TwoLabelVertexSet by zhanglei1949 in https://github.com/alibaba/GraphScope/pull/3535
* fix(interactive): Fix `PathExpand` related bugs by zhanglei1949 in https://github.com/alibaba/GraphScope/pull/3538
* fix(interactive): fix install_dependencies by liulx20 in https://github.com/alibaba/GraphScope/pull/3539
* fix(flex): Fix warning when compiling with `AOCC` compilers by zhanglei1949 in https://github.com/alibaba/GraphScope/pull/3510
* fix(interactive): Fix `test_gremlin_timeout` in Python Unit Tests by shirly121 in https://github.com/alibaba/GraphScope/pull/3536
* fix(interactive): Fix Bugs of Group Returning Results from Compiler by shirly121 in https://github.com/alibaba/GraphScope/pull/3533
* ci: fixes some dependencies issues by sighingnow in https://github.com/alibaba/GraphScope/pull/3553
* chore: Spelling comments by jsoref in https://github.com/alibaba/GraphScope/pull/3549
* docs: fixes typos in documentation by jsoref in https://github.com/alibaba/GraphScope/pull/3554
* fix(analytical): Fix Louvain algorithm's move on const message by songqing in https://github.com/alibaba/GraphScope/pull/3551
* docs: fixes typos in YAML configurations by jsoref in https://github.com/alibaba/GraphScope/pull/3555
* feat: Impl the file upload interface for FLEX dataloading by lidongze0629 in https://github.com/alibaba/GraphScope/pull/3557
* fix(interactive): support src and dst of an edge with different type by liulx20 in https://github.com/alibaba/GraphScope/pull/3552
* feat(interactive): Support PTHash indexer by liulx20 in https://github.com/alibaba/GraphScope/pull/3558
* fix(interactive): Fix secondary catchup error by reopening secondary by siyuan0322 in https://github.com/alibaba/GraphScope/pull/3567
* fix(interactive): Fix a bug in pkscan with expected values given in `Within` by BingqingLyu in https://github.com/alibaba/GraphScope/pull/3540
* fix(analytical): fix bug that flash app can not run on string oid graph by acezen in https://github.com/alibaba/GraphScope/pull/3570
* fix: Spelling python graphscope tests by jsoref in https://github.com/alibaba/GraphScope/pull/3568
* docs: fixes typos in flex coordinator by jsoref in https://github.com/alibaba/GraphScope/pull/3556
* fix(interactive): Fix typo in cypher query examples by jsoref in https://github.com/alibaba/GraphScope/pull/3559
* fix(analytical): trim the physical memory usage when unloading graphs by sighingnow in https://github.com/alibaba/GraphScope/pull/3548
* fix(interactive): snapshot id may lag behind in some scenarios by siyuan0322 in https://github.com/alibaba/GraphScope/pull/3576
* feat(interactive): Add profile to build compiler fat-jar by lnfjpt in https://github.com/alibaba/GraphScope/pull/3574
* ci: fixes typos in flex coordinator by jsoref in https://github.com/alibaba/GraphScope/pull/3572
* fix(interactive): Drop unused classes and modules in groot by siyuan0322 in https://github.com/alibaba/GraphScope/pull/3577
* fix: fixes typos/spelling in flex engines by jsoref in https://github.com/alibaba/GraphScope/pull/3582
* fix: fixes typos/spelling in flex codegen by jsoref in https://github.com/alibaba/GraphScope/pull/3581
* fix(interactive): Migrating Physical Layer into New Compilation Stack by BingqingLyu in https://github.com/alibaba/GraphScope/pull/3560
* fix: fixes the compiler error under rust >= 1.76.0 by sighingnow in https://github.com/alibaba/GraphScope/pull/3584
* fix(interactive): 离线全量导入支持vipserver发现endpoint, 支持replay, 支持compact, 支持reopen by bufapiqi in https://github.com/alibaba/GraphScope/pull/3585
* fix(python): Fixes `graph.unload()`: makes the warning loudly, and use the new DelData API by sighingnow in https://github.com/alibaba/GraphScope/pull/3593
* fix: fixes spelling errors in analytical engine java by jsoref in https://github.com/alibaba/GraphScope/pull/3588
* fix(interactive): Use a larger version upper bound by siyuan0322 in https://github.com/alibaba/GraphScope/pull/3595
* fix(interactive): Rename `modern_graph.yaml` to `graph.yaml` by zhanglei1949 in https://github.com/alibaba/GraphScope/pull/3603
* feat(interactive): Add `entrypoint.sh` for Interactive by zhanglei1949 in https://github.com/alibaba/GraphScope/pull/3604
* refactor(interactive): Wrap schema parsing errors by zhanglei1949 in https://github.com/alibaba/GraphScope/pull/3607
* fix(analytical): remove `scripts/install_deps.sh` and update the related document by acezen in https://github.com/alibaba/GraphScope/pull/3608
* fix(interactive): Fix Bug When Global Id Parameters Having Long Type by shirly121 in https://github.com/alibaba/GraphScope/pull/3597
* feat(interactive): Add flag files to track bulk loading progress by zhanglei1949 in https://github.com/alibaba/GraphScope/pull/3605
* fix(interactive): Fix Bug in Operator Precedence of `not` by shirly121 in https://github.com/alibaba/GraphScope/pull/3598
* fix(interactive): Migrating Physical Layer (Repartition) into New Compilation Stack by BingqingLyu in https://github.com/alibaba/GraphScope/pull/3586
* fix(interactive): Fix `interactive-runtime.Dockerfile` by zhanglei1949 in https://github.com/alibaba/GraphScope/pull/3614
* fix: fixes spelling in analytical engine core by jsoref in https://github.com/alibaba/GraphScope/pull/3587
* fix(analytical): Fix graph template parsing in Java SDK by zhanglei1949 in https://github.com/alibaba/GraphScope/pull/3617
* fix(analytical): Fix documentation for GRAPE-JDK by zhanglei1949 in https://github.com/alibaba/GraphScope/pull/3618
* fix(interactive): use pk hash to generate eid if has pk by siyuan0322 in https://github.com/alibaba/GraphScope/pull/3621
* fix(interactive): Support Gremlin `union` Step in Calcite-Based IR Layer by shirly121 in https://github.com/alibaba/GraphScope/pull/3594
* refactor(interactive): Add type and queryStr for `StoredProcedureMeta` by zhanglei1949 in https://github.com/alibaba/GraphScope/pull/3622
* feat(interactive): Add OpenTelemetry instrument for flex interactive by siyuan0322 in https://github.com/alibaba/GraphScope/pull/3628
* fix(interactive): fix a bug in PathExpand with 'PATH_OPT' as 'SIMPLE' by BingqingLyu in https://github.com/alibaba/GraphScope/pull/3623
* fix(interactive): Add Cypher Queries used in GOpt Benchmark by BingqingLyu in https://github.com/alibaba/GraphScope/pull/3625
* fix(python): Enable the BUILD_VINEYARD_GRAPH_WITH_GAR compile option in gsctl by acezen in https://github.com/alibaba/GraphScope/pull/3627
* fix(interactive): Fix CMakeLists.txt when otel not found in flex by zhanglei1949 in https://github.com/alibaba/GraphScope/pull/3633
* ci: Building vineyard-dev image by lidongze0629 in https://github.com/alibaba/GraphScope/pull/3635
* fix(learning): fix gltorch wheel building by LiSu in https://github.com/alibaba/GraphScope/pull/3629
* refactor(interactive): Fix bug and use `ServiceConfig` to gather all configurations by zhanglei1949 in https://github.com/alibaba/GraphScope/pull/3634
* fix(interactive): Fix CI for HQPS engine by zhanglei1949 in https://github.com/alibaba/GraphScope/pull/3638
* fix(interactive): Fix argument parsing for `enable-admin-service` by zhanglei1949 in https://github.com/alibaba/GraphScope/pull/3640
* feat(interactive): Support gremlin query. by zhanglei1949 in https://github.com/alibaba/GraphScope/pull/3575
* feat: Integrate groot into flex architecture by lidongze0629 in https://github.com/alibaba/GraphScope/pull/3566
* fix(interactive): Fix Timeout Bug & Process Results From Pegasus Synchronously by shirly121 in https://github.com/alibaba/GraphScope/pull/3630
* feat(interactive): Integrate otel into groot, and add charts for one-pod by siyuan0322 in https://github.com/alibaba/GraphScope/pull/3641
* fix(interactive): Fix CI Bug Caused By PR 3630 by shirly121 in https://github.com/alibaba/GraphScope/pull/3647
* fix(interactive): Minor typo fix by zhanglei1949 in https://github.com/alibaba/GraphScope/pull/3643
* refactor(interactive): Support Gremlin Expression in Calcite-Based IR Layer by shirly121 in https://github.com/alibaba/GraphScope/pull/3637
* fix(interactive): Fix the incorrect casting from int into string when converting from `YAML` to `JSON` by zhanglei1949 in https://github.com/alibaba/GraphScope/pull/3649
* refactor: Make gsctl to be more like a database design by lidongze0629 in https://github.com/alibaba/GraphScope/pull/3648
* refactor: Make gsctl to be more like a database design for Groot storage by lidongze0629 in https://github.com/alibaba/GraphScope/pull/3651
* fix(interactive): Fix failing to install Arrow by liulx20 in https://github.com/alibaba/GraphScope/pull/3652
* fix(interactive): Introduce the high-order statistics provider `GLogue` into the new Compilation Stack by BingqingLyu in https://github.com/alibaba/GraphScope/pull/3609
* feat(interactive): Enable starting compiler as a subprocess of interactive server by zhanglei1949 in https://github.com/alibaba/GraphScope/pull/3650
* fix(interactive): Prevent persist invalid meta during abnormal shutdown. by siyuan0322 in https://github.com/alibaba/GraphScope/pull/3661
* ci: Fixes CI failure on macOS by lidongze0629 in https://github.com/alibaba/GraphScope/pull/3662
* fix(interactive): add store-state service back by siyuan0322 in https://github.com/alibaba/GraphScope/pull/3664
* fix(interactive): Fix the occasionally incorrect pegasus server routing configuration by siyuan0322 in https://github.com/alibaba/GraphScope/pull/3673
* fix(learning): Fix torch version to be compatible with gcc8 and python3.7 by LiSu in https://github.com/alibaba/GraphScope/pull/3677
* fix(interactive): Fix unexpected alias when fusion `Expand` + `GetV` by BingqingLyu in https://github.com/alibaba/GraphScope/pull/3676
* fix(learning): specify proper torch version for macos by LiSu in https://github.com/alibaba/GraphScope/pull/3679
* fix(interactive): fix the bug in missing metadata in `PathExpand` by BingqingLyu in https://github.com/alibaba/GraphScope/pull/3667
New Contributors
* jsoref made their first contribution in https://github.com/alibaba/GraphScope/pull/3549
**Full Changelog**: https://github.com/alibaba/GraphScope/compare/v0.26.0...v0.27.0