Parallelise inserting derivation counts
This commit is contained in:
parent
6ce51e8880
commit
50127de12a
1 changed files with 33 additions and 26 deletions
|
|
@ -2882,38 +2882,45 @@ SKIP LOCKED")
|
|||
|
||||
(when result
|
||||
(fibers-parallel
|
||||
(with-postgresql-connection
|
||||
(simple-format #f "post load-new-guix-revision ~A counts" id)
|
||||
(lambda (conn)
|
||||
(let ((revision-id
|
||||
(guix-revision-id-for-job conn id)))
|
||||
(with-time-logging
|
||||
(simple-format
|
||||
#f "inserting guix_revision_package_derivation_distribution_counts for revision ~A"
|
||||
revision-id)
|
||||
(let ((system-ids-and-targets
|
||||
(exec-query
|
||||
conn
|
||||
"
|
||||
(let ((revision-id
|
||||
system-ids-and-targets
|
||||
(with-postgresql-connection
|
||||
(simple-format #f "post load-new-guix-revision ~A counts" id)
|
||||
(lambda (conn)
|
||||
(let ((revision-id
|
||||
(guix-revision-id-for-job conn id)))
|
||||
(values
|
||||
revision-id
|
||||
(exec-query
|
||||
conn
|
||||
"
|
||||
SELECT DISTINCT system_id, target
|
||||
FROM package_derivations
|
||||
INNER JOIN guix_revision_package_derivations
|
||||
ON package_derivations.id = guix_revision_package_derivations.package_derivation_id
|
||||
WHERE revision_id = $1"
|
||||
(list revision-id))))
|
||||
(list revision-id))))))))
|
||||
|
||||
(with-postgresql-transaction
|
||||
conn
|
||||
(lambda (conn)
|
||||
(for-each
|
||||
(match-lambda
|
||||
((system-id target)
|
||||
(insert-guix-revision-package-derivation-distribution-counts
|
||||
conn
|
||||
revision-id
|
||||
system-id
|
||||
target)))
|
||||
system-ids-and-targets))))))))
|
||||
(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
|
||||
conn
|
||||
(lambda (conn)
|
||||
(insert-guix-revision-package-derivation-distribution-counts
|
||||
conn
|
||||
revision-id
|
||||
system-id
|
||||
target)))))))
|
||||
parallelism
|
||||
system-ids-and-targets)))
|
||||
|
||||
(with-postgresql-connection
|
||||
(simple-format #f "post load-new-guix-revision ~A" id)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue