[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
01/07: Rework insert-blocked-builds to make it more efficient
From: |
Christopher Baines |
Subject: |
01/07: Rework insert-blocked-builds to make it more efficient |
Date: |
Sat, 12 Nov 2022 05:59:12 -0500 (EST) |
cbaines pushed a commit to branch master
in repository data-service.
commit 0f22e3ab4078bf35a8f7468004cf764d92904b77
Author: Christopher Baines <mail@cbaines.net>
AuthorDate: Fri Nov 11 11:10:29 2022 +0000
Rework insert-blocked-builds to make it more efficient
This also fixes a typo in the partition name.
---
guix-data-service/model/blocked-builds.scm | 39 ++++++++++++++----------------
1 file changed, 18 insertions(+), 21 deletions(-)
diff --git a/guix-data-service/model/blocked-builds.scm
b/guix-data-service/model/blocked-builds.scm
index cc033f6..e90aaca 100644
--- a/guix-data-service/model/blocked-builds.scm
+++ b/guix-data-service/model/blocked-builds.scm
@@ -133,24 +133,17 @@ WHERE NOT EXISTS (
(list (number->string build-id)
build-server-id)))
-(define (insert-blocked-builds conn data)
- (define (create-partitions)
- (for-each
- (lambda (build-server-id)
- (exec-query
- conn
- (string-append
- "
-CREATE TABLE IF NOT EXISTS blocked_builds_build_server__"
- (number->string build-server-id) "
+(define (insert-blocked-builds conn build-server-id data)
+ (define (create-partition)
+ (exec-query
+ conn
+ (string-append
+ "
+CREATE TABLE IF NOT EXISTS blocked_builds_build_server_"
+ (number->string build-server-id) "
PARTITION OF blocked_builds FOR VALUES IN ("
- (number->string build-server-id)
- ")")))
- (delete-duplicates
- (map (lambda (fields)
- (string->number (car fields)))
- data)
- =)))
+ (number->string build-server-id)
+ ")")))
(define (try-insert)
(exec-query
@@ -165,8 +158,11 @@ INSERT INTO blocked_builds (
VALUES "
(string-join
(map (match-lambda
- ((a b c)
- (simple-format #f "(~A, ~A, ~A)" a b c)))
+ ((b c)
+ (simple-format #f "(~A, ~A, ~A)"
+ build-server-id
+ b
+ c)))
data)
", ")
"
@@ -197,6 +193,7 @@ WHERE id = $1")
(unless (null? blocking-derivation-output-details-set-ids)
(insert-blocked-builds
conn
+ build-server-id
(map
(lambda (blocking-derivation-output-details-set-id)
(list build-server-id
@@ -242,10 +239,10 @@ WHERE builds.id IN ("
blocking-derivation-output-details-set-id)))
(insert-blocked-builds
conn
+ build-server-id
(map
(lambda (blocked-derivation-output-details-set-id)
- (list build-server-id
- blocked-derivation-output-details-set-id
+ (list blocked-derivation-output-details-set-id
blocking-derivation-output-details-set-id))
blocked-derivation-output-details-set-ids)))))
(exec-query
- branch master updated (4101c6b -> 7731c6f), Christopher Baines, 2022/11/12
- 01/07: Rework insert-blocked-builds to make it more efficient,
Christopher Baines <=
- 03/07: Add extended statistics on package_derivations, Christopher Baines, 2022/11/12
- 06/07: Use latest_build_status rather than build_status, Christopher Baines, 2022/11/12
- 07/07: Tweak backfilling the blocked builds, Christopher Baines, 2022/11/12
- 02/07: Have insert-blocked-builds cache when the partitions exist, Christopher Baines, 2022/11/12
- 05/07: Spawn specific PostgreSQL connections for the blocked_builds updates, Christopher Baines, 2022/11/12
- 04/07: Add index on derivation_outputs id and derivation_id fields, Christopher Baines, 2022/11/12