about summary refs log tree commit diff
path: root/src/libstore/s3-binary-cache-store.cc
AgeCommit message (Collapse)AuthorFilesLines
2016-09-16 Make computeFSClosure() single-threaded againEelco Dolstra1-26/+30
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-06-01 HttpBinaryCacheStore: Fix caching of WantMassQueryEelco Dolstra1-1/+1
Also, test HttpBinaryCacheStore in addition to LocalBinaryCacheStore.
2016-06-01 Make the store directory a member variable of StoreEelco Dolstra1-4/+4
2016-05-31 Shut up some clang warningsEelco Dolstra1-6/+6
2016-05-30 Fix buildEelco Dolstra1-1/+1
2016-05-30 Re-implement the WantMassQuery property of binary cachesEelco Dolstra1-1/+1
2016-05-30 BinaryCacheStore: Remove buildPaths() / ensurePath()Eelco Dolstra1-4/+3
2016-05-04 Make the aws-cpp-sdk dependency optionalEelco Dolstra1-0/+6
2016-04-29 nix verify --all: Support local binary cachesEelco Dolstra1-2/+2
2016-04-29 BinaryCacheStore: Make the signing key a parameterEelco Dolstra1-4/+3
2016-04-29 Allow parameters in store URIsEelco Dolstra1-1/+4
This is to allow store-specific configuration, e.g. s3://my-cache?compression=bzip2&secret-key=/path/to/key.
2016-04-21 Implement S3BinaryCacheStore::queryAllValidPaths()Eelco Dolstra1-1/+34
This allows commands like "nix verify --all" or "nix path-info --all" to work on S3 caches. Unfortunately, this requires some ugly hackery: when querying the contents of the bucket, we don't want to have to read every .narinfo file. But the S3 bucket keys only include the hash part of each store path, not the name part. So as a special exception queryAllValidPaths() can now return store paths *without* the name part, and queryPathInfo() accepts such store paths (returning a ValidPathInfo object containing the full name).
2016-04-21 Move S3BinaryCacheStore from HydraEelco Dolstra1-0/+218
This allows running arbitrary Nix commands against an S3 binary cache. To do: make this a compile time option to prevent a dependency on aws-sdk-cpp.