Skip to content

[PackageLoading] Use a simpler manifest cache #2840

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

Merged
merged 1 commit into from
Aug 5, 2020

Conversation

aciidgh
Copy link
Contributor

@aciidgh aciidgh commented Jul 30, 2020

This switches the manifest cache approach used inside manifest loader to
directly use sqlite database instead of going through llbuild. The main
reason for this switch is to simplify caching behavior and take
advantage of SQLite's WAL mode for concurrent access. A separate PR will
make the manifest cache global for the user.

@aciidgh
Copy link
Contributor Author

aciidgh commented Jul 30, 2020

@swift-ci smoke test

@abertelrud
Copy link
Contributor

Thanks for this simplification — I think it's great to reduce the complexity here! I don't see any aging of entries from the database, though — what's the strategy for preventing unbounded growth?

@aciidgh
Copy link
Contributor Author

aciidgh commented Jul 31, 2020

I am considering cache eviction orthogonal since we don’t have that today either but it should be easy to do something since we now have full control over the cache.

@aciidgh
Copy link
Contributor Author

aciidgh commented Aug 1, 2020

@swift-ci smoke test self hosted

@aciidgh aciidgh force-pushed the manifest-cache branch 2 times, most recently from 0b39c8b to c528c32 Compare August 1, 2020 17:41
@aciidgh
Copy link
Contributor Author

aciidgh commented Aug 1, 2020

@swift-ci smoke test self hosted

@aciidgh
Copy link
Contributor Author

aciidgh commented Aug 1, 2020

@swift-ci smoke test

This switches the manifest cache approach used inside manifest loader to
directly use sqlite database instead of going through llbuild. The main
reason for this switch is to simplify caching behavior and take
advantage of SQLite's WAL mode for concurrent access. A separate PR will
make the manifest cache global for the user.
@aciidgh
Copy link
Contributor Author

aciidgh commented Aug 2, 2020

@swift-ci smoke test

@neonichu neonichu merged commit 13d60ca into swiftlang:master Aug 5, 2020
aciidgh added a commit to aciidgh/swift-package-manager that referenced this pull request Aug 27, 2020
aciidgh added a commit to aciidgh/swift-package-manager that referenced this pull request Aug 27, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants