GDS 功能开关

功能开关不被视为公共 API 的一部分,并可能在 GDS 库的次要版本之间被移除或更改。
功能开关在 AuraDS 中不可用。

BitIdMap 功能开关

GDS 企业版使用不同的内存图实现,与 GDS 社区版相比,该实现消耗的内存更少。此内存图实现的性能取决于底层图的大小和拓扑结构。对于写入过程和创建较小图的速度可能较慢。要切换到 GDS 社区版中使用的内存占用更高的实现,您可以使用以下过程调用来禁用此功能。

CALL gds.features.useBitIdMap(false)

紧凑邻接列表开关

GDS 的内存图基于 压缩稀疏行 (CSR) 布局。默认情况下,CSR 数据结构中单个节点的邻接列表使用变长编码和差分编码组合进行压缩存储。压缩策略可以更改为未压缩或整数打包方法。

整数打包是 GDS 中一种替代压缩策略,与默认压缩相比,它至少能达到相似但通常更好的压缩比。更好的压缩比能降低内存图的内存消耗,这意味着我们可以在相同内存量中容纳更多图数据。在压缩性能方面,整数打包比默认压缩能实现更好的压缩性能。虽然压缩性能更好,但图投影的速度将与之前大致相同,因为运行时不一定由关系压缩主导,而是由图投影的其他部分主导,例如 ID 映射或属性加载。由于更好的内存局部性和更少的分支,解压缩性能始终优于默认压缩策略。特别是遍历密集型算法将从这种性能提升中受益。

与默认压缩策略相比,一个重要区别是整数打包实现使用堆外内存来存储 CSR 数据结构。在为 Neo4j 和剩余操作系统内存确定 JVM 堆和页面缓存内存大小时,需要考虑这一点。如果启用此功能,数据将存储在与操作系统共享的内存区域中,类似于页面缓存,但没有大小限制。如果在图投影期间没有足够的可用内存,分配将导致未定义行为,并且很可能导致 JVM 崩溃。

要切换到使用紧凑邻接列表,请使用以下过程调用。

CALL gds.features.usePackedAdjacencyList(true)

要切换回默认压缩或未压缩(如果启用)的邻接列表,请使用以下过程调用。

CALL gds.features.usePackedAdjacencyList(false)

要将设置重置为默认值,请使用以下过程调用。

CALL gds.features.usePackedAdjacencyList.reset() YIELD enabled

未压缩邻接列表开关

GDS 的内存图基于 压缩稀疏行 (CSR) 布局。默认情况下,CSR 数据结构中单个节点的邻接列表是压缩存储的。这种压缩降低了图的内存使用,但在算法执行期间需要额外的计算时间来解压缩。使用未压缩的邻接列表将导致更高的内存消耗,以提供更快的遍历。由于常驻内存大小的增加,它也可能对性能产生负面影响。使用更多内存需要更高的内存带宽来读取相同的邻接列表。压缩或未压缩哪个更好,在很大程度上取决于图的拓扑结构和算法。遍历密集型算法,例如三角形计数,更有可能从未压缩的邻接列表中受益。具有非常倾斜的度分布(“幂律”)的图中的非常密集的节点通常会实现更高的压缩比。在这些图上使用未压缩的邻接列表更有可能遇到内存带宽限制。

要切换到未压缩的邻接列表,请使用以下过程调用。

CALL gds.features.useUncompressedAdjacencyList(true)

要切换到压缩的邻接列表,请使用以下过程调用。

CALL gds.features.useUncompressedAdjacencyList(false)

要将设置重置为默认值,请使用以下过程调用。

CALL gds.features.useUncompressedAdjacencyList.reset() YIELD enabled

重排序邻接列表开关

由于从底层存储读取数据的方式,GDS 的内存图会无序写入邻接列表。此功能开关将在图创建期间添加一个步骤,其中邻接列表将重新排序以遵循内部节点 ID。这种重新排序使得 CSR 表示更接近教科书布局,其中邻接列表按节点 ID 顺序写入。重新排序对某些图和某些算法可能有利,因为将由同一线程遍历的邻接列表更有可能存储在内存(缓存)中彼此靠近的位置。顺序取决于在内存图中分配的 GDS 内部节点 ID,而不是从底层 Neo4j 存储加载的节点 ID。

要启用重排序,请使用以下过程调用。

CALL gds.features.useReorderedAdjacencyList(true)

要禁用重排序,请使用以下过程调用。

CALL gds.features.useReorderedAdjacencyList(false)

要将设置重置为默认值,请使用以下过程调用。

CALL gds.features.useReorderedAdjacencyList.reset() YIELD enabled
© . All rights reserved.