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

Deep realisation should be confined to the local store #11896

Open
Ericson2314 opened this issue Nov 18, 2024 · 2 comments
Open

Deep realisation should be confined to the local store #11896

Ericson2314 opened this issue Nov 18, 2024 · 2 comments

Comments

@Ericson2314
Copy link
Member

Ericson2314 commented Nov 18, 2024

We currently have "deep" and "shallow" realisations (which per #11895 should be called "traces").

The "deep" ones are keyed on unresolved derivations (derivations that have output deriving paths as inputs, i.e. they explicitly depend on the outputs of other derivations, whose paths/content may be yet-unknown).

The "shallow" ones are just keyed on resolved derivations (derivations that only have constant deriving paths (i.e. plain old store paths) as inputs.

Shallow traces are much better, for the reasons described in https://cloud.ins.jku.at/index.php/s/txgoHps6FyNpiDk. For more stores, and store-to-store communication, we only want to use shallow traces.

On the local store should be using the deep ones, and simply because it supports are current method of garbage collecting realisations. That method isn't even that good, but I know no better one at this time, and don't want to block CA derivations further on coming up with a better one.


To do this without regression on client-side efficiency downloading from the cache, we will first have to fix #11928

@mschwaig
Copy link
Member

mschwaig commented Nov 18, 2024

After publication and In the long term, the contents of https://cloud.ins.jku.at/index.php/s/txgoHps6FyNpiDk will be are available at https://doi.org/10.1145/3689944.3696169. Right now, the DOI link is still dead unfortunately.

@mschwaig
Copy link
Member

The "shallow" ones are just keyed on resolved derivations (derivations that only have constant deriving paths (i.e. plain old store paths) as inputs.

The terms 'constant deriving paths' and 'plain old store paths', are not clear to me in this context. I would say content hashes, or content-addressed store paths to put what's described in the paper into Nix terms.

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