Skip to content

Release v0.25.0

Compare
Choose a tag to compare
@lidongze0629 lidongze0629 released this 10 Nov 07:13
· 258 commits to main since this release
8235b29

We are thrilled to introduce a range of enhancements to GraphScope, with the GraphScope 0.25.0 release. This release encompasses significant features and improvements in Interactive Engine (GIE), FLEX Interactive, and bug fix.

1. Interactive under GraphScope Flex Architecture

  • Release GraphScope Interactive.
  • Enrich the movie graph schema and example query statements.
  • Implement a query cache to avoid recompiling the same adhoc query.
  • Support using the property of string type as primary key for vertex.

2. Enhancements for GIE

  • Support get disk status in groot, user could retrieve the total space and free space of the store pod via Python/Java client. Example API is here
  • Enhancements to count(): We've implemented two primary optimizations to accelerate the count() operation:
    • Optimized Counting of Vertices/Edges: Operations like g.V().count() that previously required a complete enumeration of vertices followed by a count, are now streamlined into a single fused operator. This operator efficiently counts vertices or edges in tandem with their iteration.
    • Improved Worker Utilization: The prior count() implementation was limited to using a single worker per machine for counting tasks, irrespective of the available configured workers. Now, count() operations are distributed across all configured workers, leveraging parallel processing to boost performance.
  • Users can now interact with GIE using natural language. We've integrated the capability to call OpenAI-compatible APIs within GIE, enabling the translation of human language inputs into Cypher queries. This advancement allows for a more intuitive and accessible query experience. For instance, users can utilize our Python API to execute the following code:
from graphscope.langchain_prompt.query import query_to_cypher
endpoint = "https://xxx" # use your endpoint 
api_key = "xxx" # replace to your own api key
question = "贾宝玉是谁的儿子?"
cypher_sentence = query_to_cypher(graph, question, endpoint=endpoint, api_key=api_key)
print(cypher_sentence)

Docker Image

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

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

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

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

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

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

What's Changed

  • refactor(interactive): Generate Stored Procedure Config Automatically in Compiler by @shirly121 in #3140
  • feat(interactive): Support length() Operator in Cypher Queries by @shirly121 in #3166
  • fix(interactive): Fix bug in computing path length in GIE by @BingqingLyu in #3172
  • ci: Support to build GraphScope Images(both x86 and arm64) in CI workflow by @FLYLX in #3152
  • ci: fixes failure of building images by adding actions/checkout step by @lidongze0629 in #3174
  • ci: Pre-release v0.25.0 by @lidongze0629 in #3175
  • chore: fixes the link for the flex directory by @sighingnow in #3176
  • fix(interactive): Fix the bug in the RexNode to Proto Conversion by @shirly121 in #3171
  • feat(interactive): Support [] Operator in Cypher Queries by @shirly121 in #3168
  • refactor(interactive): Parse Graph Schema from Yaml Configuration by @shirly121 in #3145
  • feat(python): Refactor coordinator for operator by @siyuan0322 in #3148
  • fix(interactive): don't require openssl-sys during building GIE by @sighingnow in #3181
  • feat(interactive): Enable clear properties for groot node by @siyuan0322 in #3180
  • refactor(interactive): Support Nested Branch Logical Plan by @MeloYang05 in #3151
  • refactor(interactive): Support head(collect(XX)) in Cypher Queries by @shirly121 in #3178
  • fix(python): fix default field in py311 by @siyuan0322 in #3183
  • feat(interactive): Support IS_NULL and IS_NOT_NULL in Cypher Queries by @shirly121 in #3167
  • feat(interactive): Support Unfold step in GIE by @Louyk14 in #3143
  • remove google-java-format.jar by @Louyk14 in #3196
  • feat(interactive): Add schema management ability for groot java sdk by @siyuan0322 in #3193
  • refactor(interactive): Support DateFormats in GIE Runtime by @BingqingLyu in #3197
  • fix(interactive): Fix bugs of Chinese Encoding by @shirly121 in #3195
  • refactor(flex): Replace the Adhoc csv reader with Arrow CSV reader by @zhanglei1949 in #3154
  • refactor(interactive): Support Date Type and EXTRACT Operator in Cypher Queries by @shirly121 in #3169
  • ci: Update pr-check.yml by @yecol in #3207
  • feat(interactive): support project properties of a path by @BingqingLyu in #3213
  • feat(interactive): Enhancement pieces for groot by @siyuan0322 in #3217
  • fix(interactive): Fix bugs in Label Name to Id Conversion by @shirly121 in #3221
  • feat(interactive): Support LDBC SNB IC1,4,7,10 for HQPS Engine by @zhanglei1949 in #3147
  • chore: don't reinstall (may trigger upgrade) if libarrow-dev has already been installed by @sighingnow in #3241
  • ci: fixes the Python dependency error in CI by @sighingnow in #3242
  • fix(interactive): Not requiring eid in update/delete edges in groot by @siyuan0322 in #3240
  • fix(python): default session needs to be aware of g.set_option(num_workers=...) by @sighingnow in #3246
  • refactor(interactive): Refactor the user interface of Interactive by @zhanglei1949 in #3201
  • feat(interactive): support unfold path entry in GIE Runtime by @BingqingLyu in #3236
  • fix(interactive): Fix several bugs in data-load-tools by @siyuan0322 in #3249
  • fix(interactive): Fix NPE when update/delete vertices by @siyuan0322 in #3250
  • build(interactive): Reduce image size by @zhanglei1949 in #3247
  • fix(interactive): Support fusion of scan+count in GIE Runtime for optimization by @BingqingLyu in #3233
  • fix(flex): Support set edge strategy on each vertex_type_pair_relation by @zhanglei1949 in #3257
  • feat(learning): Integrate GLTorch into GraphScope by @LiSu in #3230
  • feat(interactive): Support labels and type Functions in Cypher Queries by @shirly121 in #3255
  • build(learning): bump torch from 1.13 to 1.13.1 in /python by @dependabot in #3264
  • refactor(interactive): Introduce a new test set for Interactive by @zhanglei1949 in #3251
  • docs(interactive): Add docs for GraphScope Interactive by @zhanglei1949 in #3267
  • fix: Flex add rt_bench and fix some bug by @liulx20 in #3268
  • chore: Enable retrieve disk status of store node from client by @siyuan0322 in #3274
  • fix(interactive): clear download path when start store service by @siyuan0322 in #3276
  • ci: requires macos 12 as homebrew (and apple) do not provide support for this old version by @sighingnow in #3278
  • fix(interactive): Fix Implicit Type Conversion Issues in HQPS by @shirly121 in #3256
  • fix(interactive): block service until graph schema is synced by @siyuan0322 in #3280
  • chore: Increase the disk size of minikube cluster by @siyuan0322 in #3283
  • fix(interactive): Increase ingestor queue buffer size by @siyuan0322 in #3284
  • fix(analytical): reduce louvain memory usage by @siyuan0322 in #3273
  • ci: fixes the check of libarrow-dev existence on Ubuntu by @sighingnow in #3291
  • ci: fixes the handling the pytorch dependency by @sighingnow in #3290
  • ci: increasing the default timeout setting for pip install by @sighingnow in #3292
  • ci: free disk spaces and install correct torch without download many from pypi by @sighingnow in #3293
  • ci: run test cases in subprocess with pytest-sdist by @sighingnow in #3294
  • docs: fixes the filename of loading graphs page by @sighingnow in #3295
  • feat(interactive): support extract intervals from temporal types in GIE by @BingqingLyu in #3229
  • fix(interactive): Support Index predicate for dynamic params in IR-Core by @BingqingLyu in #3282
  • fix(interactive): Support Index predicate with multiple expected values given via P.within() by @BingqingLyu in #3300
  • ci: macos: make sure $HOME/.local/bin present in PATH by @sighingnow in #3302
  • refactor(coordinator): and gsctl to support FLEX interactive by @lidongze0629 in #3297
  • fix(interactive): Fix Bugs in Dynamic Params by @shirly121 in #3279
  • fix(interactive): Distinguish 'label equals' or 'unique key equals' from Filter Conditions by @shirly121 in #3285
  • fix(interactive): Introduce Cypher CI Tests for GIE on Experimental Store by @shirly121 in #3303
  • feat(flex): Support using property of string type as primary key for vertex by @liulx20 in #3296
  • chore: use target instead of name resolver factory by @siyuan0322 in #3306
  • fix(interactive): Update example movie graph and fix some bug by @zhanglei1949 in #3304
  • feat(interactive): Add groot charts that start all components within one pod by @siyuan0322 in #3308
  • fix(interactive): Fix the problem of not returning properties together when returning a vertex/edge. by @zhanglei1949 in #3298
  • feat(interactive): Reuse compiled native lib for same physical plan by @zhanglei1949 in #3301
  • feat(interactive): Support Regex Match for String Values by @shirly121 in #3286
  • fix(interactive): Ad-hoc Handling for Connection Validation in Gremlin by @shirly121 in #3315
  • fix(interactive): fix bug in release cstr pointer in compiler by @BingqingLyu in #3307
  • fix(interactive): Fix Bugs in Converting Match into Join by @shirly121 in #3311
  • fix(interactive): fix parallel scan in GIE by @BingqingLyu in #3317
  • feat: Enabling Natural Language Graph Queries in GraphScope with chatGPT #2648 by @Suchun-sv in #3271
  • [doc] add llm doc index by @longbinlai in #3319
  • fix(interactive): Implement Field Trimmer Rule in Compiler by @JialuGong in #3200
  • feat(interactive): Fix Type Inference in 'ARRAY_VALUE_CONSTRUCTOR' and 'MAP_VALUE_CONSTRUCTOR' by @shirly121 in #3287
  • fix(interactive): Fuse Source With Count to Optimize in Gremlin by @shirly121 in #3320
  • fix(interactive): implement count with efficiency by @siyuan0322 in #3326
  • fix(interactive): download to a tmp file then move by @siyuan0322 in #3331
  • ci: explicitly set python version on MacOS CI by @sighingnow in #3329
  • ci: fixes build failure with apache-arrow 14 by @sighingnow in #3333
  • fix(interactive): Make Pegasus Related Settings Configurable Per Query by @shirly121 in #3321
  • fix(interactive): Introduce Degree Fusion RBO Rules by @shirly121 in #3312
  • feat(interactive): Support cancel in interactive by @lnfjpt in #3310
  • fix(interactive): Fix a bug for CSVFragmentLoader by @zhanglei1949 in #3336
  • ci: Fixes release failure of groot image by @lidongze0629 in #3337

New Contributors

Full Changelog: v0.24.0...v0.25.0