Skip to content

Release v0.23.0

Compare
Choose a tag to compare
@lidongze0629 lidongze0629 released this 04 Jul 12:26
· 463 commits to main since this release
7dcf195

We are thrilled to introduce a range of enhancements to GraphScope, with the GraphScope 0.23.0 release. This release encompasses significant features and improvements in Interactive Engine (GIE), GraphScope Flex, and Deployment.

We highlight the following improvements included in this release:

1. GraphScope Flex Technical Preview

GraphScope Flex represents the ongoing evolution of GraphScope. In this release, we're excited to introduce a technical preview of GraphScope Flex. It highlights a modular design that reduces resource and cost requirements while providing a seamless, user-friendly experience for flexible deployment. It's currently under active development, and we look forward to your feedback.

Key Features:

  • Modular Design: Assemble your stack much like LEGO blocks to customize your graph computing deployments.
  • Three-Layer Architecture: Components are organized into an application layer, execution layer, and storage layer.
  • Flexible Builds and Deployments: Use the flexbuild script to build a custom deployment tailored for your specific use case.

You can explore GraphScope Flex in the flex/ directory or through the released artifacts

  • graphscope_flex_db_cppsp_hiactor_mcsr,
  • graphscope_flex_olap_builtin_grape-cpu, and
  • graphscope_flex_gnn_gnnmodels_graphlearn_tensorflow_vineyard.so

packages for high-QPS interactive queries, graph analytics, and graph learning task use cases, respectively. Dive in and discover what GraphScope Flex has to offer!

2. Enhancements for GIE

  • Support the recording of both vertices and edges during path expansion. In the past, path expansion had the option to yield either all vertices or the end vertex of the path. However, due to the requirements of both Gremlin and our users, it's essential to also retrieve the edges of the path, besides the vertices. To activate this feature, use with('RESULT_OPT', 'ALL_V_E') in the path expansion syntactic sugar. Here is an example:
    gremlin> g.V().out("1..3", "knows").with('RESULT_OPT', 'ALL_V_E')
         ==>[v[1], e[0][1-knows->2], v[2]]
         ==>[v[1], e[2][1-knows->4], v[4]]
    
  • We are now happy to introduce the capability of querying Cypher in GIE, by integrating Neo4j's bolt service in our system. Please follow the guide to enable bolt service (only on local) for querying with Cypher. We also attempt to make the syntax of Cypher as close as openCypher, and the details of our support for Cypher can be found here.

3. Other enhancements and bug fixes

  • GAE Java
    • Fix VertexSet's problem of supporting vertex_id in java long.
    • Add Grape-GraphX performance report
    • Fix the problem of installing grape-jdk locally.

Docker Image

# Coordinator Image
docker pull registry.cn-hongkong.aliyuncs.com/graphscope/coordinator:0.23.0

# Graph Analytical Engine(GAE) Image
docker pull registry.cn-hongkong.aliyuncs.com/graphscope/analytical:0.23.0

# Frontend component of Graph Interactive Engine(GIE) image
docker pull registry.cn-hongkong.aliyuncs.com/graphscope/interactive-frontend:0.23.0
# Executor component of Graph Interactive Engine(GIE) image 
docker pull registry.cn-hongkong.aliyuncs.com/graphscope/interactive-executor:0.23.0

# Graph Learning Engine(GLE) Image
docker pull registry.cn-hongkong.aliyuncs.com/graphscope/learning:0.23.0

# GraphScope persistent storage, user can only perform GIE query on it.
docker pull registry.cn-hongkong.aliyuncs.com/graphscope/graphscope-store:0.23.0

# Develop Image
docker pull registry.cn-hongkong.aliyuncs.com/graphscope/graphscope-dev:latest

What's Changed

  • [7dcf195]: Change the version to v0.23.0 (#2969) (Dongze Li)
  • [7316297]: Introduce flexbuild and a readme to flex. (#2954) (luoxiaojian)
  • [d8ad6ce]: Install jdk 11 on MacOS CI and fixes the GAE link failure in nightly CI on MacOS (#2965) (Tao He)
  • [c27f459]: Fixes two compliation warnings (#2968) (Tao He)
  • [bb1921e]: Update the elementMap-step's doc of GIE (#2966) (Dongze Li)
  • [cb27df4]: Fixes nightly CI error for Arm Linux wheels (#2963) (Tao He)
  • [69258d9]: Fixes the "illegal thread local variable reference to regular symbol" error on macOS for GLE (#2962) (Tao He)
  • [1e2c8f6]: [GIE Compiler] Unify Gremlin Timeout Configurations (#2953) (Xiaoli Zhou)
  • [4694963]: Add setuptools to client requirement in order to use pyproject based build (#2958) (Siyuan Zhang)
  • [7fc14b5]: [GIE Compiler] Support Case When Expression in Logical and Physical Plan (#2918) (Xiaoli Zhou)
  • [b82b748]: Avoid implicit int to enum conversion, causing the -fpermissive error (#2957) (Siyuan Zhang)
  • [ad4aea1]: Use the correct delete in free_graph_handle (#2955) (Tao He)
  • [21fd644]: Sort the server list before iterate to keep consistent between workers (#2956) (Tao He)
  • [502e410]: Parallelize the PrepareToRun implementation in projected fragment (#2949) (Tao He)
  • [5ffad66]: Add two more pagerank variants (#2950) (Siyuan Zhang)
  • [a222479]: Use pagerank_local_parallel rather than pagerank_local for better performance (#2945) (Tao He)
  • [92da638]: Refine CI process (#2948) (Siyuan Zhang)
  • [555b13d]: add figures for GraphScope Flex. (#2946) (Jingbo Xu)
  • [7035c0a]: ElementMap step support (#2942) (Dongze Li)
  • [b6402e7]: cluster_builder.py: add missing copyright header and remove unused import lines (#2944) (Tao He)
  • [5b852ff]: Docs preview is only available for pull requests from the orignal repo, not forks (#2943) (Tao He)
  • [cab8cde]: Add GLE quick start example in the overview getting started page (#2939) (LiSu)
  • [badf3f3]: hotfix: pull_request_target issue. (#2941) (Jingbo Xu)
  • [08f8d0f]: Disable JAVA SDK (with a warning) when JNI not found (#2937) (Tao He)
  • [f543cd2]: Improve the deploy_with_existing_vineyard_cluster doc for easy understanding (#2930) (Ye Cao)
  • [ae8d96c]: Show explicit error message for SSSP run over a graph with no edge weight (#2929) (Lei Wang)
  • [50c7a1e]: Pin vineyard python version to 0.15.0 (#2933) (Siyuan Zhang)
  • [25496f8]: Connect to frontend directly, bypass coordinator for GIE query (#2923) (Siyuan Zhang)
  • [96d5093]: [GIE Compiler] Parse Label Id to Name in label Operator (#2928) (Xiaoli Zhou)
  • [34b3650]: [GAE-Java] Use FFI-bitset rather than java BitSet for VertexSet backend (#2926) (Zhang Lei)
  • [f0a779e]: [good-first-issue]Move save_to/load_from from client side to coordinator (#2917) (Zhang Lei)
  • [c1007cf]: [GIE Compiler] Introduce cypher service to accept queries from neo4j ecosystem (#2848) (Xiaoli Zhou)
  • [7637aaf]: [GIE] Refine FFI interface build_physical_plan (#2911) (Xiaoli Zhou)
  • [d0dc2b7]: Print metrics of application running time (#2908) (Siyuan Zhang)
  • [628773d]: [Bug Fix] Fix bug of null pointer exception in distinct operator (#2901) (Xiaoli Zhou)
  • [0a44e71]: Fixes the misuse of "continue-on-error" and "fail_ci_if_error". (#2904) (Tao He)
  • [612bd7f]: Upload coverage: continue on error to avoid false negative on main branch (#2903) (Tao He)
  • [513155c]: Upgrade the graphlearn submodule to fixes nightly CI, refactor the Makefile for early error exit (#2902) (Tao He)
  • [bd7680f]: Use CONFIG mode to find protobuf to address the absl dependency issue. (#2899) (Tao He)
  • [cf81c7b]: [GAE-Java] Relax version enforce for some mvn dependencies (#2894) (Zhang Lei)
  • [b37ab90]: [GIE Compiler] Add data type of algebra operator output to physical plan (#2870) (Xiaoli Zhou)
  • [79cd577]: Use local metadata backend to avoid the requirements of etcd for local sessions (#2889) (Tao He)
  • [7ef0e4d]: fix munew line are not rendered correclty when multiple params are given (#2891) (Siyuan Zhang)
  • [fbf40f6]: Update the pre-genereated unload_op when the op itself been deepcopied (#2888) (Tao He)
  • [32089f2]: [Grape-Java] Add grape-graphx performance.md (#2886) (Zhang Lei)
  • [e4f1f23]: Allow pass params to gie instance (#2885) (Siyuan Zhang)
  • [17819c8]: [BugFix] Fix bug in endV() after PathExpand (#2881) (BingqingLyu)
  • [a18836d]: [GIE Compiler] Support dynamic query params in cypher queries (#2874) (Xiaoli Zhou)
  • [ce3e16b]: [GAE/tests] Add GAE tests for FLASH algorithms of bfs and cc (#2869) (Longbin Lai)
  • [5a63faf]: upload log should not fail the CI (#2879) (Siyuan Zhang)
  • [559b084]: Direct the content of log files to stdout of pods in kubernetes deployment (#2871) (Siyuan Zhang)
  • [4af5689]: add initial version of command-line tool gsctl. (#2868) (Jingbo Xu)
  • [7a3e06b]: [GIE Doc] Update Doc for PathExpand Step Usage in GIE (#2877) (BingqingLyu)
  • [387f915]: Fixes the docs generation for tagged releases (#2878) (Tao He)
  • [c489c63]: [BugFix] Make the error message truncated not so aggressive (#2876) (Weibin Zeng)
  • [e9af91a]: [GIE] Support PathExpand with OPT=ALL_V_E in GIE (#2841) (BingqingLyu)
  • [3773889]: Add a initializeCommand to devcontainer.json: always pull newer image before create container (#2873) (Weibin Zeng)
  • [086fa63]: [GIE/docs] reorganize gremlin docs (#2862) (Longbin Lai)
  • [bd89520]: Allow triggering workflow dispatch event for CIs (#2865) (Ke Meng)
  • [a0b36ee]: [GIE Doc] Add examples to collect gremlin results in a streaming way (#2842) (Xiaoli Zhou)
  • [5fd6cc1]: Fixes the inconsistent usage of msgpack/json in graph reporter and avoid protobuf message creation in del (#2843) (Tao He)
  • [434acdf]: Fix dns search error in groot (#2850) (Siyuan Zhang)
  • [9bf071c]: auto-gen docs of flex (#2851) (ds-ssj)
  • [6851cd9]: allow null value in data loading (#2845) (Siyuan Zhang)
  • [1ba6102]: [GIE Compiler] Introduce GraphPlanner to unify logical and physical plan building (#2838) (Xiaoli Zhou)
  • [a8b9dce]: [GAE-Java] Use maven-flatten-plugin to replace revision property for locally build&install (#2840) (Zhang Lei)
  • [3c4cd9d]: Fix compile error for the flash bc algorithm on ubuntu (#2839) (lixueclaire)
  • [0de3063]: use -O3 instead of -O0 in customized algo compilation (#2837) (Siyuan Zhang)
  • [9a265dc]: [GIE/Runtime] Redesign PartitionerInfo, ClusterInfo, and Router trait to better support parallel processing in Runtime (#2744) (BingqingLyu)
  • [653823b]: [GIE/tests] Add pattern matching test cases for GIE (#2831) (lixueclaire)
  • [30e45e0]: [GIE Compiler] Unify execution client which is used to send request to remote engine service (#2818) (Xiaoli Zhou)
  • [f469415]: Remove unused ports in Groot deployment (#2832) (Siyuan Zhang)
  • [d75ba7b]: Add coordinator as the Ownerreferces of frontend deployment. (#2830) (Ye Cao)
  • [ec218cf]: [GIE Compiler] Fix query params of getV base in path expand operator (#2773) (Xiaoli Zhou)
  • [e28faa9]: Change version to 0.23.0 for daily release (#2828) (Dongze Li)
  • [4535bc3]: Fixes errors during macos M1 CI (#2827) (Tao He)
  • [9f2334c]: [GIE/docs] Add gie glossary and quick start (#2821) (Longbin Lai)