Parallelise inserting derivation counts

This commit is contained in:
Christopher Baines 2024-12-21 08:39:36 +00:00
parent 6ce51e8880
commit 50127de12a

View file

@ -2882,16 +2882,15 @@ SKIP LOCKED")
(when result (when result
(fibers-parallel (fibers-parallel
(let ((revision-id
system-ids-and-targets
(with-postgresql-connection (with-postgresql-connection
(simple-format #f "post load-new-guix-revision ~A counts" id) (simple-format #f "post load-new-guix-revision ~A counts" id)
(lambda (conn) (lambda (conn)
(let ((revision-id (let ((revision-id
(guix-revision-id-for-job conn id))) (guix-revision-id-for-job conn id)))
(with-time-logging (values
(simple-format revision-id
#f "inserting guix_revision_package_derivation_distribution_counts for revision ~A"
revision-id)
(let ((system-ids-and-targets
(exec-query (exec-query
conn conn
" "
@ -2900,20 +2899,28 @@ FROM package_derivations
INNER JOIN guix_revision_package_derivations INNER JOIN guix_revision_package_derivations
ON package_derivations.id = guix_revision_package_derivations.package_derivation_id ON package_derivations.id = guix_revision_package_derivations.package_derivation_id
WHERE revision_id = $1" WHERE revision_id = $1"
(list revision-id)))) (list revision-id))))))))
(with-time-logging
(simple-format
#f "inserting guix_revision_package_derivation_distribution_counts for revision ~A"
revision-id)
(fibers-batch-for-each
(match-lambda
((system-id target)
(with-postgresql-connection
(simple-format #f "post load-new-guix-revision ~A counts" id)
(lambda (conn)
(with-postgresql-transaction (with-postgresql-transaction
conn conn
(lambda (conn) (lambda (conn)
(for-each
(match-lambda
((system-id target)
(insert-guix-revision-package-derivation-distribution-counts (insert-guix-revision-package-derivation-distribution-counts
conn conn
revision-id revision-id
system-id system-id
target))) target)))))))
system-ids-and-targets)))))))) parallelism
system-ids-and-targets)))
(with-postgresql-connection (with-postgresql-connection
(simple-format #f "post load-new-guix-revision ~A" id) (simple-format #f "post load-new-guix-revision ~A" id)