Skip to content

Deep realisations should not be shared between stores #11896

@Ericson2314

Description

@Ericson2314

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions