aboutsummaryrefslogtreecommitdiff
path: root/guix-build-coordinator/coordinator.scm
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2022-01-07 18:58:33 +0000
committerChristopher Baines <mail@cbaines.net>2022-01-07 18:58:33 +0000
commitfdf2bdc1b55a24262d0cb45687d3df863f4579e4 (patch)
tree293d1a574625036d74aad3206c8ada892b55df7f /guix-build-coordinator/coordinator.scm
parentc7c1d57d4e639b2a577dd969ce78c9586d1ac77c (diff)
downloadbuild-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.scm27
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")