aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2023-04-11 18:32:56 +0100
committerChristopher Baines <mail@cbaines.net>2023-04-11 18:33:33 +0100
commitdd817097a387db05fbf8036855b7ea7304067e93 (patch)
tree86badaf741780ac0ff461945123af9716d218c48
parentc501076fb082368325920461d8c6c6de21316dd0 (diff)
downloadbuild-coordinator-dd817097a387db05fbf8036855b7ea7304067e93.tar
build-coordinator-dd817097a387db05fbf8036855b7ea7304067e93.tar.gz
Expose the derived priority to agents
Rather than the priority, as it's the derived priority that they should be using for decision making.
-rw-r--r--guix-build-coordinator/agent.scm8
-rw-r--r--guix-build-coordinator/datastore/sqlite.scm20
2 files changed, 16 insertions, 12 deletions
diff --git a/guix-build-coordinator/agent.scm b/guix-build-coordinator/agent.scm
index e399c2f..067fa93 100644
--- a/guix-build-coordinator/agent.scm
+++ b/guix-build-coordinator/agent.scm
@@ -425,10 +425,10 @@
(map (match-lambda
((build-details)
(simple-format
- #f " - ~A (priority: ~A)
+ #f " - ~A (derived priority: ~A)
~A"
(assoc-ref build-details "uuid")
- (assoc-ref build-details "priority")
+ (assoc-ref build-details "derived_priority")
(assoc-ref build-details "derivation-name"))))
(list-jobs))
"\n")
@@ -437,10 +437,10 @@
(map (match-lambda
((build-details _)
(simple-format
- #f " - ~A (priority: ~A)
+ #f " - ~A (derived priority: ~A)
~A"
(assoc-ref build-details "uuid")
- (assoc-ref build-details "priority")
+ (assoc-ref build-details "derived_priority")
(assoc-ref build-details "derivation-name"))))
(list-post-build-jobs))
"\n")))
diff --git a/guix-build-coordinator/datastore/sqlite.scm b/guix-build-coordinator/datastore/sqlite.scm
index b104528..f8c65c7 100644
--- a/guix-build-coordinator/datastore/sqlite.scm
+++ b/guix-build-coordinator/datastore/sqlite.scm
@@ -3304,7 +3304,8 @@ INSERT INTO build_allocation_agent_requested_systems (agent_id, system_id) VALUE
db
;; This needs to guard against the plan being out of date
"
-SELECT builds.uuid, derivations.id, derivations.name, builds.priority
+SELECT builds.uuid, derivations.id, derivations.name,
+ unprocessed_builds_with_derived_priorities.derived_priority
FROM builds
INNER JOIN build_allocation_plan
ON builds.id = build_allocation_plan.build_id
@@ -3313,6 +3314,8 @@ INNER JOIN derivations
INNER JOIN build_allocation_agent_requested_systems
ON build_allocation_agent_requested_systems.agent_id = :agent_id
AND build_allocation_agent_requested_systems.system_id = derivations.system_id
+LEFT JOIN unprocessed_builds_with_derived_priorities
+ ON unprocessed_builds_with_derived_priorities.build_id = builds.id
WHERE build_allocation_plan.agent_id = :agent_id
AND builds.processed = 0
AND builds.canceled = 0
@@ -3341,7 +3344,7 @@ WHERE build_derivation_outputs.derivation_id = :derivation_id
(let loop ((build-details (sqlite-step statement)))
(match build-details
(#f #f)
- (#(uuid derivation-id derivation-name priority)
+ (#(uuid derivation-id derivation-name derived_priority)
(sqlite-bind-arguments output-conflicts-statement
#:agent_id agent-id
@@ -3354,7 +3357,7 @@ WHERE build_derivation_outputs.derivation_id = :derivation_id
`((uuid . ,uuid)
;; TODO Change this to derivation_name
(derivation-name . ,derivation-name)
- (priority . ,priority))
+ (derived_priority . ,derived_priority))
(loop (sqlite-step statement))))))))
(sqlite-bind-arguments
@@ -3487,7 +3490,8 @@ LIMIT :limit"
(sqlite-prepare
db
"
-SELECT builds.uuid, derivations.name, builds.priority
+SELECT builds.uuid, derivations.name,
+ unprocessed_builds_with_derived_priorities.derived_priority
FROM builds
INNER JOIN derivations
ON builds.derivation_id = derivations.id
@@ -3502,11 +3506,11 @@ WHERE allocated_builds.agent_id = :agent_id"
(let ((builds (sqlite-map
(match-lambda
- (#(uuid derivation_name priority)
- `((uuid . ,uuid)
+ (#(uuid derivation_name derived_priority)
+ `((uuid . ,uuid)
;; TODO Switch this to derivation_name
- (derivation-name . ,derivation_name)
- (priority . ,priority))))
+ (derivation-name . ,derivation_name)
+ (derived_priority . ,derived_priority))))
statement)))
(sqlite-reset statement)