Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

chore: increase fileCache hit rate in autobuilds lifecycle#18507

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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Merged
Emyrk merged 1 commit intomainfromstevenmasley/dynamic_auto_build_optimization
Jun 24, 2025

Conversation

Emyrk
Copy link
Member

@EmyrkEmyrk commentedJun 23, 2025
edited
Loading

wsbuilder hits the file cache when running validation. This solution is imperfect, but by first sorting workspaces by their template version id, the cache hit rate should improve.

If there is a large number of workspaces, this could save some memory impact of dynamic parameters.

Future Work

A lot of builds have overlapping queries to fetch template information:

  • tx.GetTemplateByID
  • GetTemplateVersionByID

We could also cache these between the go routines running the builds to reduce some db load.

Comment on lines 78 to 79
Help:"The total number of file references ever opened in the file cache. The label 'hit' indicates whether the file was already in the cache ('true') or not ('false').",
}, []string{"hit"})
Copy link
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

Added a label for detecting our cache hit rate

@EmyrkEmyrk changed the base branch fromstevenmasley/dynamic_validate tographite-base/18507June 23, 2025 16:11
@EmyrkEmyrkforce-pushed thegraphite-base/18507 branch from4f52076 toc1d05a0CompareJune 23, 2025 16:46
@EmyrkEmyrkforce-pushed thestevenmasley/dynamic_auto_build_optimization branch fromd73e843 toae40278CompareJune 23, 2025 16:46
@EmyrkEmyrk changed the base branch fromgraphite-base/18507 tostevenmasley/dynamic_validateJune 23, 2025 16:46
@EmyrkEmyrkforce-pushed thestevenmasley/dynamic_auto_build_optimization branch fromae40278 toa4c0df4CompareJune 23, 2025 16:55
@EmyrkEmyrkforce-pushed thestevenmasley/dynamic_validate branch fromc1d05a0 to129235bCompareJune 23, 2025 16:59
@EmyrkEmyrkforce-pushed thestevenmasley/dynamic_auto_build_optimization branch froma4c0df4 toa97fd53CompareJune 23, 2025 17:00
@EmyrkEmyrk changed the base branch fromstevenmasley/dynamic_validate tographite-base/18507June 23, 2025 17:04
@EmyrkEmyrkforce-pushed thegraphite-base/18507 branch from129235b to82af2e0CompareJune 23, 2025 17:36
@EmyrkEmyrkforce-pushed thestevenmasley/dynamic_auto_build_optimization branch froma97fd53 to9945049CompareJune 23, 2025 17:36
@EmyrkEmyrk changed the base branch fromgraphite-base/18507 tomainJune 23, 2025 17:36
@EmyrkEmyrkforce-pushed thestevenmasley/dynamic_auto_build_optimization branch from9945049 toe5a33c1CompareJune 23, 2025 17:36
@EmyrkEmyrk requested a review fromaslilacJune 23, 2025 17:38
@EmyrkEmyrkforce-pushed thestevenmasley/dynamic_auto_build_optimization branch frome5a33c1 to4f6244fCompareJune 23, 2025 17:43
Comment on lines +164 to +171
// `wsbuilder` needs to load the terraform files for a given template version
// into memory. If 2 workspaces are using the same template version, they will
// share the same files in the FileCache. This only happens if the builds happen
// in parallel.
// TODO: Actually make sure the cache has the files in the cache for the full
// set of identical template versions. Then unload the files when the builds
// are done. Right now, this relies on luck for the 10 goroutine workers to
// overlap and keep the file reference in the cache alive.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

yeah, it could be nice if we did more of a "mark and sweep" style release strategy. or maybe generational...

oh no, am I about to build a general purpose garbage collector for this? Oh No

Copy link
MemberAuthor

@EmyrkEmyrkJun 23, 2025
edited
Loading

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

Yea, I had a similar set of thoughts and decided this was a good enough idea for this release.

There is a better way to do this for sure, and I wonder where else in the codebase we will have similar things going on (prebuilds?). That being a large set of workspaces that have some work to be done in bulk.

@EmyrkEmyrkforce-pushed thestevenmasley/dynamic_auto_build_optimization branch from4f6244f tobc38b64CompareJune 23, 2025 22:13
@EmyrkEmyrk merged commit7b152cd intomainJun 24, 2025
35 checks passed
@EmyrkEmyrk deleted the stevenmasley/dynamic_auto_build_optimization branchJune 24, 2025 12:36
@github-actionsgithub-actionsbot locked and limited conversation to collaboratorsJun 24, 2025
Sign up for freeto subscribe to this conversation on GitHub. Already have an account?Sign in.
Reviewers

@aslilacaslilacaslilac approved these changes

Assignees

@EmyrkEmyrk

Labels
None yet
Projects
None yet
Milestone
No milestone
Development

Successfully merging this pull request may close these issues.

2 participants
@Emyrk@aslilac

[8]ページ先頭

©2009-2025 Movatter.jp