From b3902418e17170f81d55c6018bbea4137c1a155a Mon Sep 17 00:00:00 2001 From: imbajin Date: Sat, 3 Oct 2026 00:25:24 +0800 Subject: [PATCH 1/8] docs: clarify Java 17 upgrade requirements - Separate upgrade branch requirements from Java 11 packages - Document the TinkerPop and Groovy transition in both languages - Explain bundled serializer configuration and script compatibility --- .../quickstart/hugegraph/hugegraph-server.md | 18 ++++++++++++++++-- .../quickstart/hugegraph/hugegraph-server.md | 18 ++++++++++++++++-- 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/content/cn/docs/quickstart/hugegraph/hugegraph-server.md b/content/cn/docs/quickstart/hugegraph/hugegraph-server.md index 481d2108c5..d681f6e8f3 100644 --- a/content/cn/docs/quickstart/hugegraph/hugegraph-server.md +++ b/content/cn/docs/quickstart/hugegraph/hugegraph-server.md @@ -36,7 +36,7 @@ flowchart TD ### 2.1 安装 Java 11 (JDK 11) -HugeGraph 1.7.0 中的 `hugegraph-server` 模块使用 Java 11 编译,运行和源码构建均需使用 Java 11 或更高版本。 +基于 Java 11 构建的 HugeGraph 1.7.0 发行包需要 Java 11 或更高版本;下述 Java 17 升级分支则需要使用 Java 17。 **在继续阅读前,请先执行 `java -version` 命令确认 JDK 版本。** @@ -44,7 +44,21 @@ HugeGraph 1.7.0 中的 `hugegraph-server` 模块使用 Java 11 编译,运行 > 安全检查默认开启,会安装 `HugeSecurityManager`,它要求 Java 11 到 23。JDK 24 移除了 Security Manager([JEP 486](https://openjdk.org/jeps/486)),因此在 Java 24 及更高版本上必须关闭该检查后再启动服务:`bin/start-hugegraph.sh -s false`。 -> 源码构建还需要 Maven 3.5.0 或更高版本。 +> 构建基于 Java 11 的源码还需要 Maven 3.5.0 或更高版本。 + +> [!NOTE] +> **Java 17 / TinkerPop 升级分支** +> +> 对于 [Java 17 基础分支](https://github.com/hugegraph/hugegraph/pull/231)及其后续 PR, +> 所有模块的源码构建要求 **JDK 17 和 Maven 3.6.3 或更高版本**,Server、PD 和 Store 的运行环境统一使用 **JDK 17**。 +> 本次升级尚未验证其他 JDK 版本。 +> 基础分支保留 TinkerPop 3.5.1,[最终升级分支](https://github.com/hugegraph/hugegraph/pull/233)使用 TinkerPop 3.8.1 和 Groovy 4.0.25。 +> 这些要求适用于对应的源码分支,不改变已有 Java 11 发行包的运行要求。 +> +> 请使用升级后 Server 随包提供的 Gremlin 配置。序列化器类从 `org.apache.tinkerpop.gremlin.driver.ser` +> 移至 `org.apache.tinkerpop.gremlin.util.ser`,并需保留配置中的 HugeGraph registries。 +> 默认脚本引擎仍为 Gremlin Groovy;部署前应检查应用脚本与 TinkerPop 3.5.1 到 3.8.1 整个升级区间的兼容性, +> 本次升级不会将远程请求切换为 GremlinLang。 ## 3 部署 diff --git a/content/en/docs/quickstart/hugegraph/hugegraph-server.md b/content/en/docs/quickstart/hugegraph/hugegraph-server.md index fc62026772..2ea1fe33cc 100644 --- a/content/en/docs/quickstart/hugegraph/hugegraph-server.md +++ b/content/en/docs/quickstart/hugegraph/hugegraph-server.md @@ -37,7 +37,7 @@ flowchart TD ### 2.1 Install Java 11 (JDK 11) -The `hugegraph-server` module in HugeGraph 1.7.0 is compiled with Java 11. Running and building it from source require Java 11 or later. +The Java 11-based HugeGraph 1.7.0 distribution requires Java 11 or later. The Java 17 upgrade branches described below require Java 17 instead. **Before continuing, run `java -version` to confirm your JDK version.** @@ -45,7 +45,21 @@ The `hugegraph-server` module in HugeGraph 1.7.0 is compiled with Java 11. Runni > The security check is on by default and installs `HugeSecurityManager`, which needs Java 11 to 23. JDK 24 removed the Security Manager ([JEP 486](https://openjdk.org/jeps/486)), so on Java 24 or later you must start the service with the check disabled: `bin/start-hugegraph.sh -s false`. -> Building from source also needs Maven 3.5.0 or later. +> Building the Java 11-based source tree also needs Maven 3.5.0 or later. + +> [!NOTE] +> **Java 17 / TinkerPop upgrade branches** +> +> For the [Java 17 foundation](https://github.com/hugegraph/hugegraph/pull/231) and its dependent PRs, +> build all modules with **JDK 17 and Maven 3.6.3 or later**, and run Server, PD and Store with **JDK 17**. +> Other JDK releases are not qualified by this upgrade. +> The foundation retains TinkerPop 3.5.1; the [final upgrade](https://github.com/hugegraph/hugegraph/pull/233) +> moves to TinkerPop 3.8.1 and Groovy 4.0.25. These requirements apply to those source branches, not to existing Java 11-based packages. +> +> Use the Gremlin configuration files bundled with the upgraded Server. Serializer classes move from +> `org.apache.tinkerpop.gremlin.driver.ser` to `org.apache.tinkerpop.gremlin.util.ser`; retain the supplied HugeGraph registries. +> Gremlin Groovy remains the default engine. Check application scripts against the full TinkerPop 3.5.1 to 3.8.1 upgrade interval; +> this upgrade does not switch remote requests to GremlinLang. ## 3 Deploy From 6af1c8119eba6e8af6672ab4957e45de06b3d4f1 Mon Sep 17 00:00:00 2001 From: imbajin Date: Sat, 3 Oct 2026 01:31:45 +0800 Subject: [PATCH 2/8] docs: define the Java 17 release boundary - Require Java 17 starting with HugeGraph 1.8.0 in both languages - Identify 1.7.0 as the final Java 11 release and remove old guidance - Explain uniform-list capability flags and preserve old heading anchors --- .../quickstart/hugegraph/hugegraph-server.md | 34 ++++++++----------- .../quickstart/hugegraph/hugegraph-server.md | 34 ++++++++----------- 2 files changed, 28 insertions(+), 40 deletions(-) diff --git a/content/cn/docs/quickstart/hugegraph/hugegraph-server.md b/content/cn/docs/quickstart/hugegraph/hugegraph-server.md index d681f6e8f3..416c74f189 100644 --- a/content/cn/docs/quickstart/hugegraph/hugegraph-server.md +++ b/content/cn/docs/quickstart/hugegraph/hugegraph-server.md @@ -34,31 +34,25 @@ flowchart TD ## 2 依赖 -### 2.1 安装 Java 11 (JDK 11) + -基于 Java 11 构建的 HugeGraph 1.7.0 发行包需要 Java 11 或更高版本;下述 Java 17 升级分支则需要使用 Java 17。 +### 2.1 安装 Java 17 (JDK 17) -**在继续阅读前,请先执行 `java -version` 命令确认 JDK 版本。** - -> 1.7.0 起不再支持 Java 8。`bin/hugegraph-server.sh` 在低于 Java 11 的环境下会直接拒绝启动。 +从 HugeGraph 1.8.0 开始使用 **Java 17**;**1.7.0 是最后一个支持 Java 11 的版本**。 +所有模块的源码构建要求 **JDK 17 和 Maven 3.6.3 或更高版本**,Server、PD 和 Store 的运行环境统一使用 **JDK 17**。 -> 安全检查默认开启,会安装 `HugeSecurityManager`,它要求 Java 11 到 23。JDK 24 移除了 Security Manager([JEP 486](https://openjdk.org/jeps/486)),因此在 Java 24 及更高版本上必须关闭该检查后再启动服务:`bin/start-hugegraph.sh -s false`。 - -> 构建基于 Java 11 的源码还需要 Maven 3.5.0 或更高版本。 +**在继续阅读前,请先执行 `java -version` 命令确认 JDK 版本。** > [!NOTE] -> **Java 17 / TinkerPop 升级分支** +> **TinkerPop 兼容性** > -> 对于 [Java 17 基础分支](https://github.com/hugegraph/hugegraph/pull/231)及其后续 PR, -> 所有模块的源码构建要求 **JDK 17 和 Maven 3.6.3 或更高版本**,Server、PD 和 Store 的运行环境统一使用 **JDK 17**。 -> 本次升级尚未验证其他 JDK 版本。 -> 基础分支保留 TinkerPop 3.5.1,[最终升级分支](https://github.com/hugegraph/hugegraph/pull/233)使用 TinkerPop 3.8.1 和 Groovy 4.0.25。 -> 这些要求适用于对应的源码分支,不改变已有 Java 11 发行包的运行要求。 +> HugeGraph 1.8.0 使用 TinkerPop 3.8.1 和 Groovy 4.0.25。请使用 Server 随包提供的 Gremlin 配置。 +> 序列化器类从 `org.apache.tinkerpop.gremlin.driver.ser` 移至 `org.apache.tinkerpop.gremlin.util.ser`, +> 并需保留配置中的 HugeGraph registries。默认脚本引擎仍为 Gremlin Groovy。 +> 部署前应检查应用脚本与 TinkerPop 3.5.1 到 3.8.1 整个升级区间的兼容性;本次升级不会将远程请求切换为 GremlinLang。 > -> 请使用升级后 Server 随包提供的 Gremlin 配置。序列化器类从 `org.apache.tinkerpop.gremlin.driver.ser` -> 移至 `org.apache.tinkerpop.gremlin.util.ser`,并需保留配置中的 HugeGraph registries。 -> 默认脚本引擎仍为 Gremlin Groovy;部署前应检查应用脚本与 TinkerPop 3.5.1 到 3.8.1 整个升级区间的兼容性, -> 本次升级不会将远程请求切换为 GremlinLang。 +> 顶点和边属性的 `supportsUniformListValues()` 现在返回 `false`,依赖 `Graph.Features` 的客户端需复核能力判断。 +> 按 schema 定义的 `valueList()`/`LIST` 属性仍支持,仅此标志变化无需重写既有列表数据。 ## 3 部署 @@ -540,10 +534,10 @@ Connecting to HugeGraphServer (http://127.0.0.1:8080/graphs)......OK | 参数 | 取值 | 默认值 | 作用 | |---|---|---|---| | `-d` | `true`、`false` | `true` | 守护进程模式。`-d false` 时脚本留在前台,并把 `SIGTERM`/`SIGINT` 转发给服务进程 | -| `-g` | `zgc` 或 `ZGC` | 不填则用 G1GC | 选择垃圾回收器。只接受 ZGC,其他取值会直接终止启动;ZGC 需要 Java 11 及以上 | +| `-g` | `zgc` 或 `ZGC` | 不填则用 G1GC | 选择垃圾回收器。只接受 ZGC,其他取值会直接终止启动 | | `-m` | `true`、`false` | `false` | 安装基于 crontab 的监控任务(`bin/start-monitor.sh`),仅用于虚拟机和物理机部署 | | `-p` | `true`、`false` | `false` | 预加载示例图,见 5.1.4 | -| `-s` | `true`、`false` | `true` | 开启安全检查(`HugeSecurityManager`)。要求 Java 11 到 23,且 `conf/java-security.properties` 可读 | +| `-s` | `true`、`false` | `true` | 开启安全检查(`HugeSecurityManager`),要求 `conf/java-security.properties` 可读 | | `-j` | JVM 参数 | 空 | 追加到服务命令行的额外 JVM 参数 | | `-t` | 秒 | `30` | 判定启动失败前等待服务响应的时长 | | `-y` | `true`、`false` | `false` | 开启 OpenTelemetry agent 上报链路追踪 | diff --git a/content/en/docs/quickstart/hugegraph/hugegraph-server.md b/content/en/docs/quickstart/hugegraph/hugegraph-server.md index 2ea1fe33cc..b0c558974e 100644 --- a/content/en/docs/quickstart/hugegraph/hugegraph-server.md +++ b/content/en/docs/quickstart/hugegraph/hugegraph-server.md @@ -35,31 +35,25 @@ flowchart TD ## 2 Dependency for Building/Running -### 2.1 Install Java 11 (JDK 11) + -The Java 11-based HugeGraph 1.7.0 distribution requires Java 11 or later. The Java 17 upgrade branches described below require Java 17 instead. +### 2.1 Install Java 17 (JDK 17) -**Before continuing, run `java -version` to confirm your JDK version.** - -> Java 8 is no longer supported starting from 1.7.0. `bin/hugegraph-server.sh` refuses to start on anything older than Java 11. +Starting with HugeGraph 1.8.0, use **Java 17**; **1.7.0 is the last release supporting Java 11**. +Build all modules with **JDK 17 and Maven 3.6.3 or later**, and run Server, PD and Store with **JDK 17**. -> The security check is on by default and installs `HugeSecurityManager`, which needs Java 11 to 23. JDK 24 removed the Security Manager ([JEP 486](https://openjdk.org/jeps/486)), so on Java 24 or later you must start the service with the check disabled: `bin/start-hugegraph.sh -s false`. - -> Building the Java 11-based source tree also needs Maven 3.5.0 or later. +**Before continuing, run `java -version` to confirm your JDK version.** > [!NOTE] -> **Java 17 / TinkerPop upgrade branches** +> **TinkerPop compatibility** > -> For the [Java 17 foundation](https://github.com/hugegraph/hugegraph/pull/231) and its dependent PRs, -> build all modules with **JDK 17 and Maven 3.6.3 or later**, and run Server, PD and Store with **JDK 17**. -> Other JDK releases are not qualified by this upgrade. -> The foundation retains TinkerPop 3.5.1; the [final upgrade](https://github.com/hugegraph/hugegraph/pull/233) -> moves to TinkerPop 3.8.1 and Groovy 4.0.25. These requirements apply to those source branches, not to existing Java 11-based packages. +> HugeGraph 1.8.0 uses TinkerPop 3.8.1 and Groovy 4.0.25. Use the Gremlin configuration files bundled with Server. +> Serializer classes move from `org.apache.tinkerpop.gremlin.driver.ser` to `org.apache.tinkerpop.gremlin.util.ser`; +> retain the supplied HugeGraph registries. Gremlin Groovy remains the default engine. +> Check application scripts against the TinkerPop 3.5.1 to 3.8.1 upgrade interval; this upgrade does not switch remote requests to GremlinLang. > -> Use the Gremlin configuration files bundled with the upgraded Server. Serializer classes move from -> `org.apache.tinkerpop.gremlin.driver.ser` to `org.apache.tinkerpop.gremlin.util.ser`; retain the supplied HugeGraph registries. -> Gremlin Groovy remains the default engine. Check application scripts against the full TinkerPop 3.5.1 to 3.8.1 upgrade interval; -> this upgrade does not switch remote requests to GremlinLang. +> `supportsUniformListValues()` now returns `false` for vertex and edge properties, so clients that inspect `Graph.Features` must adjust that capability check. +> Schema-defined `valueList()`/`LIST` properties remain supported; this flag change alone does not require rewriting existing list data. ## 3 Deploy @@ -539,10 +533,10 @@ This indicates the successful creation of the sample graph. | Option | Values | Default | Purpose | |---|---|---|---| | `-d` | `true`, `false` | `true` | Daemon mode. With `-d false` the script stays in the foreground and forwards `SIGTERM`/`SIGINT` to the server. | -| `-g` | `zgc` or `ZGC` | omit for G1GC | Garbage collector to use. Only ZGC is accepted, any other value aborts the startup. ZGC needs Java 11 or later. | +| `-g` | `zgc` or `ZGC` | omit for G1GC | Garbage collector to use. Only ZGC is accepted, any other value aborts the startup. | | `-m` | `true`, `false` | `false` | Install the cron-based monitor task (`bin/start-monitor.sh`). For VM and bare-metal deployments only. | | `-p` | `true`, `false` | `false` | Preload the sample graph, as in 5.1.4. | -| `-s` | `true`, `false` | `true` | Run with the security check (`HugeSecurityManager`) enabled. It requires Java 11 to 23 and a readable `conf/java-security.properties`. | +| `-s` | `true`, `false` | `true` | Enable `HugeSecurityManager`; requires readable `conf/java-security.properties`. | | `-j` | JVM options | empty | Extra JVM options appended to the server command line. | | `-t` | seconds | `30` | How long to wait for the service to answer before reporting a failed startup. | | `-y` | `true`, `false` | `false` | Enable the OpenTelemetry agent for traces. | From 55b4e3450e13b08020bb1f3ab8083c56c651fa80 Mon Sep 17 00:00:00 2001 From: imbajin Date: Sat, 3 Oct 2026 02:28:36 +0800 Subject: [PATCH 3/8] docs: clarify count and type filter behavior - explain input multiplicity for intermediate scans - document local type predicate evaluation - keep English and Chinese guidance aligned --- content/cn/docs/quickstart/hugegraph/hugegraph-server.md | 3 +++ content/en/docs/quickstart/hugegraph/hugegraph-server.md | 3 +++ 2 files changed, 6 insertions(+) diff --git a/content/cn/docs/quickstart/hugegraph/hugegraph-server.md b/content/cn/docs/quickstart/hugegraph/hugegraph-server.md index 416c74f189..4e718408d5 100644 --- a/content/cn/docs/quickstart/hugegraph/hugegraph-server.md +++ b/content/cn/docs/quickstart/hugegraph/hugegraph-server.md @@ -53,6 +53,9 @@ flowchart TD > > 顶点和边属性的 `supportsUniformListValues()` 现在返回 `false`,依赖 `Graph.Features` 的客户端需复核能力判断。 > 按 schema 定义的 `valueList()`/`LIST` 属性仍支持,仅此标志变化无需重写既有列表数据。 +> +> 遍历中途的扫描保留上游输入数量:图中有三个顶点时,`g.V().V().count()` 返回 `9L`。 +> `P.typeOf()` 作为本地过滤执行,也支持放在取反或组合谓词中;单独使用类型过滤不会利用后端索引。 ## 3 部署 diff --git a/content/en/docs/quickstart/hugegraph/hugegraph-server.md b/content/en/docs/quickstart/hugegraph/hugegraph-server.md index b0c558974e..84284d4cc7 100644 --- a/content/en/docs/quickstart/hugegraph/hugegraph-server.md +++ b/content/en/docs/quickstart/hugegraph/hugegraph-server.md @@ -54,6 +54,9 @@ Build all modules with **JDK 17 and Maven 3.6.3 or later**, and run Server, PD a > > `supportsUniformListValues()` now returns `false` for vertex and edge properties, so clients that inspect `Graph.Features` must adjust that capability check. > Schema-defined `valueList()`/`LIST` properties remain supported; this flag change alone does not require rewriting existing list data. +> +> A mid-traversal scan retains its input multiplicity: with three vertices, `g.V().V().count()` returns `9L`. +> `P.typeOf()` runs as a local filter, including in negated or combined predicates; it does not use backend indexes on its own. ## 3 Deploy From 0a6a690efa832c4b911b5aa103d0d2747972c83c Mon Sep 17 00:00:00 2001 From: imbajin Date: Tue, 6 Oct 2026 02:34:11 +0800 Subject: [PATCH 4/8] docs: clarify TinkerPop upgrade boundaries Add bilingual GraphBinary schema and Blob transport guidance. Preserve the documented legacy GraphSON V1 Tree shape. Explain named bindings and DATE millisecond conversion. Link the repository upgrade guide for configuration details. --- .../docs/quickstart/hugegraph/hugegraph-server.md | 9 +++++++++ .../docs/quickstart/hugegraph/hugegraph-server.md | 13 +++++++++++++ 2 files changed, 22 insertions(+) diff --git a/content/cn/docs/quickstart/hugegraph/hugegraph-server.md b/content/cn/docs/quickstart/hugegraph/hugegraph-server.md index 4e718408d5..0901460c7d 100644 --- a/content/cn/docs/quickstart/hugegraph/hugegraph-server.md +++ b/content/cn/docs/quickstart/hugegraph/hugegraph-server.md @@ -56,6 +56,15 @@ flowchart TD > > 遍历中途的扫描保留上游输入数量:图中有三个顶点时,`g.V().V().count()` 返回 `9L`。 > `P.typeOf()` 作为本地过滤执行,也支持放在取反或组合谓词中;单独使用类型过滤不会利用后端索引。 +> +> 随包 Driver 和 Console 配置使用 GraphBinary V1:schema 结果为标准 map,Blob 为二进制值,返回图元素内的 Blob 也适用。 +> 默认 HTTP JSON 使用的 Untyped GraphSON V1 保留 Tree 的旧 `key`/`value` 数组结构,支持标量和图元素作为 key。 +> Optional 返回其内容,空值返回 null;File 保留 `{"file": "name"}` 的 map 结构,使用文件名,嵌套结果也适用。 +> 命名 `GValue` 谓词在复用或克隆时保留绑定;命名 `limit()`/`range()` 边界的计数行为与字面量边界一致。 +> 本地混合 ID 集合保留字符串、数值和 UUID 各自的类型匹配;全字符串集合继续使用标准字符串 ID 比较语义。 +> Count 过滤仅在每个谓词分支均能证明截断安全时采用范围优化;不支持的否定集合或自定义谓词分支保留完整计数。 +> DATE schema 属性支持写入及索引等值/范围查询中的 `OffsetDateTime`,按 instant 转为毫秒;小于毫秒的精度被截断,既有 DATE 数据无需迁移。 +> 客户端配置和验证细节见 [TinkerPop 3.8.1 升级指南](https://github.com/apache/hugegraph/blob/master/docs/upgrade-tinkerpop-3.8.md)。 ## 3 部署 diff --git a/content/en/docs/quickstart/hugegraph/hugegraph-server.md b/content/en/docs/quickstart/hugegraph/hugegraph-server.md index 84284d4cc7..6002ae0609 100644 --- a/content/en/docs/quickstart/hugegraph/hugegraph-server.md +++ b/content/en/docs/quickstart/hugegraph/hugegraph-server.md @@ -57,6 +57,19 @@ Build all modules with **JDK 17 and Maven 3.6.3 or later**, and run Server, PD a > > A mid-traversal scan retains its input multiplicity: with three vertices, `g.V().V().count()` returns `9L`. > `P.typeOf()` runs as a local filter, including in negated or combined predicates; it does not use backend indexes on its own. +> +> The bundled Driver and Console configurations use GraphBinary V1: schema results are standard maps and Blob values are binary, +> including inside returned graph elements. Default HTTP JSON with untyped GraphSON V1 preserves the legacy Tree `key`/`value` array, with scalar or element +> keys. +> Optional results carry their value or null when empty; File results keep the map shape `{"file": "name"}` with the file name, including in nested results. +> Named `GValue` predicates retain bindings when reused or cloned; named `limit()`/`range()` bounds count like literal bounds. +> Local mixed ID collections preserve typed string, number and UUID matches; all-string collections retain standard string-ID comparisons. +> Count filtering keeps the complete count if any predicate branch has no proven safe truncation bound, including unsupported negated collections and custom +> predicates. +> DATE schema properties accept `OffsetDateTime` for writes and indexed equality/range queries, normalized by instant to milliseconds; +> sub-millisecond precision is truncated, and existing DATE data needs no migration. +> See the [TinkerPop 3.8.1 upgrade guide](https://github.com/apache/hugegraph/blob/master/docs/upgrade-tinkerpop-3.8.md) +> for client configuration and verification details. ## 3 Deploy From f8450f0303f88be66cc5478c06c2bc5b797ee9fc Mon Sep 17 00:00:00 2001 From: imbajin Date: Tue, 6 Oct 2026 18:18:14 +0800 Subject: [PATCH 5/8] docs: align upgrade security and compatibility - document the removal of unsafe typed GraphSON V1 - explain schema values and mixed edge ID compatibility - describe Cypher replay and Jackson configuration support --- content/cn/docs/quickstart/hugegraph/hugegraph-server.md | 5 +++++ content/en/docs/quickstart/hugegraph/hugegraph-server.md | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/content/cn/docs/quickstart/hugegraph/hugegraph-server.md b/content/cn/docs/quickstart/hugegraph/hugegraph-server.md index 0901460c7d..b73ebac8d8 100644 --- a/content/cn/docs/quickstart/hugegraph/hugegraph-server.md +++ b/content/cn/docs/quickstart/hugegraph/hugegraph-server.md @@ -60,8 +60,13 @@ flowchart TD > 随包 Driver 和 Console 配置使用 GraphBinary V1:schema 结果为标准 map,Blob 为二进制值,返回图元素内的 Blob 也适用。 > 默认 HTTP JSON 使用的 Untyped GraphSON V1 保留 Tree 的旧 `key`/`value` 数组结构,支持标量和图元素作为 key。 > Optional 返回其内容,空值返回 null;File 保留 `{"file": "name"}` 的 map 结构,使用文件名,嵌套结果也适用。 +> HugeGraph 枚举返回名称;`graph.schema()` 返回包含 property key、vertex label、edge label 和 index label 列表的 map。 +> Typed GraphSON V1 已禁用,因为基于类名的反序列化可在认证前构造 Java 对象;typed V2/V3 仍可使用。 +> 随包导入的 Cypher 谓词工厂使用兼容实现,也支持重放 `EXPLAIN` 返回的 Gremlin 翻译结果。 > 命名 `GValue` 谓词在复用或克隆时保留绑定;命名 `limit()`/`range()` 边界的计数行为与字面量边界一致。 > 本地混合 ID 集合保留字符串、数值和 UUID 各自的类型匹配;全字符串集合继续使用标准字符串 ID 比较语义。 +> 本地边 ID 过滤支持混合字符串形式和原生边 ID,保持成员匹配及计数一致。 +> Jackson JSON 和 YAML 模块使用同一兼容版本,也支持 Kubernetes kubeconfig 扩展中的小数值。 > Count 过滤仅在每个谓词分支均能证明截断安全时采用范围优化;不支持的否定集合或自定义谓词分支保留完整计数。 > DATE schema 属性支持写入及索引等值/范围查询中的 `OffsetDateTime`,按 instant 转为毫秒;小于毫秒的精度被截断,既有 DATE 数据无需迁移。 > 客户端配置和验证细节见 [TinkerPop 3.8.1 升级指南](https://github.com/apache/hugegraph/blob/master/docs/upgrade-tinkerpop-3.8.md)。 diff --git a/content/en/docs/quickstart/hugegraph/hugegraph-server.md b/content/en/docs/quickstart/hugegraph/hugegraph-server.md index 6002ae0609..301548d315 100644 --- a/content/en/docs/quickstart/hugegraph/hugegraph-server.md +++ b/content/en/docs/quickstart/hugegraph/hugegraph-server.md @@ -62,8 +62,13 @@ Build all modules with **JDK 17 and Maven 3.6.3 or later**, and run Server, PD a > including inside returned graph elements. Default HTTP JSON with untyped GraphSON V1 preserves the legacy Tree `key`/`value` array, with scalar or element > keys. > Optional results carry their value or null when empty; File results keep the map shape `{"file": "name"}` with the file name, including in nested results. +> HugeGraph enums return their names; `graph.schema()` returns a map with property key, vertex label, edge label and index label lists. +> Typed GraphSON V1 is disabled because class-name deserialization can construct Java objects before authentication; typed V2/V3 remain available. +> The bundled Cypher predicate imports use the compatible factories, including when replaying the Gremlin translation returned by `EXPLAIN`. > Named `GValue` predicates retain bindings when reused or cloned; named `limit()`/`range()` bounds count like literal bounds. > Local mixed ID collections preserve typed string, number and UUID matches; all-string collections retain standard string-ID comparisons. +> Local edge ID filters accept mixed serialized strings and native edge IDs with consistent membership and count results. +> Jackson JSON and YAML modules use one compatible version, including parsing decimal-valued Kubernetes kubeconfig extensions. > Count filtering keeps the complete count if any predicate branch has no proven safe truncation bound, including unsupported negated collections and custom > predicates. > DATE schema properties accept `OffsetDateTime` for writes and indexed equality/range queries, normalized by instant to milliseconds; From 9ff24e6604a874dd6943457b124a3a978fbc260b Mon Sep 17 00:00:00 2001 From: imbajin Date: Wed, 14 Oct 2026 04:26:11 +0800 Subject: [PATCH 6/8] docs: clarify Java 17 requirements and runtime options - Update master source build example versions to 1.8.0 - Qualify typed GraphSON support for simple values and IDs - Update reference to server-runtime documentation - Document Java 17-23 security check range and JDK 24+ -s false - Document g1/G1 and zgc/ZGC options with JVM default collector - Align PD and Store quickstarts with Java 17 and Maven 3.6.3+ baseline --- .../docs/quickstart/hugegraph/hugegraph-hstore.md | 4 ++-- .../cn/docs/quickstart/hugegraph/hugegraph-pd.md | 6 +++--- .../docs/quickstart/hugegraph/hugegraph-server.md | 14 ++++++++------ .../docs/quickstart/hugegraph/hugegraph-hstore.md | 4 ++-- .../en/docs/quickstart/hugegraph/hugegraph-pd.md | 7 ++++--- .../docs/quickstart/hugegraph/hugegraph-server.md | 15 +++++++++------ 6 files changed, 28 insertions(+), 22 deletions(-) diff --git a/content/cn/docs/quickstart/hugegraph/hugegraph-hstore.md b/content/cn/docs/quickstart/hugegraph/hugegraph-hstore.md index 0ae5e81a65..d1d66ba660 100644 --- a/content/cn/docs/quickstart/hugegraph/hugegraph-hstore.md +++ b/content/cn/docs/quickstart/hugegraph/hugegraph-hstore.md @@ -22,8 +22,8 @@ HugeGraph-Store 是 HugeGraph 分布式版本的存储节点组件,负责实 #### 2.1 前置条件 - 操作系统:Linux 或 macOS(Windows 尚未经过完整测试) -- Java 版本:≥ 11(编译期强制校验,`bin/start-hugegraph-store.sh` 启动时会再次检查) -- Maven 版本:≥ 3.5.0 +- Java 版本:≥ 17(适用于 HugeGraph 1.8.0+,编译期强制校验,`bin/start-hugegraph-store.sh` 启动时会再次检查;1.7.0 是最后一个支持 Java 11 的版本) +- Maven 版本:≥ 3.6.3(从源码编译时) - 如需进行多节点部署,请先部署 HugeGraph-PD ### 3 部署 diff --git a/content/cn/docs/quickstart/hugegraph/hugegraph-pd.md b/content/cn/docs/quickstart/hugegraph/hugegraph-pd.md index a6e1e9c099..0fb5167bc4 100644 --- a/content/cn/docs/quickstart/hugegraph/hugegraph-pd.md +++ b/content/cn/docs/quickstart/hugegraph/hugegraph-pd.md @@ -25,8 +25,8 @@ PD 监听三个端口: #### 2.1 前置条件 - 操作系统:Linux 或 macOS(Windows 尚未经过完整测试) -- Java 版本:≥ 11 -- Maven 版本:≥ 3.5.0 +- Java 版本:≥ 17(适用于 HugeGraph 1.8.0+;1.7.0 是最后一个支持 Java 11 的版本) +- Maven 版本:≥ 3.6.3(从源码编译时) ### 3 部署 @@ -301,7 +301,7 @@ HG_PD_RAFT_PEERS_LIST: pd0:8610,pd1:8610,pd2:8610 ./bin/start-hugegraph-pd.sh ``` -脚本要求 `PATH` 或 `JAVA_HOME` 中有 11 及以上版本的 JDK;如果发现已有 Java 进程在使用本安装目录的 `conf` 目录,脚本会直接退出,不做任何事。 +脚本要求 `PATH` 或 `JAVA_HOME` 中有 17 及以上版本的 JDK(1.7.0 要求 11 及以上);如果发现已有 Java 进程在使用本安装目录的 `conf` 目录,脚本会直接退出,不做任何事。 支持的参数: diff --git a/content/cn/docs/quickstart/hugegraph/hugegraph-server.md b/content/cn/docs/quickstart/hugegraph/hugegraph-server.md index b73ebac8d8..4c51019171 100644 --- a/content/cn/docs/quickstart/hugegraph/hugegraph-server.md +++ b/content/cn/docs/quickstart/hugegraph/hugegraph-server.md @@ -40,6 +40,7 @@ flowchart TD 从 HugeGraph 1.8.0 开始使用 **Java 17**;**1.7.0 是最后一个支持 Java 11 的版本**。 所有模块的源码构建要求 **JDK 17 和 Maven 3.6.3 或更高版本**,Server、PD 和 Store 的运行环境统一使用 **JDK 17**。 +Server 安全检查(`-s true`)要求 Java 17 到 23 以及可读的 `conf/java-security.properties`;在 Java 24 或更高版本上,需以 `-s false` 启动 Server(JDK 24 通过 JEP 486 移除了 Security Manager)。 **在继续阅读前,请先执行 `java -version` 命令确认 JDK 版本。** @@ -61,6 +62,7 @@ flowchart TD > 默认 HTTP JSON 使用的 Untyped GraphSON V1 保留 Tree 的旧 `key`/`value` 数组结构,支持标量和图元素作为 key。 > Optional 返回其内容,空值返回 null;File 保留 `{"file": "name"}` 的 map 结构,使用文件名,嵌套结果也适用。 > HugeGraph 枚举返回名称;`graph.schema()` 返回包含 property key、vertex label、edge label 和 index label 列表的 map。 +> Typed GraphSON 仅支持受支持的简单标量值与 ID,不能替代所有图元素或元数据对象的非类型化序列化; > Typed GraphSON V1 已禁用,因为基于类名的反序列化可在认证前构造 Java 对象;typed V2/V3 仍可使用。 > 随包导入的 Cypher 谓词工厂使用兼容实现,也支持重放 `EXPLAIN` 返回的 Gremlin 翻译结果。 > 命名 `GValue` 谓词在复用或克隆时保留绑定;命名 `limit()`/`range()` 边界的计数行为与字面量边界一致。 @@ -69,7 +71,7 @@ flowchart TD > Jackson JSON 和 YAML 模块使用同一兼容版本,也支持 Kubernetes kubeconfig 扩展中的小数值。 > Count 过滤仅在每个谓词分支均能证明截断安全时采用范围优化;不支持的否定集合或自定义谓词分支保留完整计数。 > DATE schema 属性支持写入及索引等值/范围查询中的 `OffsetDateTime`,按 instant 转为毫秒;小于毫秒的精度被截断,既有 DATE 数据无需迁移。 -> 客户端配置和验证细节见 [TinkerPop 3.8.1 升级指南](https://github.com/apache/hugegraph/blob/master/docs/upgrade-tinkerpop-3.8.md)。 +> 客户端配置和验证细节见 [Server 运行时文档](https://github.com/apache/hugegraph/blob/master/docs/server-runtime.md)。 ## 3 部署 @@ -185,13 +187,13 @@ mvn package -DskipTests -ntp [INFO] BUILD SUCCESS ``` -执行成功后,根目录 `target/` 下会生成主线聚合包(当前仓库版本属性为 1.7.0): +执行成功后,根目录 `target/` 下会生成主线聚合包(当前仓库版本属性为 1.8.0): ```text -target/apache-hugegraph-1.7.0.tar.gz +target/apache-hugegraph-1.8.0.tar.gz ``` -该文件名中的版本号来自源码的 `revision` 属性;它不会把主线构建变成 ASF 发布物料。构建过程还会在仓库根目录生成 `apache-hugegraph-1.7.0/` 聚合目录,其中的 Server 子目录名由 Server 模块的 `final.name` 决定,例如当前为 `apache-hugegraph-server-1.7.0`。若只保留了 tar 包,则先执行 `tar zxf target/apache-hugegraph-1.7.0.tar.gz` 再进入该目录。 +该文件名中的版本号来自源码的 `revision` 属性;它不会把主线构建变成 ASF 发布物料。构建过程还会在仓库根目录生成 `apache-hugegraph-1.8.0/` 聚合目录,其中的 Server 子目录名由 Server 模块的 `final.name` 决定,例如当前为 `apache-hugegraph-server-1.8.0`。若只保留了 tar 包,则先执行 `tar zxf target/apache-hugegraph-1.8.0.tar.gz` 再进入该目录。 默认构建会打包 `rocksdb`、`hbase` 和 `hstore` 三个后端模块,并把它们记录在 `hugegraph-dist` jar 内的 `backend.properties` 资源的 `backends` 配置项中。若只需要包含 RocksDB 的精简发布包,可加上 `-Drocksdb-only`: @@ -551,10 +553,10 @@ Connecting to HugeGraphServer (http://127.0.0.1:8080/graphs)......OK | 参数 | 取值 | 默认值 | 作用 | |---|---|---|---| | `-d` | `true`、`false` | `true` | 守护进程模式。`-d false` 时脚本留在前台,并把 `SIGTERM`/`SIGINT` 转发给服务进程 | -| `-g` | `zgc` 或 `ZGC` | 不填则用 G1GC | 选择垃圾回收器。只接受 ZGC,其他取值会直接终止启动 | +| `-g` | `g1`、`G1`、`zgc`、`ZGC` | JVM 默认值 | 选择垃圾回收器(`g1`/`G1` 设置 `-XX:+UseG1GC`;`zgc`/`ZGC` 设置 `-XX:+UseZGC`)。不填则使用 JVM 默认收集器配置 | | `-m` | `true`、`false` | `false` | 安装基于 crontab 的监控任务(`bin/start-monitor.sh`),仅用于虚拟机和物理机部署 | | `-p` | `true`、`false` | `false` | 预加载示例图,见 5.1.4 | -| `-s` | `true`、`false` | `true` | 开启安全检查(`HugeSecurityManager`),要求 `conf/java-security.properties` 可读 | +| `-s` | `true`、`false` | `true` | 开启安全检查(`HugeSecurityManager`),要求 Java 17 到 23 以及 `conf/java-security.properties` 可读。在 Java 24+ 上需传 `-s false` | | `-j` | JVM 参数 | 空 | 追加到服务命令行的额外 JVM 参数 | | `-t` | 秒 | `30` | 判定启动失败前等待服务响应的时长 | | `-y` | `true`、`false` | `false` | 开启 OpenTelemetry agent 上报链路追踪 | diff --git a/content/en/docs/quickstart/hugegraph/hugegraph-hstore.md b/content/en/docs/quickstart/hugegraph/hugegraph-hstore.md index 8c714f2895..bd9b19a87e 100644 --- a/content/en/docs/quickstart/hugegraph/hugegraph-hstore.md +++ b/content/en/docs/quickstart/hugegraph/hugegraph-hstore.md @@ -22,8 +22,8 @@ Each Store node keeps graph data in RocksDB and replicates it with Raft (JRaft): #### 2.1 Requirements - Operating System: Linux or macOS (Windows has not been fully tested) -- Java version: ≥ 11 (enforced by the build and re-checked by `bin/start-hugegraph-store.sh`) -- Maven version: ≥ 3.5.0 +- Java version: ≥ 17 for HugeGraph 1.8.0+ (enforced by the build and re-checked by `bin/start-hugegraph-store.sh`; 1.7.0 is the last release supporting Java 11) +- Maven version: ≥ 3.6.3 (for building from source) - Deploy HugeGraph-PD first for multi-node deployment ### 3 Deployment diff --git a/content/en/docs/quickstart/hugegraph/hugegraph-pd.md b/content/en/docs/quickstart/hugegraph/hugegraph-pd.md index a70095e9af..a7a20a56df 100644 --- a/content/en/docs/quickstart/hugegraph/hugegraph-pd.md +++ b/content/en/docs/quickstart/hugegraph/hugegraph-pd.md @@ -25,8 +25,8 @@ PD listens on three ports: #### 2.1 Requirements - Operating System: Linux or macOS (Windows has not been fully tested) -- Java version: ≥ 11 -- Maven version: ≥ 3.5.0 +- Java version: ≥ 17 for HugeGraph 1.8.0+ (1.7.0 is the last release supporting Java 11) +- Maven version: ≥ 3.6.3 (for building from source) ### 3 Deployment @@ -303,7 +303,8 @@ In the PD installation directory, execute: ./bin/start-hugegraph-pd.sh ``` -The script requires a JDK of at least version 11 on `PATH` or in `JAVA_HOME`, and it exits without doing anything if it finds a Java process already using this installation's `conf` directory. +The script requires Java 17 or later on `PATH` or in `JAVA_HOME` (Java ≥ 11 on 1.7.0). +It exits without doing anything if it finds a Java process already using this installation's `conf` directory. Supported flags: diff --git a/content/en/docs/quickstart/hugegraph/hugegraph-server.md b/content/en/docs/quickstart/hugegraph/hugegraph-server.md index 301548d315..555764ed78 100644 --- a/content/en/docs/quickstart/hugegraph/hugegraph-server.md +++ b/content/en/docs/quickstart/hugegraph/hugegraph-server.md @@ -41,6 +41,8 @@ flowchart TD Starting with HugeGraph 1.8.0, use **Java 17**; **1.7.0 is the last release supporting Java 11**. Build all modules with **JDK 17 and Maven 3.6.3 or later**, and run Server, PD and Store with **JDK 17**. +Server security check (`-s true`) requires Java 17 to 23 and a readable `conf/java-security.properties`; +on Java 24 or later, start Server with `-s false` (JDK 24+ dropped Security Manager via JEP 486). **Before continuing, run `java -version` to confirm your JDK version.** @@ -63,6 +65,7 @@ Build all modules with **JDK 17 and Maven 3.6.3 or later**, and run Server, PD a > keys. > Optional results carry their value or null when empty; File results keep the map shape `{"file": "name"}` with the file name, including in nested results. > HugeGraph enums return their names; `graph.schema()` returns a map with property key, vertex label, edge label and index label lists. +> Typed GraphSON is available only for supported simple values and IDs, not as a replacement for untyped serialization of every graph or schema object. > Typed GraphSON V1 is disabled because class-name deserialization can construct Java objects before authentication; typed V2/V3 remain available. > The bundled Cypher predicate imports use the compatible factories, including when replaying the Gremlin translation returned by `EXPLAIN`. > Named `GValue` predicates retain bindings when reused or cloned; named `limit()`/`range()` bounds count like literal bounds. @@ -73,7 +76,7 @@ Build all modules with **JDK 17 and Maven 3.6.3 or later**, and run Server, PD a > predicates. > DATE schema properties accept `OffsetDateTime` for writes and indexed equality/range queries, normalized by instant to milliseconds; > sub-millisecond precision is truncated, and existing DATE data needs no migration. -> See the [TinkerPop 3.8.1 upgrade guide](https://github.com/apache/hugegraph/blob/master/docs/upgrade-tinkerpop-3.8.md) +> See the [server runtime documentation](https://github.com/apache/hugegraph/blob/master/docs/server-runtime.md) > for client configuration and verification details. ## 3 Deploy @@ -188,13 +191,13 @@ A successful build logs: [INFO] BUILD SUCCESS ``` -The build creates an aggregate master archive under repository-root `target/` (the current source version property is 1.7.0): +The build creates an aggregate master archive under repository-root `target/` (the current source version property is 1.8.0): ```text -target/apache-hugegraph-1.7.0.tar.gz +target/apache-hugegraph-1.8.0.tar.gz ``` -The filename version comes from source `revision`; it does not make the build an ASF release artifact. The build also creates repository-root `apache-hugegraph-1.7.0/`, containing a Server directory named by that module's `final.name`, currently `apache-hugegraph-server-1.7.0`. If retaining only the archive, first run `tar zxf target/apache-hugegraph-1.7.0.tar.gz`, then enter the Server directory. +The filename version comes from source `revision`; it does not make the build an ASF release artifact. The build also creates repository-root `apache-hugegraph-1.8.0/`, containing a Server directory named by that module's `final.name`, currently `apache-hugegraph-server-1.8.0`. If retaining only the archive, first run `tar zxf target/apache-hugegraph-1.8.0.tar.gz`, then enter the Server directory. Default builds bundle `rocksdb`, `hbase`, and `hstore` modules, listed in `backends` within `backend.properties` in the `hugegraph-dist` JAR. For a RocksDB-only distribution, add `-Drocksdb-only`: @@ -554,10 +557,10 @@ This indicates the successful creation of the sample graph. | Option | Values | Default | Purpose | |---|---|---|---| | `-d` | `true`, `false` | `true` | Daemon mode. With `-d false` the script stays in the foreground and forwards `SIGTERM`/`SIGINT` to the server. | -| `-g` | `zgc` or `ZGC` | omit for G1GC | Garbage collector to use. Only ZGC is accepted, any other value aborts the startup. | +| `-g` | `g1`, `G1`, `zgc`, `ZGC` | JVM default | Garbage collector to use (`g1`/`G1` sets `-XX:+UseG1GC`; `zgc`/`ZGC` sets `-XX:+UseZGC`). Omitting `-g` uses the JVM default collector. | | `-m` | `true`, `false` | `false` | Install the cron-based monitor task (`bin/start-monitor.sh`). For VM and bare-metal deployments only. | | `-p` | `true`, `false` | `false` | Preload the sample graph, as in 5.1.4. | -| `-s` | `true`, `false` | `true` | Enable `HugeSecurityManager`; requires readable `conf/java-security.properties`. | +| `-s` | `true`, `false` | `true` | Enable `HugeSecurityManager`; requires Java 17 to 23 and readable `conf/java-security.properties`. On Java 24+, start with `-s false`. | | `-j` | JVM options | empty | Extra JVM options appended to the server command line. | | `-t` | seconds | `30` | How long to wait for the service to answer before reporting a failed startup. | | `-y` | `true`, `false` | `false` | Enable the OpenTelemetry agent for traces. | From 409ec74d15c1c3b595cba10a59ceefbac6ecab52 Mon Sep 17 00:00:00 2001 From: imbajin Date: Thu, 15 Oct 2026 01:21:12 +0800 Subject: [PATCH 7/8] docs: clarify Java 17 build requirement and version scope - Distinguish Maven build (accepts only JDK 17) from runtime (Java >= 17) in HStore and PD quickstarts - Reword version-scope note in Server quickstart to avoid tying master builds to 1.7.0 - Update Java 17 requirements for HugeGraph 1.8.0+ across FAQ, release validation, and IDEA setup guides --- .../contribution-guidelines/hugegraph-server-idea-setup.md | 2 +- content/cn/docs/contribution-guidelines/validate-release.md | 6 +++--- content/cn/docs/guides/faq.md | 4 ++-- content/cn/docs/quickstart/hugegraph/hugegraph-hstore.md | 2 +- content/cn/docs/quickstart/hugegraph/hugegraph-pd.md | 2 +- content/cn/docs/quickstart/hugegraph/hugegraph-server.md | 2 +- .../contribution-guidelines/hugegraph-server-idea-setup.md | 2 +- content/en/docs/contribution-guidelines/validate-release.md | 6 +++--- content/en/docs/guides/faq.md | 4 ++-- content/en/docs/quickstart/hugegraph/hugegraph-hstore.md | 2 +- content/en/docs/quickstart/hugegraph/hugegraph-pd.md | 2 +- content/en/docs/quickstart/hugegraph/hugegraph-server.md | 2 +- 12 files changed, 18 insertions(+), 18 deletions(-) diff --git a/content/cn/docs/contribution-guidelines/hugegraph-server-idea-setup.md b/content/cn/docs/contribution-guidelines/hugegraph-server-idea-setup.md index 6a3daac702..5a532a016d 100644 --- a/content/cn/docs/contribution-guidelines/hugegraph-server-idea-setup.md +++ b/content/cn/docs/contribution-guidelines/hugegraph-server-idea-setup.md @@ -15,7 +15,7 @@ weight: 4 1. 初始化数据库后端,执行 `InitStore` 类初始化图 2. 启动 HugeGraph-Server,执行 `HugeGraphServer` 类加载初始化的图信息启动 -在执行下述流程之前,请确保已经克隆了 HugeGraph 的源代码,并且已经配置了 Java 11 环境 & 可以参考这个 [配置文档](https://github.com/apache/hugegraph/wiki/The-style-config-for-HugeGraph-in-IDEA) +在执行下述流程之前,请确保已经克隆了 HugeGraph 的源代码,并且已经配置了开发环境(HugeGraph 1.8.0+ 需 Java 17,1.7.0 需 Java 11)& 可以参考这个 [配置文档](https://github.com/apache/hugegraph/wiki/The-style-config-for-HugeGraph-in-IDEA) ```bash git clone https://github.com/apache/hugegraph.git diff --git a/content/cn/docs/contribution-guidelines/validate-release.md b/content/cn/docs/contribution-guidelines/validate-release.md index db311e72e7..406d00079b 100644 --- a/content/cn/docs/contribution-guidelines/validate-release.md +++ b/content/cn/docs/contribution-guidelines/validate-release.md @@ -5,7 +5,7 @@ weight: 3 --- > Note: 这篇文档会持续更新。 -> 你需要使用 Java11 验证测试 (如果希望测试功能/运行时),从 1.5.0 版本开始 (除 client 外) 不再支持 Java8 +> 验证 HugeGraph 1.8.0+ 请使用 Java 17(Maven 源码构建仅接受 JDK 17);1.7.0 请使用 Java 11。从 1.5.0 版本开始 (除 client 外) 不再支持 Java 8。 > > 毕业说明:Apache HugeGraph 已于 2026 年 1 月毕业。正式发版投票现由 HugeGraph 社区内部完成(`dev@hugegraph.apache.org` 上的 PMC binding 投票),不再需要 Incubator `general@incubator.apache.org` 审批。 @@ -21,7 +21,7 @@ weight: 3 #### 1. 准备工作 如果本地没有 svn 或 gpg 或 wget 环境,建议先安装一下 (windows 推荐使用 WSL2 环境, -或者至少是 `git-bash`), 同时确保安装 Java(推荐 11) 和 maven 软件。 +或者至少是 `git-bash`), 同时确保安装 Java (HugeGraph 1.8.0+ 推荐 Java 17,1.7.0 推荐 Java 11) 和 Maven 软件 (≥ 3.6.3)。 ```bash # 1. 安装svn @@ -126,7 +126,7 @@ PMC 同学请特别注意认真检查 `LICENSE` + `NOTICE` 文件,确保文件 大部分的发版问题都与之相关 ```bash -# 请优先使用/切换到 `java 11` 版本进行后序的编译和运行操作 (注:`Computer` 仅支持 `java >= 11`) +# 验证 HugeGraph 1.8.0+ 请优先使用/切换到 `java 17` 版本(1.7.0 请使用 `java 11`)进行后序的编译和运行操作 (注:`Computer` 仅支持 `java >= 11`) # java --version # 尝试在 Unix 环境下编译测试是否正常 diff --git a/content/cn/docs/guides/faq.md b/content/cn/docs/guides/faq.md index 680550c0c9..fb104614da 100644 --- a/content/cn/docs/guides/faq.md +++ b/content/cn/docs/guides/faq.md @@ -13,8 +13,8 @@ weight: 6 1.7.0 支持 RocksDB、HStore、HBase 和 Memory。Cassandra、ScyllaDB、MySQL、PostgreSQL 等旧后端需使用 1.5.x 或更早版本。 - 启动服务时提示:`xxx (core dumped) xxx` - - 请先确认 JDK 版本不低于 Java 11。HugeGraph 1.7.0 不再支持 Java 8。 + + 请先确认 JDK 版本符合对应版本要求:HugeGraph 1.8.0+ 要求 Java 17,1.7.0 要求 Java 11。HugeGraph 不再支持 Java 8。 - 启动服务成功了,但是操作图时有类似于"无法连接到后端或连接未打开"的提示 diff --git a/content/cn/docs/quickstart/hugegraph/hugegraph-hstore.md b/content/cn/docs/quickstart/hugegraph/hugegraph-hstore.md index d1d66ba660..9ca570038a 100644 --- a/content/cn/docs/quickstart/hugegraph/hugegraph-hstore.md +++ b/content/cn/docs/quickstart/hugegraph/hugegraph-hstore.md @@ -22,7 +22,7 @@ HugeGraph-Store 是 HugeGraph 分布式版本的存储节点组件,负责实 #### 2.1 前置条件 - 操作系统:Linux 或 macOS(Windows 尚未经过完整测试) -- Java 版本:≥ 17(适用于 HugeGraph 1.8.0+,编译期强制校验,`bin/start-hugegraph-store.sh` 启动时会再次检查;1.7.0 是最后一个支持 Java 11 的版本) +- Java 版本:HugeGraph 1.8.0+ 使用 Java 17(Maven 源码构建仅接受 JDK 17;启动脚本拒绝低于 17 的运行时;1.7.0 是最后一个支持 Java 11 的版本) - Maven 版本:≥ 3.6.3(从源码编译时) - 如需进行多节点部署,请先部署 HugeGraph-PD diff --git a/content/cn/docs/quickstart/hugegraph/hugegraph-pd.md b/content/cn/docs/quickstart/hugegraph/hugegraph-pd.md index 0fb5167bc4..b52fdb6003 100644 --- a/content/cn/docs/quickstart/hugegraph/hugegraph-pd.md +++ b/content/cn/docs/quickstart/hugegraph/hugegraph-pd.md @@ -25,7 +25,7 @@ PD 监听三个端口: #### 2.1 前置条件 - 操作系统:Linux 或 macOS(Windows 尚未经过完整测试) -- Java 版本:≥ 17(适用于 HugeGraph 1.8.0+;1.7.0 是最后一个支持 Java 11 的版本) +- Java 版本:HugeGraph 1.8.0+ 使用 Java 17(Maven 源码构建仅接受 JDK 17;启动脚本拒绝低于 17 的运行时;1.7.0 是最后一个支持 Java 11 的版本) - Maven 版本:≥ 3.6.3(从源码编译时) ### 3 部署 diff --git a/content/cn/docs/quickstart/hugegraph/hugegraph-server.md b/content/cn/docs/quickstart/hugegraph/hugegraph-server.md index 4c51019171..a45b68b571 100644 --- a/content/cn/docs/quickstart/hugegraph/hugegraph-server.md +++ b/content/cn/docs/quickstart/hugegraph/hugegraph-server.md @@ -14,7 +14,7 @@ aliases: `hugegraph-server` 模块包含 `hugegraph-core`、`hugegraph-api`、`hugegraph-dist` 和存储适配等子模块。Core 实现属性图模型、事务与 TinkerPop 接口,API 提供 HTTP 服务并将客户端请求交给 Core 处理。图数据由 RocksDB(单机默认)、HStore(分布式)或 HBase 后端保存。 -> ⚠️ **版本说明**:本文区分已发布版本与开发主线。下载示例使用 ASF 发布的 HugeGraph 1.7.0 安装包;源码构建、配置默认值和启动行为以 `apache/hugegraph` 的 `master` 分支为准。主线源码构建出的包不是 ASF 发布包,即使包内版本号相同也不代表与 1.7.0 发布包相同。本文介绍 RocksDB、HStore 和 HBase;其他旧后端请参考 [HugeGraph 1.5.x 文档](https://github.com/apache/hugegraph-doc/blob/release-1.5.0/content/cn/docs/quickstart/hugegraph/hugegraph-server.md)。 +> ⚠️ **版本说明**:本文区分已发布版本与开发主线。下载示例使用 ASF 发布的 HugeGraph 1.7.0 安装包;源码构建、配置默认值和启动行为以 `apache/hugegraph` 的 `master` 分支为准。主线源码构建出的包不是 ASF 发布包,即使包内版本号与发布版本一致也不代表属于官方发布包。本文介绍 RocksDB、HStore 和 HBase;其他旧后端请参考 [HugeGraph 1.5.x 文档](https://github.com/apache/hugegraph-doc/blob/release-1.5.0/content/cn/docs/quickstart/hugegraph/hugegraph-server.md)。 > 名称说明:`HugeGraph` 表示整个项目或主仓库,`hugegraph-server` 表示仓库中的 Server 模块,`HugeGraphServer` 是服务进程的 Java 类名。下文的 Server 服务指运行中的图数据库服务。 diff --git a/content/en/docs/contribution-guidelines/hugegraph-server-idea-setup.md b/content/en/docs/contribution-guidelines/hugegraph-server-idea-setup.md index d36b6a9626..35ac108a58 100644 --- a/content/en/docs/contribution-guidelines/hugegraph-server-idea-setup.md +++ b/content/en/docs/contribution-guidelines/hugegraph-server-idea-setup.md @@ -16,7 +16,7 @@ The core steps for local startup are the same as starting with **scripts**: 2. Start HugeGraph-Server by executing the `HugeGraphServer` class to load the initialized graph information and start the server. Before proceeding with the following process, make sure that you have cloned the source code of HugeGraph -and have configured the development environment, such as `Java 11` & you could config your local environment +and have configured the development environment, such as `Java 17` for HugeGraph 1.8.0+ (`Java 11` for 1.7.0) & you could config your local environment with this [config-doc](https://github.com/apache/hugegraph/wiki/The-style-config-for-HugeGraph-in-IDEA) ```bash diff --git a/content/en/docs/contribution-guidelines/validate-release.md b/content/en/docs/contribution-guidelines/validate-release.md index 0e9d1f4982..8ecc044f43 100644 --- a/content/en/docs/contribution-guidelines/validate-release.md +++ b/content/en/docs/contribution-guidelines/validate-release.md @@ -5,7 +5,7 @@ weight: 3 --- > Note: this doc will be updated continuously. -> Use Java 11 for runtime verification. Since version 1.5.0, components other than the client no longer support Java 8. +> Use Java 17 for verifying HugeGraph 1.8.0+ (the Maven build accepts only JDK 17); use Java 11 for 1.7.0. Since version 1.5.0, components other than the client no longer support Java 8. > > Graduation note: Apache HugeGraph graduated in January 2026. Official release voting is now completed within the HugeGraph community (PMC binding votes on `dev@hugegraph.apache.org`), and no longer requires Incubator `general@incubator.apache.org` approval. @@ -23,7 +23,7 @@ subsequent **email reply**.(The following are the core items) If there is no svn or gpg or wget environment locally, it is recommended to install it first (windows recommend using WSL2 environment, or at least `git-bash`), also make sure to install java -(prefer Java 11) and maven software +(prefer Java 17 for HugeGraph 1.8.0+, Java 11 for 1.7.0) and maven software (≥ 3.6.3) ```bash # 1. install svn @@ -137,7 +137,7 @@ After decompressing `*hugegraph*src.tar.gz`, Do the following checks: 6. Finally, make sure the source code works/compiles correctly ```bash -# prefer to use/switch to `java 11` for the following operations (compiling/running) (Note: `Computer` only supports `java >= 11`) +# prefer to use/switch to `java 17` for HugeGraph 1.8.0+ (`java 11` for 1.7.0) for the following operations (compiling/running) (Note: `Computer` only supports `java >= 11`) # java --version # try to compile in the Unix env to check if it works well (-P is optional) diff --git a/content/en/docs/guides/faq.md b/content/en/docs/guides/faq.md index 543848904e..aea2ef50cd 100644 --- a/content/en/docs/guides/faq.md +++ b/content/en/docs/guides/faq.md @@ -13,8 +13,8 @@ weight: 6 Version 1.7.0 supports RocksDB, HStore, HBase, and Memory. Legacy backends such as Cassandra, ScyllaDB, MySQL, and PostgreSQL require version 1.5.x or earlier. - Prompt when starting the service: `xxx (core dumped) xxx` - - First confirm that the JDK version is Java 11 or later. HugeGraph 1.7.0 no longer supports Java 8. + + First confirm that your JDK version matches the requirements: Java 17 for HugeGraph 1.8.0+, or Java 11 for 1.7.0. HugeGraph no longer supports Java 8. - The service is started successfully, but there is a prompt similar to "Unable to connect to the backend or the connection is not open" when operating the graph diff --git a/content/en/docs/quickstart/hugegraph/hugegraph-hstore.md b/content/en/docs/quickstart/hugegraph/hugegraph-hstore.md index bd9b19a87e..45f77a6585 100644 --- a/content/en/docs/quickstart/hugegraph/hugegraph-hstore.md +++ b/content/en/docs/quickstart/hugegraph/hugegraph-hstore.md @@ -22,7 +22,7 @@ Each Store node keeps graph data in RocksDB and replicates it with Raft (JRaft): #### 2.1 Requirements - Operating System: Linux or macOS (Windows has not been fully tested) -- Java version: ≥ 17 for HugeGraph 1.8.0+ (enforced by the build and re-checked by `bin/start-hugegraph-store.sh`; 1.7.0 is the last release supporting Java 11) +- Java version: Java 17 for HugeGraph 1.8.0+ (the Maven build accepts only JDK 17; the start script rejects older runtimes; 1.7.0 is the last release supporting Java 11) - Maven version: ≥ 3.6.3 (for building from source) - Deploy HugeGraph-PD first for multi-node deployment diff --git a/content/en/docs/quickstart/hugegraph/hugegraph-pd.md b/content/en/docs/quickstart/hugegraph/hugegraph-pd.md index a7a20a56df..d1ced9c696 100644 --- a/content/en/docs/quickstart/hugegraph/hugegraph-pd.md +++ b/content/en/docs/quickstart/hugegraph/hugegraph-pd.md @@ -25,7 +25,7 @@ PD listens on three ports: #### 2.1 Requirements - Operating System: Linux or macOS (Windows has not been fully tested) -- Java version: ≥ 17 for HugeGraph 1.8.0+ (1.7.0 is the last release supporting Java 11) +- Java version: Java 17 for HugeGraph 1.8.0+ (the Maven build accepts only JDK 17; the start script rejects older runtimes; 1.7.0 is the last release supporting Java 11) - Maven version: ≥ 3.6.3 (for building from source) ### 3 Deployment diff --git a/content/en/docs/quickstart/hugegraph/hugegraph-server.md b/content/en/docs/quickstart/hugegraph/hugegraph-server.md index 555764ed78..062f19d59c 100644 --- a/content/en/docs/quickstart/hugegraph/hugegraph-server.md +++ b/content/en/docs/quickstart/hugegraph/hugegraph-server.md @@ -14,7 +14,7 @@ aliases: The `hugegraph-server` module contains `hugegraph-core`, `hugegraph-api`, `hugegraph-dist`, and storage adapters. Core implements the property graph model, transactions, and TinkerPop interfaces. API provides the HTTP service and delegates client requests to Core. Graph data is stored in RocksDB (the default standalone backend), HStore (distributed), or HBase. -> ⚠️ **Version scope**: Download examples use the ASF HugeGraph 1.7.0 release. Source builds, configuration defaults, and startup behavior follow `apache/hugegraph` master. A master build is not an ASF release artifact, even if its version number matches 1.7.0. This guide covers RocksDB, HStore, and HBase; see [1.5.x documentation](https://github.com/apache/hugegraph-doc/blob/release-1.5.0/content/en/docs/quickstart/hugegraph/hugegraph-server.md) for other legacy backends. +> ⚠️ **Version scope**: Download examples use the ASF HugeGraph 1.7.0 release. Source builds, configuration defaults, and startup behavior follow `apache/hugegraph` master. A master build is not an ASF release artifact, even if its version number matches a release. This guide covers RocksDB, HStore, and HBase; see [1.5.x documentation](https://github.com/apache/hugegraph-doc/blob/release-1.5.0/content/en/docs/quickstart/hugegraph/hugegraph-server.md) for other legacy backends. > Naming: `HugeGraph` means the overall project or main repository, `hugegraph-server` is its Server module, and `HugeGraphServer` is the Java service class. Server below means the running graph database service. From dcd70e02200bd765c5638b1b24a1d6d73885a6f5 Mon Sep 17 00:00:00 2001 From: imbajin Date: Thu, 15 Oct 2026 02:51:09 +0800 Subject: [PATCH 8/8] docs: polish TinkerPop 3.8.1 compatibility notes with code tabs --- .../quickstart/hugegraph/hugegraph-server.md | 56 +++++++++-------- .../quickstart/hugegraph/hugegraph-server.md | 63 ++++++++++--------- 2 files changed, 61 insertions(+), 58 deletions(-) diff --git a/content/cn/docs/quickstart/hugegraph/hugegraph-server.md b/content/cn/docs/quickstart/hugegraph/hugegraph-server.md index 84089f3df1..5a70e587db 100644 --- a/content/cn/docs/quickstart/hugegraph/hugegraph-server.md +++ b/content/cn/docs/quickstart/hugegraph/hugegraph-server.md @@ -62,33 +62,35 @@ Server 安全检查(`-s true`)要求 Java 17 到 23 以及可读的 `conf/ja **在继续阅读前,请先执行 `java -version` 命令确认 JDK 版本。** > [!NOTE] -> **TinkerPop 兼容性** -> -> HugeGraph 1.8.0 使用 TinkerPop 3.8.1 和 Groovy 4.0.25。请使用 Server 随包提供的 Gremlin 配置。 -> 序列化器类从 `org.apache.tinkerpop.gremlin.driver.ser` 移至 `org.apache.tinkerpop.gremlin.util.ser`, -> 并需保留配置中的 HugeGraph registries。默认脚本引擎仍为 Gremlin Groovy。 -> 部署前应检查应用脚本与 TinkerPop 3.5.1 到 3.8.1 整个升级区间的兼容性;本次升级不会将远程请求切换为 GremlinLang。 -> -> 顶点和边属性的 `supportsUniformListValues()` 现在返回 `false`,依赖 `Graph.Features` 的客户端需复核能力判断。 -> 按 schema 定义的 `valueList()`/`LIST` 属性仍支持,仅此标志变化无需重写既有列表数据。 -> -> 遍历中途的扫描保留上游输入数量:图中有三个顶点时,`g.V().V().count()` 返回 `9L`。 -> `P.typeOf()` 作为本地过滤执行,也支持放在取反或组合谓词中;单独使用类型过滤不会利用后端索引。 -> -> 随包 Driver 和 Console 配置使用 GraphBinary V1:schema 结果为标准 map,Blob 为二进制值,返回图元素内的 Blob 也适用。 -> 默认 HTTP JSON 使用的 Untyped GraphSON V1 保留 Tree 的旧 `key`/`value` 数组结构,支持标量和图元素作为 key。 -> Optional 返回其内容,空值返回 null;File 保留 `{"file": "name"}` 的 map 结构,使用文件名,嵌套结果也适用。 -> HugeGraph 枚举返回名称;`graph.schema()` 返回包含 property key、vertex label、edge label 和 index label 列表的 map。 -> Typed GraphSON 仅支持受支持的简单标量值与 ID,不能替代所有图元素或元数据对象的非类型化序列化; -> Typed GraphSON V1 已禁用,因为基于类名的反序列化可在认证前构造 Java 对象;typed V2/V3 仍可使用。 -> 随包导入的 Cypher 谓词工厂使用兼容实现,也支持重放 `EXPLAIN` 返回的 Gremlin 翻译结果。 -> 命名 `GValue` 谓词在复用或克隆时保留绑定;命名 `limit()`/`range()` 边界的计数行为与字面量边界一致。 -> 本地混合 ID 集合保留字符串、数值和 UUID 各自的类型匹配;全字符串集合继续使用标准字符串 ID 比较语义。 -> 本地边 ID 过滤支持混合字符串形式和原生边 ID,保持成员匹配及计数一致。 -> Jackson JSON 和 YAML 模块使用同一兼容版本,也支持 Kubernetes kubeconfig 扩展中的小数值。 -> Count 过滤仅在每个谓词分支均能证明截断安全时采用范围优化;不支持的否定集合或自定义谓词分支保留完整计数。 -> DATE schema 属性支持写入及索引等值/范围查询中的 `OffsetDateTime`,按 instant 转为毫秒;小于毫秒的精度被截断,既有 DATE 数据无需迁移。 -> 客户端配置和验证细节见 [Server 运行时文档](https://github.com/apache/hugegraph/blob/master/docs/server-runtime.md)。 +> **TinkerPop 3.8.1 兼容性与核心变更** +> +> HugeGraph 1.8.0 升级至 TinkerPop 3.8.1 与 Groovy 4.0.25。请使用 Server 随包提供的 Gremlin 配置文件。 +> +> - **序列化器包路径变更**:Driver 序列化器类从 `org.apache.tinkerpop.gremlin.driver.ser` 移至 `org.apache.tinkerpop.gremlin.util.ser`,需保留配置中的 HugeGraph registries。 +> - **Graph.Features 调整**:`supportsUniformListValues()` 现返回 `false`;按 Schema 定义的 `valueList()`/`LIST` 属性仍正常支持,无需重写既有列表数据。 +> - **遍历倍数语义**:遍历中途扫描保留上游输入数量(如 3 个顶点执行 `g.V().V().count()` 返回 `9L`)。 +> - **日期时间类型**:`DATE` 属性支持写入及索引等值/范围查询中的 `OffsetDateTime`(按 instant 毫秒归一化)。 +> - **过滤与优化**:`P.typeOf()` 作为本地过滤执行;Count 过滤仅在谓词分支可证明截断安全时应用优化。 + +```yaml {tab="GraphBinary (推荐/默认)"} +# 随包 Driver 与 Console 默认采用 GraphBinary V1 +# - Schema 结果为标准 Map +# - Blob 值以二进制格式传输(包含在返回图元素内的 Blob) +serializer: + className: org.apache.tinkerpop.gremlin.util.ser.GraphBinaryMessageSerializerV1 + config: + ioRegistries: [org.apache.hugegraph.structure.io.HugeGraphIoRegistry] +``` + +```yaml {tab="GraphSON (HTTP/兼容)"} +# 默认 HTTP JSON 采用 untyped GraphSON V1 +# - 保留 Tree 的旧 key/value 数组结构 +# - Typed GraphSON V1 因安全原因已禁用(typed V2/V3 仅适用于受支持的简单标量与 ID) +# - graph.schema() 返回包含各类 label 的 Map +``` + +> [!TIP] +> 完整客户端配置与验证细节见 [Server 运行时文档](https://github.com/apache/hugegraph/blob/master/docs/server-runtime.md)。 ## 3 部署 diff --git a/content/en/docs/quickstart/hugegraph/hugegraph-server.md b/content/en/docs/quickstart/hugegraph/hugegraph-server.md index 91ecf3b0e9..ac16e05fa0 100644 --- a/content/en/docs/quickstart/hugegraph/hugegraph-server.md +++ b/content/en/docs/quickstart/hugegraph/hugegraph-server.md @@ -65,37 +65,38 @@ on Java 24 or later, start Server with `-s false` (JDK 24+ dropped Security Mana **Before continuing, run `java -version` to confirm your JDK version.** > [!NOTE] -> **TinkerPop compatibility** -> -> HugeGraph 1.8.0 uses TinkerPop 3.8.1 and Groovy 4.0.25. Use the Gremlin configuration files bundled with Server. -> Serializer classes move from `org.apache.tinkerpop.gremlin.driver.ser` to `org.apache.tinkerpop.gremlin.util.ser`; -> retain the supplied HugeGraph registries. Gremlin Groovy remains the default engine. -> Check application scripts against the TinkerPop 3.5.1 to 3.8.1 upgrade interval; this upgrade does not switch remote requests to GremlinLang. -> -> `supportsUniformListValues()` now returns `false` for vertex and edge properties, so clients that inspect `Graph.Features` must adjust that capability check. -> Schema-defined `valueList()`/`LIST` properties remain supported; this flag change alone does not require rewriting existing list data. -> -> A mid-traversal scan retains its input multiplicity: with three vertices, `g.V().V().count()` returns `9L`. -> `P.typeOf()` runs as a local filter, including in negated or combined predicates; it does not use backend indexes on its own. -> -> The bundled Driver and Console configurations use GraphBinary V1: schema results are standard maps and Blob values are binary, -> including inside returned graph elements. Default HTTP JSON with untyped GraphSON V1 preserves the legacy Tree `key`/`value` array, with scalar or element -> keys. -> Optional results carry their value or null when empty; File results keep the map shape `{"file": "name"}` with the file name, including in nested results. -> HugeGraph enums return their names; `graph.schema()` returns a map with property key, vertex label, edge label and index label lists. -> Typed GraphSON is available only for supported simple values and IDs, not as a replacement for untyped serialization of every graph or schema object. -> Typed GraphSON V1 is disabled because class-name deserialization can construct Java objects before authentication; typed V2/V3 remain available. -> The bundled Cypher predicate imports use the compatible factories, including when replaying the Gremlin translation returned by `EXPLAIN`. -> Named `GValue` predicates retain bindings when reused or cloned; named `limit()`/`range()` bounds count like literal bounds. -> Local mixed ID collections preserve typed string, number and UUID matches; all-string collections retain standard string-ID comparisons. -> Local edge ID filters accept mixed serialized strings and native edge IDs with consistent membership and count results. -> Jackson JSON and YAML modules use one compatible version, including parsing decimal-valued Kubernetes kubeconfig extensions. -> Count filtering keeps the complete count if any predicate branch has no proven safe truncation bound, including unsupported negated collections and custom -> predicates. -> DATE schema properties accept `OffsetDateTime` for writes and indexed equality/range queries, normalized by instant to milliseconds; -> sub-millisecond precision is truncated, and existing DATE data needs no migration. -> See the [server runtime documentation](https://github.com/apache/hugegraph/blob/master/docs/server-runtime.md) -> for client configuration and verification details. +> **TinkerPop 3.8.1 Compatibility & Key Changes** +> +> HugeGraph 1.8.0 upgrades to TinkerPop 3.8.1 and Groovy 4.0.25. Use the Gremlin configuration files bundled with Server. +> +> - **Serializer Packages**: Driver serializer classes moved from `org.apache.tinkerpop.gremlin.driver.ser` to `org.apache.tinkerpop.gremlin.util.ser`. +> Keep HugeGraph registries. +> - **Graph.Features**: `supportsUniformListValues()` returns `false` for properties. +> Schema `valueList()`/`LIST` properties remain supported without rewriting existing data. +> - **Traversal Multiplicity**: Mid-traversal scans retain input multiplicity (e.g. for 3 vertices, `g.V().V().count()` returns `9L`). +> - **Date & Time Types**: `DATE` properties accept `OffsetDateTime` for writes and indexed equality/range queries (instant normalized to milliseconds). +> - **Filtering Behavior**: `P.typeOf()` runs as a local filter; count filtering applies range optimizations only when predicate branches are provably safe. + +```yaml {tab="GraphBinary (Recommended)"} +# Bundled Driver and Console default to GraphBinary V1 +# - Schema results are standard maps +# - Blob values are binary (including inside returned elements) +serializer: + className: org.apache.tinkerpop.gremlin.util.ser.GraphBinaryMessageSerializerV1 + config: + ioRegistries: [org.apache.hugegraph.structure.io.HugeGraphIoRegistry] +``` + +```yaml {tab="GraphSON (HTTP / Legacy)"} +# Default HTTP JSON uses untyped GraphSON V1 +# - Preserves the legacy Tree key/value array structure +# - Typed GraphSON V1 is disabled for security (typed V2/V3 remain available for simple values and IDs) +# - graph.schema() returns property keys, vertex labels, edge labels, and index labels +``` + +> [!TIP] +> For complete client configuration and migration details, see the +> [server runtime documentation](https://github.com/apache/hugegraph/blob/master/docs/server-runtime.md). ## 3 Deploy