Optimize startup project metadata refresh without changing global GetAll loading behavior#1397
Merged
aharwood2 merged 4 commits intoJul 2, 2026
Conversation
Copilot
AI
changed the title
[WIP] Fix code based on review comment for PR 1388
Optimize startup project metadata refresh without changing global Jul 1, 2026
GetAll loading behavior
aharwood2
reviewed
Jul 1, 2026
Contributor
Author
I’ve re-checked this against |
b22db45
into
1375-compute-or-cache-project-meta-data-on-program-start
10 checks passed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The review flagged startup overhead from calling
ProjectService.GetAll(context)(deep eager-load + materialization) before per-project metadata updates. This PR keeps the heavyGetAlloverride intact for broader app usage, but narrows the startup-only metadata refresh path.Scope of change (review comment only)
UpdateAllProjectMetaDatato stop usingGetAll(context)in this path.GetAlloverride used elsewhere in the app.Targeted query for metadata recomputation
UpdateProjectMetaDataand downstream cost calculation:SubTasks -> AssignedResources -> Person -> WorkloadModelChangesFundingSourcesSubTasks -> AssignedResources -> FundedFromSchool -> FacultyProjectManagerLower per-project write overhead
Update(context, project)from the loop (which performs duplicate checks each iteration).CommitChanges(context)directly in the update path.