Low-latency closure copy
This adds a new store operation 'addMultipleToStore' that reads a number of NARs and ValidPathInfos from a Source, allowing any number of store paths to be copied in a single call. This is much faster on high-latency links when copying a lot of small files, like .drv closures. For example, on a connection with an 50 ms delay: Before: $ nix copy --to 'unix:///tmp/proxy-socket?root=/tmp/dest-chroot' \ /nix/store/90jjw94xiyg5drj70whm9yll6xjj0ca9-hello-2.10.drv \ --derivation --no-check-sigs real 0m57.868s user 0m0.103s sys 0m0.056s After: real 0m0.690s user 0m0.017s sys 0m0.011s
Showing
- src/libstore/daemon.cc 17 additions, 32 deletionssrc/libstore/daemon.cc
- src/libstore/path-info.cc 46 additions, 0 deletionssrc/libstore/path-info.cc
- src/libstore/path-info.hh 5 additions, 0 deletionssrc/libstore/path-info.hh
- src/libstore/remote-store.cc 26 additions, 34 deletionssrc/libstore/remote-store.cc
- src/libstore/remote-store.hh 5 additions, 4 deletionssrc/libstore/remote-store.hh
- src/libstore/store-api.cc 54 additions, 17 deletionssrc/libstore/store-api.cc
- src/libstore/store-api.hh 6 additions, 0 deletionssrc/libstore/store-api.hh
- src/libstore/worker-protocol.hh 2 additions, 2 deletionssrc/libstore/worker-protocol.hh
Loading
Please register or sign in to comment