You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: Implement transactional node search with MVCC semantics
Implement find_nodes_by_name with full transactional isolation:
1. TransactionalGraph::find_nodes_by_name:
- Retrieves snapshot to get baseline node set
- Filters out deleted nodes from write set
- Returns modified nodes from write set (uncommitted changes)
- Falls back to snapshot for unchanged nodes
- Includes newly inserted nodes not yet in snapshot
- Provides consistent view across transaction lifetime
2. ReadOnlyTransactionalGraph::find_nodes_by_name:
- Reads directly from specific snapshot
- No write set considerations (read-only)
- Used for historical queries and version checkout
This enables proper MVCC (Multi-Version Concurrency Control) behavior:
- Transactions see their own uncommitted changes
- Transactions are isolated from other concurrent transactions
- Reads are consistent within transaction scope
- No locking required for reads
Related to: codebase audit - complete transactional graph implementation
0 commit comments