Files
nexus/wiki/concepts/Incremental-Graph-Update.md

33 lines
1.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "Incremental Graph Update"
type: concept
tags: [graph, real-time, file-watching]
sources: [lsp-index-engineer]
last_updated: 2026-04-25
---
## Definition
增量图谱更新Incremental Graph Update是 LSP/Index Engineer 维护代码语义图谱的核心策略——通过文件监视器File Watchers和 Git hooks 检测变更,仅更新受影响的图谱子图,而非全量重建,从而实现亚秒级增量同步。
## Trigger Mechanisms
- **文件监视器**:监听文件系统变更,触发相关符号的重新索引
- **Git hooks**:在提交前后执行图谱增量更新,确保版本控制集成
- **WebSocket 推送**:将图谱差异实时推送至连接的客户端
## Consistency Guarantees
LSP/Index Engineer 的原子性保证:图谱更新必须是原子性的——从不将图谱置于不一致状态。具体约束:
- 每个符号有且仅有一个定义节点
- 所有边必须引用有效节点 ID
- 文件节点必须在符号节点之前创建
- 导入边必须解析到实际文件/模块节点
## Performance Impact
增量更新使得图谱在 100k+ 符号规模下依然保持亚秒级响应:
- 文件保存后 → 图谱更新传播至客户端 <500ms
- 单个文件变更 → 仅更新受影响子图,而非全量重建
- WebSocket 推送延迟 <50ms