lix/src/libstore
Eelco Dolstra 75989bdca7 Make computeFSClosure() single-threaded again
The fact that queryPathInfo() is synchronous meant that we needed a
thread for every concurrent binary cache lookup, even though they end
up being handled by the same download thread. Requiring hundreds of
threads is not a good idea. So now there is an asynchronous version of
queryPathInfo() that takes a callback function to process the
result. Similarly, enqueueDownload() now takes a callback rather than
returning a future.

Thus, a command like

  nix path-info --store https://cache.nixos.org/ -r /nix/store/slljrzwmpygy1daay14kjszsr9xix063-nixos-16.09beta231.dccf8c5

that returns 4941 paths now takes 1.87s using only 2 threads (the main
thread and the downloader thread). (This is with a prewarmed
CloudFront.)
2016-09-16 18:54:14 +02:00
..
binary-cache-store.cc Make computeFSClosure() single-threaded again 2016-09-16 18:54:14 +02:00
binary-cache-store.hh Make computeFSClosure() single-threaded again 2016-09-16 18:54:14 +02:00
build.cc Don't run builds as root in the user namespace 2016-09-08 18:16:23 +02:00
builtins.cc Enable HTTP/2 support 2016-09-14 16:36:02 +02:00
builtins.hh Make <nix/fetchurl.nix> a builtin builder 2015-07-20 04:38:46 +02:00
crypto.cc Use secret-key-files for verifying 2016-04-07 15:16:57 +02:00
crypto.hh Add "nix verify-paths" command 2016-03-29 16:37:16 +02:00
derivations.cc Move some .drv parsing functions out of util 2016-09-14 10:54:57 +02:00
derivations.hh Add a mechanism for derivation attributes to reference the derivation's outputs 2016-08-17 17:19:32 +02:00
download.cc Make computeFSClosure() single-threaded again 2016-09-16 18:54:14 +02:00
download.hh Make computeFSClosure() single-threaded again 2016-09-16 18:54:14 +02:00
export-import.cc Make the store directory a member variable of Store 2016-06-01 16:24:17 +02:00
fs-accessor.hh Add NAR / Store accessor abstraction 2016-02-25 17:43:19 +01:00
gc.cc find-runtime-roots: fold into gc.cc 2016-07-21 07:04:41 -04:00
globals.cc remove old traces of resolve-system-dependencies 2016-08-13 15:27:49 -07:00
globals.hh Remove $NIX_DB_DIR 2016-08-10 18:05:35 +02:00
http-binary-cache-store.cc Make computeFSClosure() single-threaded again 2016-09-16 18:54:14 +02:00
local-binary-cache-store.cc Make computeFSClosure() single-threaded again 2016-09-16 18:54:14 +02:00
local-fs-store.cc FSAccessor: Throw InvalidPath 2016-08-10 18:05:35 +02:00
local-store.cc Make computeFSClosure() single-threaded again 2016-09-16 18:54:14 +02:00
local-store.hh Make computeFSClosure() single-threaded again 2016-09-16 18:54:14 +02:00
local.mk Make the aws-cpp-sdk dependency optional 2016-05-04 17:16:48 +02:00
misc.cc Make computeFSClosure() single-threaded again 2016-09-16 18:54:14 +02:00
nar-accessor.cc NarAccessor: Fix handling of non-executable files 2016-08-10 18:05:35 +02:00
nar-accessor.hh Add NAR / Store accessor abstraction 2016-02-25 17:43:19 +01:00
nar-info-disk-cache.cc SQLite:: Add some convenience 2016-08-10 18:05:35 +02:00
nar-info-disk-cache.hh HttpBinaryCacheStore: Fix caching of WantMassQuery 2016-06-01 16:24:17 +02:00
nar-info.cc Mark content-addressed paths in the Nix database and in .narinfo 2016-08-10 18:05:35 +02:00
nar-info.hh Make the store directory a member variable of Store 2016-06-01 16:24:17 +02:00
nix-store.pc.in Install some pkgconfig files 2014-09-18 12:00:40 +02:00
optimise-store.cc LocalStore: Allow the physical and logical store directories to differ 2016-06-02 16:02:48 +02:00
pathlocks.cc Modernize AutoCloseFD 2016-07-11 15:44:44 -04:00
pathlocks.hh Support sandbox builds by non-root users 2016-06-03 15:59:28 +02:00
profiles.cc Allow setting the state directory as a store parameter 2016-06-02 16:02:48 +02:00
profiles.hh Allow setting the state directory as a store parameter 2016-06-02 16:02:48 +02:00
references.cc OCD: foreach -> C++11 ranged for 2015-07-17 20:13:56 +02:00
references.hh Use "#pragma once" to prevent repeated header file inclusion 2012-07-18 14:59:03 -04:00
remote-store.cc Make computeFSClosure() single-threaded again 2016-09-16 18:54:14 +02:00
remote-store.hh Make computeFSClosure() single-threaded again 2016-09-16 18:54:14 +02:00
s3-binary-cache-store.cc Make computeFSClosure() single-threaded again 2016-09-16 18:54:14 +02:00
s3-binary-cache-store.hh Make the store directory a member variable of Store 2016-06-01 16:24:17 +02:00
sandbox-defaults.sb.in Revert "remove sandbox-defaults.sb" 2015-11-21 16:40:24 -05:00
schema.sql Mark content-addressed paths in the Nix database and in .narinfo 2016-08-10 18:05:35 +02:00
sqlite.cc SQLite:: Add some convenience 2016-08-10 18:05:35 +02:00
sqlite.hh SQLite:: Add some convenience 2016-08-10 18:05:35 +02:00
store-api.cc Make computeFSClosure() single-threaded again 2016-09-16 18:54:14 +02:00
store-api.hh Make computeFSClosure() single-threaded again 2016-09-16 18:54:14 +02:00
worker-protocol.hh Make the store directory a member variable of Store 2016-06-01 16:24:17 +02:00