Skip to content
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

Allow shared build cache package installation to avoid duplication #4

Closed
colearendt opened this issue Jan 8, 2019 · 2 comments
Closed

Comments

@colearendt
Copy link

colearendt commented Jan 8, 2019

In multi-tenant servers (i.e. RStudio pro products), it might be beneficial to have "build awareness" in relation to #3 (when using a shared cache).

I.e. 5 users request to build the same package version at the same time. It would be nice to see if it's possible for renv to have hooks or some type of awareness into that build pipeline so that redundancy can be reduced.

Honestly, part of this may be just awareness / extensibility and potential dependence on an arbitrary package installation client (which might provide this build awareness). I just wanted to document the idea in case it affects the development process at all.

For instance - on Connect (packrat), if 5 users attempt to install the same package at the same time, they will all build from source concurrently. Each one, as it completes, will update the cache with its completed version. This (1) is redundant and (2) burns up the CPU. Binary packages could resolve much of the issue, but in any case where binaries are not available, some additional client awareness would be useful.

@kevinushey
Copy link
Collaborator

FWIW I think this is a relatively low priority issue as getting this right and being robust to failure will be far more difficult than the minor pain of having a package compiled multiple times on different machines.

@kevinushey
Copy link
Collaborator

I'm going to close this as out of scope -- I believe this will be too expensive to get right, and ultimately have only marginal benefit.

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

No branches or pull requests

2 participants