diff options
author | Christopher Baines <mail@cbaines.net> | 2022-01-07 18:58:33 +0000 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2022-01-07 18:58:33 +0000 |
commit | fdf2bdc1b55a24262d0cb45687d3df863f4579e4 (patch) | |
tree | 293d1a574625036d74aad3206c8ada892b55df7f /guix-build-coordinator/coordinator.scm | |
parent | c7c1d57d4e639b2a577dd969ce78c9586d1ac77c (diff) | |
download | build-coordinator-fdf2bdc1b55a24262d0cb45687d3df863f4579e4.tar build-coordinator-fdf2bdc1b55a24262d0cb45687d3df863f4579e4.tar.gz |
Move UUID generation out of the insert builds transaction
Diffstat (limited to 'guix-build-coordinator/coordinator.scm')
-rw-r--r-- | guix-build-coordinator/coordinator.scm | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/guix-build-coordinator/coordinator.scm b/guix-build-coordinator/coordinator.scm index 966faeb..f66acc1 100644 --- a/guix-build-coordinator/coordinator.scm +++ b/guix-build-coordinator/coordinator.scm @@ -364,12 +364,14 @@ tags) (for-each - (lambda (related-derivation) - (let ((related-uuid (random-v4-uuid))) - (simple-format #t "submtiting ~A for related ~A\n" - related-uuid - related-derivation) - (store-build related-derivation + (match-lambda + ((related-derivation . related-uuid) + (simple-format #t "submtiting ~A for related ~A\n" + related-uuid + related-derivation) + (call-with-delay-logging + store-build + #:args (list related-derivation related-uuid ;; Let the scheduler take care of ;; the prioritisation @@ -377,7 +379,7 @@ tags ;; Since this build's priority isn't important, this ;; expensive part of inserting builds can be skipped - #:skip-updating-other-build-derived-priorities #t))) + #:skip-updating-other-build-derived-priorities #t)))) derivations-lacking-builds) #t)) @@ -405,9 +407,14 @@ (if ensure-all-related-derivation-outputs-have-builds? ;; Do this here so it doesn't take time in the writer ;; thread - (datastore-list-related-derivations-with-no-build-for-outputs - datastore - derivation-file) + (map + (lambda (drv) + ;; Generate the UUID's outside the transaction to save + ;; time too. + (cons drv (random-v4-uuid))) + (datastore-list-related-derivations-with-no-build-for-outputs + datastore + derivation-file)) '())) #:duration-metric-name "store_build") |