aboutsummaryrefslogtreecommitdiff
Commit message (Expand)AuthorAge
* Fix initially computing the cached bytes by compression•••Don't count cached files that are going to be deleted. Christopher Baines2023-02-04
* Fix the nar request metrics for cached nars•••As these were incorrectly being recording as 404 requests. Christopher Baines2023-02-04
* Properly implement cached compression levels•••It was sort of implemented, but I'd missed some bits. Christopher Baines2023-02-03
* Remove the narinfo id from the narinfo_files query•••As this is now an unused hack. Christopher Baines2023-02-03
* Track nar requests by narinfo systemChristopher Baines2023-02-03
* Don't get the narinfo id from the narinfo files query•••As this is a bit of a hack. Christopher Baines2023-02-03
* Add procedure to select narinfo details by hashChristopher Baines2023-02-03
* Remove trailing comma from the initial database SQLChristopher Baines2023-02-02
* Cleanup the utils moduleChristopher Baines2023-02-01
* Wrap various network bits with port timeoutsChristopher Baines2023-02-01
* Be more flexible with cached compressions•••Allow specifying where to fetch the source files from, enabling cached compressions for mirrors. Christopher Baines2023-02-01
* Add with-port-timeouts helper•••From the Guix Build Coordinator. Christopher Baines2023-02-01
* Make sure to use suspendable ports•••This will allow setting timeouts for network activity. Christopher Baines2023-02-01
* Use guile-fibers-next for local developmentChristopher Baines2023-02-01
* Fix --cached-compression-min-uses handlingChristopher Baines2023-02-01
* Fix the type of the cached narinfo compression when removingChristopher Baines2023-01-31
* Remove cached narinfo file database entries when removing narsChristopher Baines2023-01-31
* Fix a problem with exposing metrics•••Unfortunately I think there's a bug in the chunked transfer encoding changes I contributed to guile-fibers. In the case where the content length is not given, but the response body is a procedure, the port passed to the proc won't be chunked (but it should be). I'll fix this upstream, but work around it here by not using a procedure for the response, and just sending a string. Christopher Baines2023-01-16
* Change the worker threads to allow nesting callsChristopher Baines2023-01-16
* Add experimental support for cached compressions•••This adds optional caching for alternative compressions of stored nars. You could store lzip nars for example, but then compute, cache and provide zstd nars for some stored nars. Christopher Baines2023-01-16
* Extract out table-exists?Christopher Baines2022-11-29
* Add index on narinfo_files.narinfo_id•••This is important for finding narinfo_files by narinfo, which happens in database-select-narinfo-files. Christopher Baines2022-06-24
* Add some instrumentation around the databaseChristopher Baines2022-06-24
* Increase the maximum size of the reader thread pool•••As I think this might be a bottleneck. Christopher Baines2022-06-24
* Increment request metrics for file requestsChristopher Baines2022-06-24
* Remove some empty linesChristopher Baines2022-06-24
* Add experimental support for serving files by hash•••This route can be used to provide source files used in packages. The URL pattern is the same as used by guix publish. The main issue with the implementation is that the fibers web server expects the entire response to be in memory, so I'm not sure how well this will scale. Additionally, the code for extracting the file from the nar isn't ideal. Christopher Baines2022-06-10
* Improve handling of nar removal•••When --storage is set and not set. Christopher Baines2022-05-19
* Fiddle more with the nar removal criteria•••This should make the singular stored-on and and'ed stored-on work properly. Christopher Baines2022-05-19
* Encode filenames when passing the request back to nginx•••This handles filenames which contain characters like ? and =. Christopher Baines2022-05-17
* Just retry fetching files on the next mirror passChristopher Baines2022-05-15
* Add a fast path for downloading nars when there's no storage limitChristopher Baines2022-05-14
* Split out the downloading of narsChristopher Baines2022-05-14
* Update the storage_size_bytes metric when removing narsChristopher Baines2022-05-06
* Further fix the 'and nar removal criteriaChristopher Baines2022-05-06
* Fix the 'and removal criteriaChristopher Baines2022-05-06
* Support removing nar filesChristopher Baines2022-05-06
* Skip mirroring files if downloading them fails•••Until the next pass. Christopher Baines2022-05-05
* Handle exceptions in threadsChristopher Baines2022-05-05
* Initialise the nar_files_total metric when fetching changesChristopher Baines2022-05-04
* Create the pid file prior to downloading the database•••Otherwise, anything starting the service may time out if the database file is large. Christopher Baines2022-05-04
* Update the nar_files_total metric when processing changesChristopher Baines2022-05-04
* Fix the default log-level valueChristopher Baines2022-05-04
* Update the nar_files_total metric when downloading and removing filesChristopher Baines2022-05-04
* Expose the nar files stats via a new nar_files_total metricChristopher Baines2022-05-04
* Expose the storage size as a metricChristopher Baines2022-05-04
* Stop hardcoding some filenames in the sample NGinx configurationChristopher Baines2022-04-22
* Support handling /nar requests•••If the nar is known about, X-Accel-Redirect is used to pass the request back to the webserver which should then respond with the nar. If the nar isn't known about, then a 404 response is returned. In either case, there's a metric incremented to record the request. Christopher Baines2022-04-22
* Add support for exposing some basic metrics•••In a format understood by Prometheus. Christopher Baines2022-04-17
* Support passing a log-level to the nar-herder server•••This means that you can disable the output of requests by specifying a log-level of INFO or greater. Since the nar-herder may respond to so many requests, logging each one is a bit excessive. Christopher Baines2022-04-17