GitHub user haohao0103 created a discussion: Graph server edgeCache invalidate 
strategy

![image](https://github.com/user-attachments/assets/42cef8e5-e7ba-4504-9582-749b0f477e37)
According to the current logic, the edgeCache invalidation mechanism is 
triggered by any vertex addition, update, or deletion, as well as any edge 
addition, update, or deletion, resulting in the clearing of the entire edge 
cache. As shown in the image, my expectation is to handle edgeCache 
invalidation differently based on the type of vertex change. From what I 
understand, the edgeCache's cache key is the queryId, such as:

`Query * from EDGE where [OWNER_VERTEX == 2, DIRECTION == OUT OR DIRECTION == 
IN]
Query * from EDGE where [OWNER_VERTEX == 1, DIRECTION == OUT OR DIRECTION == 
IN]`

This data is sourced from 
CachedGraphTransactionTest#testEdgeCacheClearWhenUpdateVertex.

The queryId in edgeCache is related to the vertex ID and not to the vertex's 
properties. Therefore, vertex addition or update operations should not trigger 
edgeCache invalidation. Is this understanding correct?

For vertex deletion operations, only the edgeCache entries corresponding to the 
relevant queryId should be cleared, rather than clearing the entire edge cache. 
This requires designing a data structure to maintain the mapping between 
vertices and their associated queryIds.

For edge change operations, I do not yet have a clear approach and will 
temporarily maintain the original design.

I welcome any guidance, suggestions, or feedback on this approach. Thank you in 
advance for your input!

GitHub link: https://github.com/apache/incubator-hugegraph/discussions/2720

----
This is an automatically sent email for [email protected].
To unsubscribe, please send an email to: [email protected]

Reply via email to