GDS 与 Neo4j 集群

此功能在 AuraDS 中不可用。

GDS 可以作为 Neo4j 集群部署的一部分运行。由于 GDS 利用系统的全部资源执行大型计算,因此不适合在处理集群事务性工作负载的实例上运行。

部署

我们利用一个次级实例来部署 GDS 库并处理分析工作负载。对 GDS write 过程的调用通过服务器端路由内部导向到我们正在操作的数据库的 Writer 集群实例。

Neo4j 5.x 支持同一集群实例上的不同数据库作为集群的 PrimarySecondary 成员。为了使 GDS 正常工作,安装 GDS 的实例上的所有数据库都必须是 Secondary,包括 system 数据库(参见 server.cluster.system_database_modeinitial.server.mode_constraint)。GDS 具有计算密集型 OLAP 工作负载,可能会干扰集群操作,我们建议将 GDS 安装在不提供事务性负载且不参与 Leader 选举的实例上。

有关如何设置 Neo4j 分析集群的详细信息,请参阅官方 Neo4j 文档。请注意,该链接指向最新的 Neo4j 版本文档,配置设置可能与早期版本有所不同。

  • 集群必须至少包含一台次级机器。

    • 单个主级次级是一个有效的场景。

    • 如果存在多个次级实例,GDS 工作负载将不会进行负载均衡。

  • 集群应配置为使用服务器端路由

  • GDS 插件部署在次级实例上。

    • 必须在次级实例上安装并配置有效的 GDS 企业版许可证。

    • 操作 GDS 的驱动程序连接应使用 bolt:// 协议连接到次级实例。

有关设置、配置和管理 Neo4j 集群的更多信息,请参阅文档

在处理集群配置时,您应该注意 Neo4j 中的严格配置验证

为次级实例配置 GDS 时,您将在 neo4j.conf 中引入 GDS 特定的配置——这没有问题,因为安装 GDS 插件后,Neo4j 将愉快地验证这些配置项。

但是,您可能无法在核心集群成员上原样重用该配置文件,因为在那里您将不会安装 GDS 插件,因此 Neo4j 将无法验证 GDS 特定的配置项。验证失败将导致 Neo4j 拒绝启动。

当然也可以关闭严格验证。

我们利用一个读副本实例来部署 GDS 库并处理分析工作负载。对 GDS write 过程的调用通过服务器端路由内部导向到集群的 LEADER 实例。

有关如何设置 Neo4j 因果集群的详细信息,请参阅官方 Neo4j 文档。请注意,该链接指向最新的 Neo4j 4.x 版本文档,配置设置可能与早期版本有所不同。

  • 集群必须至少包含一个读副本实例。

    • 单个核心成员和一个读副本是一个有效的场景。

    • 如果存在多个读副本实例,GDS 工作负载将不会进行负载均衡。

  • 集群应配置为使用服务器端路由

  • GDS 插件部署在读副本实例上。

    • 必须在读副本实例上安装并配置有效的 GDS 企业版许可证。

    • 操作 GDS 的驱动程序连接应使用 bolt:// 协议,或通过服务器策略路由读副本实例。

有关设置、配置和管理 Neo4j 因果集群的更多信息,请参阅文档

GDS 配置

以下可选设置可用于控制事务大小。

属性 默认值

gds.cluster.tx.min.size

10000

gds.cluster.tx.max.size

100000

写入节点属性的批处理大小是根据这两个值以及配置的并发性和总节点数计算得出的。写入关系的批处理大小使用这两个设置中的较小值。有些过程支持批处理大小配置,如果存在于过程调用参数中,则其具有优先权。

© . All rights reserved.