aboutsummaryrefslogtreecommitdiff
path: root/guix-data-service/jobs
Commit message (Expand)AuthorAge
* Use vector-fold rather than map to construct input-derivations•••This avoids append-map and vector->list so might be faster and use less memory. Christopher Baines2025-03-10
* Improve package deduplication•••Handle cases where there are up to 4 packages with the same name and version plus some having replacements. This is currently the case with glibc. Christopher Baines2025-02-25
* Update the package derivations table in a transactionChristopher Baines2025-02-20
* Make knots update changesChristopher Baines2025-02-11
* Update use of resource poolsChristopher Baines2025-02-06
* Name the temporary threadsChristopher Baines2025-02-04
* Remove some knots workaroundsChristopher Baines2025-02-03
* Update exception handling in load-new-guix-revisionChristopher Baines2025-02-03
* Add a slightly crude method to ignore systems and targets•••While processing a revision. It would be good to also record what systems and targets are in the platforms so it's clear what data is missing, but that can be added later. Christopher Baines2025-02-03
* Force add resources parallelism to 1 for some resource pools•••This'll be the default in coming revisions of knots, and is neccessary for pools being used to share a single object. Christopher Baines2025-02-02
* Remove use of call-with-utility-thread•••As I think it's no longer necessary, and the PostgreSQL connection is being handled here incorrectly. Christopher Baines2025-01-31
* Work around the resource pool needing a destructorChristopher Baines2025-01-31
* Update Guile KnotsChristopher Baines2025-01-14
* Report on the GC when processing revisionsChristopher Baines2024-12-29
* Parallelise inserting derivation countsChristopher Baines2024-12-29
* Update Guile KnotsChristopher Baines2024-12-29
* Use knots•••A library of extracted Guile Fibers patterns and utilities. Christopher Baines2024-12-15
* Add a commentChristopher Baines2024-12-09
* Log differently when using the load-new-guix-revision-inserts lockChristopher Baines2024-12-09
* Avoid getting the load-new-guix-revision-inserts lock twiceChristopher Baines2024-12-09
* Fix wrong number of values from channel-derivations-by-system->guix-store-itemChristopher Baines2024-12-09
* Rework loading revision data•••These changes were motivated by switching to a mechanism of loading data that isn't dependent on the big advisory lock that prevents more than one revision from being processed at a time. Since INSERT ... RETURNING id; is used, this can block if another transaction inserts the same data, and then cause an error when that transaction commits. The solution is to use ON CONFLICT DO NOTHING, but you have to handle the case when the INSERT doesn't return an id since the other transaction has inserted it. This commit rewrites insert-missing-data-and-return-all-ids to do as described above, as well as being more efficient in how existing data is detected and to use more vectors. Other utilities for inserting data are added as well. Christopher Baines2024-12-09
* Add in call-with-worker-thread to try to avoid sort problemsChristopher Baines2024-11-29
* Move log messageChristopher Baines2024-11-29
* Don't lookup #f in the hash tableChristopher Baines2024-11-29
* Insert guix_revision_package_derivation_distribution_counts later•••As this should speed up processing revisions. Christopher Baines2024-11-26
* Don't crash when linters crash•••This is currently happening because some linters try to evaluate parts of packages for cross-building to aarch64-linux-gnu, but not all packages support that and some crash in this case. I'm not quite sure what the correct behaviour should be, but maybe the data service needs to try and handle these crashes rather than not processing the entire revision. Christopher Baines2024-11-26
* Restore calling update-derivation-ids-hash-table!•••In derivation-file-names->derivation-ids. This is important for performance since it avoids reading derivations with an entry already in the database. Christopher Baines2024-11-25
* Change to logging the filtered derivations•••As that's what's relevant here. Christopher Baines2024-11-25
* Allow using the heap profiler in the inferiorChristopher Baines2024-11-08
* More efficiently create some vectors•••And instrument the inferior memory after creating the gds-inferior-packages vector. Christopher Baines2024-11-08
* Do more when cleaning inferiors•••Not sure if this actually helps, but it might do. Christopher Baines2024-11-08
* Add log-tag when inserting channel instance derivationsChristopher Baines2024-11-08
* Always assume that resource pool waiters will stick around•••As I think this is a more efficient design. Christopher Baines2024-11-05
* Move the inferior cleanup to the end of each system+targetChristopher Baines2024-11-04
* RefactorChristopher Baines2024-11-03
* Use a separate db connection in channel-derivations-by-system-promise•••As this can run in parallel with something else using conn. Christopher Baines2024-11-02
* Finish chasing the call-with-resource-pool bug•••This took a while to find as process-job would just get stuck, and this wasn't directly related to any particular change, just that more fibers increased the chance of hitting it. This commit includes lots of the things I changed while debugging. Christopher Baines2024-10-31
* Add a commentChristopher Baines2024-10-27
* Rework inserting derivations•••To add more parallelism. Christopher Baines2024-10-27
* Use a common derivation-ids-hash-table•••To allow for calling derivation-file-names->derivation-ids in parallel across multiple fibers, using the PostgreSQL connection fiber to perform atomic operations. Christopher Baines2024-10-27
* Include the package version in the "error when computing" messages•••As this helps when there are lots of packages with the same name. Christopher Baines2024-10-27
* Ensure the guix derivations are stored prior to attempting to substituteChristopher Baines2024-10-27
* Fix extract-information-from messageChristopher Baines2024-10-27
* Increase parallelism when loading revisionsChristopher Baines2024-10-27
* Use a dedicated fiber for heap size monitoringChristopher Baines2024-10-27
* Fix free-disk-space call•••As the WAL file might not exist. Christopher Baines2024-10-13
* Make the WAL threshold more flexible•••So that the WAL can grow more when there's sufficient space. When the inferiors are closed it takes time to restart them, so doing this less should speed up processing revisions. Christopher Baines2024-10-10
* Add retrying around inserting channel instance derivationsChristopher Baines2024-08-29
* Stop using profiles for channel instances•••Just use the store item instead. This should avoid issues where the profile gets GC'd. Christopher Baines2024-08-27