diff options
author | Florian Klink <flokli@flokli.de> | 2024-10-15T14·10+0300 |
---|---|---|
committer | clbot <clbot@tvl.fyi> | 2024-10-18T21·45+0000 |
commit | bd6894d265738ca7463922d39cbc128c5dc0e6ec (patch) | |
tree | 6af2ed8ed6e6a3be7131c0fab4c6c20412aca4f2 /tvix/store/src/pathinfoservice/mod.rs | |
parent | 98df0e4e34683db103d1b258ed7449676f647dae (diff) |
fix(tvix/store/pathinfo): use gRPC NarCalculationService r/8833
If the PathInfoService is using gRPC, expose it via the nar_calculation_service() method in the PathInfoService. Also pass nar_calculation_service through in tha blanket impl. This now causes a `tvix-store import` using the default config to not fall back to `SimpleRenderer`, which will calculate the NAR hash and size by downloading the uploaded blobs (and blobs it didn't need to upload) locally, making such imports faster. Change-Id: If2c3fe6584e9093cba322d2360f355a3923904ae Reviewed-on: https://cl.tvl.fyi/c/depot/+/12658 Tested-by: BuildkiteCI Reviewed-by: edef <edef@edef.eu> Autosubmit: flokli <flokli@flokli.de>
Diffstat (limited to 'tvix/store/src/pathinfoservice/mod.rs')
-rw-r--r-- | tvix/store/src/pathinfoservice/mod.rs | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/tvix/store/src/pathinfoservice/mod.rs b/tvix/store/src/pathinfoservice/mod.rs index 0a91d6267260..a0c48f5cc9d5 100644 --- a/tvix/store/src/pathinfoservice/mod.rs +++ b/tvix/store/src/pathinfoservice/mod.rs @@ -62,6 +62,8 @@ pub trait PathInfoService: Send + Sync { /// [async_trait] generates, but for streams instead of futures. fn list(&self) -> BoxStream<'static, Result<PathInfo, Error>>; + /// Returns a (more) suitable NarCalculationService. + /// This can be used to offload NAR calculation to the remote side. fn nar_calculation_service(&self) -> Option<Box<dyn NarCalculationService>> { None } @@ -83,6 +85,10 @@ where fn list(&self) -> BoxStream<'static, Result<PathInfo, Error>> { self.as_ref().list() } + + fn nar_calculation_service(&self) -> Option<Box<dyn NarCalculationService>> { + self.as_ref().nar_calculation_service() + } } /// Registers the builtin PathInfoService implementations with the registry |