aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
* Stop using with-port-timeoutsChristopher Baines2023-09-12
| | | | As this is incompatible with fibers.
* Move most maintenance activity to fibersChristopher Baines2023-09-12
| | | | | On a single separate thread. This will allow for spawning fibers for various maintenance actions.
* Switch to cooperative schedulingChristopher Baines2023-09-12
|
* Correct the metric problems from introducing fold-nar-filesChristopher Baines2023-09-12
| | | | The metrics are now updated at the end.
* Name an unnamed threadChristopher Baines2023-09-08
|
* Name some worker threadsChristopher Baines2023-09-08
|
* Avoid fast-download-nars from calling get-nar-filesChristopher Baines2023-09-08
| | | | As this is expensive when there are a large number of nars.
* Add fold-nar-files and use it in a few placesChristopher Baines2023-09-08
| | | | As this should use less memory than get-nar-files.
* Add datastore-fold-all-narinfo-filesChristopher Baines2023-09-07
|
* Set thread names for worker threadsChristopher Baines2023-09-07
|
* Include metrics for ports and file descriptorsChristopher Baines2023-09-07
|
* Use call-with-duration-metric helperChristopher Baines2023-09-07
|
* Throw some connection caching in for info requestsChristopher Baines2023-07-27
| | | | To avoid opening a new connection for each request.
* Add better exception handling and retrying when mirroring narsChristopher Baines2023-07-21
|
* Try to keep on top of mirroring narsChristopher Baines2023-07-21
| | | | Only sleep when there were no changes or exceptions.
* Drop the number of fibers threadsChristopher Baines2023-07-12
|
* Drop the socket timeout when fetching changesChristopher Baines2023-07-12
| | | | As I'm still seeing this hang.
* Log just before querying for recent changesChristopher Baines2023-07-08
|
* Cleanup temp files on exceptions when generating cached compressionsChristopher Baines2023-07-08
|
* Name some more threadsChristopher Baines2023-07-08
|
* Set low level timeouts for HTTP requestsChristopher Baines2023-06-30
| | | | To try to avoid things getting stuck.
* Add some more network connection timeout helpersChristopher Baines2023-06-30
|
* Show progress for downloading the database dumpChristopher Baines2023-06-30
|
* Update guix-dev.scmChristopher Baines2023-06-30
| | | | For the lack of guile-fibers-next.
* Refactor, making some code less nestedChristopher Baines2023-06-30
|
* Ensure that nar requests are for the right filenameChristopher Baines2023-05-31
| | | | Rather than just checking the hash.
* Stop mmap'ing the databaseChristopher Baines2023-05-30
| | | | | I don't think I fully understand the implications of this yet, in particular how this affects system memory usage.
* Add loop detection for nar requestsChristopher Baines2023-05-29
| | | | | | | | | | | | | | | Because the nar-herder is meant for use with a reverse proxy (like NGinx) which might reverse proxy the nar response from another server (also running the nar-herder), this might result in a loop of requests where say server A gets a request from a client, reverse proxies to server B, which then reverse proxies back to server A forming a loop. To detect and stop this, this commit enables the nar-herder to check the Via header, and refuse requests that it has already been involved in. This behaviour requires that the reverse proxy adds the machine hostname as an entry to the Via header when it reverse proxies the request.
* Make more logging output from the database module atomicChristopher Baines2023-05-29
| | | | So that it's easier to read.
* Insert cached narinfo files in a transactionChristopher Baines2023-05-29
| | | | As this handles the database being busy.
* Improve HEAD request handlingChristopher Baines2023-05-22
| | | | | | The Guile Fibers web server already just omits response bodies for HEAD requests, so just change the controller to handle HEAD requests like GET requests in all cases.
* Avoid generating cached compressions of already compressed filesChristopher Baines2023-05-22
| | | | | | This should probably be configurable, but just hardcoding compressed-file? from (guix utils) seems like a good step forward for now.
* Better handle invalid GET /nar/ requestsChristopher Baines2023-05-22
|
* Better handle /file requests where the nar is known but unavailableChristopher Baines2023-05-21
|
* Fix misleading log messageChristopher Baines2023-05-21
|
* Include the response code in some errorsChristopher Baines2023-05-21
|
* Name the cached compression work queueChristopher Baines2023-05-21
|
* Add exception handling to the recent change removal threadChristopher Baines2023-05-20
|
* Remove recent changes in transactionChristopher Baines2023-05-20
| | | | To handle the database being busy.
* Use a explicit transaction when removing cache narinfo file entriesChristopher Baines2023-05-20
|
* Log the duration of long database operationsChristopher Baines2023-05-20
|
* Tweak code for removing cached narsChristopher Baines2023-05-20
| | | | | Mostly neatness changes but also change > to >= to handle the case where all cached nars are being removed.
* Port with-port-timeout improvements from the build coordinatorChristopher Baines2023-05-20
|
* Port work queue improvements from the build coordinatorChristopher Baines2023-05-20
|
* Port worker-thread improvements from the build coordiantorChristopher Baines2023-05-20
|
* Remove trailing commaChristopher Baines2023-05-17
|
* Record when a narinfo is addedChristopher Baines2023-05-17
| | | | As this will enable removing nars by date added.
* Enable SQLite to mmap the database fileChristopher Baines2023-05-17
| | | | | At least part of it, I think SQLite in Guix is limited to mmap'ing 2GiB.
* Add metrics for Guile internal timesChristopher Baines2023-05-14
| | | | This allows detecting when the process crashes or restarts.
* Fix handling /file/ requests where no file is foundChristopher Baines2023-05-03
|