StatefulShortestPath: 在目标饱和后避免重复的 WALK 跟踪
作者: iancuuandrei创建于 2026年9月9日更新于 2026年9月10日
标签team-cypherGithub Issue
在未绑定的 `StatefulShortestPath` WALK 执行中,目标可能会变得饱和,而 `PathTracer` 仍然有代表路径组合可用。由于当前追踪还建立了目标标志/传播元数据等记账信息,因此当从该目标无法再生成有用的行时,追踪器将继续。对于 WALK,剩余的记账继续是历史独立的,可以通过结构化的 `(NodeState, sourceLength)` 状态而不是重新枚举等效路径后缀来备忘录。我实现了一个仅针对 WALK 的快速路径,对应于 `2026.08` (`736cad02a36bb4a0d32c1064f44768339c814269`)。在重复菱形深度 6 的机制测试中,追踪推送从 **948 减少到 200**,而差异测试产生了相同的行、传播计划、目标标志注册和剪枝结果。绑定目标和 TRAIL 控制显示为零推送偏移。实现故意保留了 TRAIL/ACYCLIC 不变,因为它们的有效性取决于关系/节点历史。查询级别/JFR 认证仍在等待中;我主要是为了检查此优化方向是否与预期的 PPBFS 架构一致,然后再进一步进行。实现(清洁分支,4 个文件,仅添加): https://GitHub.com/iancuuandrei/neo4j-contributions/tree/contrib/ppbfs-walk-post-saturation-bookkeeping
内容来源: neo4j/neo4j