Commit message (Collapse) | Author | Age | |
---|---|---|---|
* | Make sure to use streaming http requests everywhere | Christopher Baines | 2023-09-12 |
| | | | | As this avoids blocking. | ||
* | Add some more logging | Christopher Baines | 2023-09-12 |
| | |||
* | Enforce an ordering in database-select-recent-changes | Christopher Baines | 2023-09-12 |
| | |||
* | Remove some unused imports | Christopher Baines | 2023-09-12 |
| | |||
* | Use fibers in fast-download-nars | Christopher Baines | 2023-09-12 |
| | | | | As it's within a fibers thread now. | ||
* | Use recent changes to trigger nar mirroring and removal | Christopher Baines | 2023-09-12 |
| | | | | | As this should be more efficient than repeatedly looking through all the nars in the database. | ||
* | Use fibers for the recent changes removal thread | Christopher Baines | 2023-09-12 |
| | |||
* | Use fibers timeouts for all http requests | Christopher Baines | 2023-09-12 |
| | |||
* | Add new fibers timeout utils | Christopher Baines | 2023-09-12 |
| | | | | | This depends on a tweaked version of (fibers io-wakeup), which calls select of the file descriptors, rather than the ports. | ||
* | Remove set-socket-timeout | Christopher Baines | 2023-09-12 |
| | | | | As I don't think it's useful on non blocking sockets. | ||
* | Stop using with-port-timeouts | Christopher Baines | 2023-09-12 |
| | | | | As this is incompatible with fibers. | ||
* | Move most maintenance activity to fibers | Christopher Baines | 2023-09-12 |
| | | | | | On a single separate thread. This will allow for spawning fibers for various maintenance actions. | ||
* | Switch to cooperative scheduling | Christopher Baines | 2023-09-12 |
| | |||
* | Correct the metric problems from introducing fold-nar-files | Christopher Baines | 2023-09-12 |
| | | | | The metrics are now updated at the end. | ||
* | Name an unnamed thread | Christopher Baines | 2023-09-08 |
| | |||
* | Name some worker threads | Christopher Baines | 2023-09-08 |
| | |||
* | Avoid fast-download-nars from calling get-nar-files | Christopher Baines | 2023-09-08 |
| | | | | As this is expensive when there are a large number of nars. | ||
* | Add fold-nar-files and use it in a few places | Christopher Baines | 2023-09-08 |
| | | | | As this should use less memory than get-nar-files. | ||
* | Add datastore-fold-all-narinfo-files | Christopher Baines | 2023-09-07 |
| | |||
* | Set thread names for worker threads | Christopher Baines | 2023-09-07 |
| | |||
* | Include metrics for ports and file descriptors | Christopher Baines | 2023-09-07 |
| | |||
* | Use call-with-duration-metric helper | Christopher Baines | 2023-09-07 |
| | |||
* | Throw some connection caching in for info requests | Christopher Baines | 2023-07-27 |
| | | | | To avoid opening a new connection for each request. | ||
* | Add better exception handling and retrying when mirroring nars | Christopher Baines | 2023-07-21 |
| | |||
* | Try to keep on top of mirroring nars | Christopher Baines | 2023-07-21 |
| | | | | Only sleep when there were no changes or exceptions. | ||
* | Drop the number of fibers threads | Christopher Baines | 2023-07-12 |
| | |||
* | Drop the socket timeout when fetching changes | Christopher Baines | 2023-07-12 |
| | | | | As I'm still seeing this hang. | ||
* | Log just before querying for recent changes | Christopher Baines | 2023-07-08 |
| | |||
* | Cleanup temp files on exceptions when generating cached compressions | Christopher Baines | 2023-07-08 |
| | |||
* | Name some more threads | Christopher Baines | 2023-07-08 |
| | |||
* | Set low level timeouts for HTTP requests | Christopher Baines | 2023-06-30 |
| | | | | To try to avoid things getting stuck. | ||
* | Add some more network connection timeout helpers | Christopher Baines | 2023-06-30 |
| | |||
* | Show progress for downloading the database dump | Christopher Baines | 2023-06-30 |
| | |||
* | Update guix-dev.scm | Christopher Baines | 2023-06-30 |
| | | | | For the lack of guile-fibers-next. | ||
* | Refactor, making some code less nested | Christopher Baines | 2023-06-30 |
| | |||
* | Ensure that nar requests are for the right filename | Christopher Baines | 2023-05-31 |
| | | | | Rather than just checking the hash. | ||
* | Stop mmap'ing the database | Christopher Baines | 2023-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 requests | Christopher Baines | 2023-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 atomic | Christopher Baines | 2023-05-29 |
| | | | | So that it's easier to read. | ||
* | Insert cached narinfo files in a transaction | Christopher Baines | 2023-05-29 |
| | | | | As this handles the database being busy. | ||
* | Improve HEAD request handling | Christopher Baines | 2023-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 files | Christopher Baines | 2023-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/ requests | Christopher Baines | 2023-05-22 |
| | |||
* | Better handle /file requests where the nar is known but unavailable | Christopher Baines | 2023-05-21 |
| | |||
* | Fix misleading log message | Christopher Baines | 2023-05-21 |
| | |||
* | Include the response code in some errors | Christopher Baines | 2023-05-21 |
| | |||
* | Name the cached compression work queue | Christopher Baines | 2023-05-21 |
| | |||
* | Add exception handling to the recent change removal thread | Christopher Baines | 2023-05-20 |
| | |||
* | Remove recent changes in transaction | Christopher Baines | 2023-05-20 |
| | | | | To handle the database being busy. | ||
* | Use a explicit transaction when removing cache narinfo file entries | Christopher Baines | 2023-05-20 |
| |