-
Notifications
You must be signed in to change notification settings - Fork 26
allow disabling profile logic in NodeGetListQuery #5971
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
base: stable
Are you sure you want to change the base?
Conversation
CodSpeed Performance ReportMerging #5971 will not alter performanceComparing Summary
|
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.
Would be good to validate if the frontend is able to work correctly when the profiles are disabled before merging this PR
if it doesn't work we might need to keep the GraphQL queries related to profiles for now
I get a rough 50% improvement on NodeGetList when running the following query:
|
Not really the goal of this PR, but could we also do the same for NodeListGetInfoQuery? That would fully remove profiles overhead in the graphql query path. |
8163b25
to
cd1959c
Compare
|
After more thorough testing, I confirm what you've seen: we get a 10 to 20% improvement. |
adds a new env var
INFRAHUB_EXPERIMENTAL_NO_PROFILES
that removes the profile-related logic fromNodeGetListQuery
andNodeManager.get_many
. this results in a substantially simplerNodeGetListQuery
cypher query and an improvement in performance. my local testing showed perhaps a 10% improvement in performance when running a single query with and without the profiles logic, but I am not completely certain that there is actually a performance improvement. perhaps running one of the large generators the team has been working on is the best way to determine if this update actually improves performancethis new env var also removes any profile-related mutations from GraphQL schema.this caused toast errors on the front end, so removed itif a user has profiles linked to objects and then turns activates this setting, queries for objects linked to existing profiles will no longer be correct. I'm not sure if there are more guardrails that we should put in place for this