From c4e5a39a4af6fe13a341631a1862ae50b407f82a Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Wed, 23 Dec 2020 14:57:14 +0000 Subject: Skip some unnecessary prioritisation in the basic allocator --- guix-build-coordinator/build-allocator.scm | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'guix-build-coordinator/build-allocator.scm') diff --git a/guix-build-coordinator/build-allocator.scm b/guix-build-coordinator/build-allocator.scm index 614bd0f..2fc1a27 100644 --- a/guix-build-coordinator/build-allocator.scm +++ b/guix-build-coordinator/build-allocator.scm @@ -161,6 +161,21 @@ builds) builds)) + (define (limit-processed-sublists lists) + (if planned-builds-for-agent-limit + (let loop ((remaining-lists lists) + (kept-lists '()) + (count 0)) + (if (or (>= count planned-builds-for-agent-limit) + (null? remaining-lists)) + (reverse kept-lists) + (loop (cdr remaining-lists) + (cons (first remaining-lists) + kept-lists) + (+ count + (length (first remaining-lists)))))) + lists)) + (define (break-builds-in-to-priority-sublists all-builds) (define (build-priority build) (hash-ref derived-build-priorities-hash @@ -353,8 +368,9 @@ (let ((final-ordered-builds (concatenate (map sort-priority-sublist - (break-builds-in-to-priority-sublists - builds-sorted-by-derived-priority))))) + (limit-processed-sublists + (break-builds-in-to-priority-sublists + builds-sorted-by-derived-priority)))))) (let ((builds-for-agent (limit-planned-builds final-ordered-builds))) (map (lambda (build-id ordering) -- cgit v1.2.3