Skip to content

perf: Optimize DELETE/DETACH DELETE performance#781

Open
MuhammadTahaNaveed wants to merge 1 commit intoskaiworldwide-oss:mainfrom
MuhammadTahaNaveed:delete-imp
Open

perf: Optimize DELETE/DETACH DELETE performance#781
MuhammadTahaNaveed wants to merge 1 commit intoskaiworldwide-oss:mainfrom
MuhammadTahaNaveed:delete-imp

Conversation

@MuhammadTahaNaveed
Copy link
Collaborator

  • Remove unnecessary sequential scans in DETACH DELETE.
  • ~30x performance improvement from some rough tests.
  • Added caches and indexes to find connected edges efficiently.
  • Setting auto_gather_graphmeta to true automatically triggers regather_graphmeta to ensure correct metadata.
  • When auto_gather_graphmeta is enabled, DETACH DELETE prunes the ag_edge inheritance tree and scans only edge labels connected to the target vertex. This optimization currently applies to vertices only, not paths. This further optimizes the DELETE operation.

- Remove unnecessary sequential scans in DETACH DELETE.
- ~30x performance improvement from some rough tests.
- Added caches and indexes to find connected edges efficiently.
- Setting auto_gather_graphmeta to true automatically triggers
  regather_graphmeta to ensure correct metadata.
- When auto_gather_graphmeta is enabled, DETACH DELETE prunes the ag_edge
  inheritance tree and scans only edge labels connected to the target
  vertex. This optimization currently applies to vertices only, not paths.
  This further optimizes the DELETE operation.
Future Considerations:
- Maybe we should remove the edge count column in ag_graphmeta which
  could slow down writes a bit and enable graphmeta permanently?
- If no edge is connected, remove the join completely.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant