-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MLH-73 | Cassandra optimisation. Optimise edgeLabel fetching only to root level vertices #4352
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PR Overview
This pull request addresses a bug fix and performance optimisation in Cassandra policies and relationships retrieval by introducing Janus graph optimisations for relationships and adding a fallback mechanism for prefetch failures.
- Introduces a new configuration flag (ATLAS_INDEXSEARCH_ENABLE_JANUS_OPTIMISATION_FOR_RELATIONS) and related conditional logic for optimised property prefetching in EntityGraphRetriever.
- Implements a try-catch fallback for prefetch failures when dealing with policy attributes.
- Removes an obsolete edge retrieval method in GraphHelper and tweaks filtering of edge labels.
Reviewed Changes
File | Description |
---|---|
repository/src/main/java/org/apache/atlas/repository/store/graph/v2/EntityGraphRetriever.java | Implements Janus optimisation for relationship attributes and a fallback for prefetch errors in policies. |
repository/src/main/java/org/apache/atlas/repository/graph/GraphHelper.java | Removes the getOnlyActiveEdges method and adjusts label filtering in edge retrieval. |
.github/workflows/maven.yml | Adds a new branch trigger for cassandrapoliciesoptimisation. |
intg/src/main/java/org/apache/atlas/AtlasConfiguration.java | Adds a new configuration flag to control Janus optimisation for relationships. |
Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.
Comments suppressed due to low confidence (1)
repository/src/main/java/org/apache/atlas/repository/graph/GraphHelper.java:2088
- [nitpick] The filtering logic for edge labels was changed by removing the check on entry value emptiness; confirm that allowing empty type names is intentional and does not introduce unintended behavior during edge label processing.
.filter(entry -> !entry.getKey().isEmpty())
Change description
Type of change
Related issues
Checklists
Development
Security
Code review