guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

02/07: Have insert-blocked-builds cache when the partitions exist


From: Christopher Baines
Subject: 02/07: Have insert-blocked-builds cache when the partitions exist
Date: Sat, 12 Nov 2022 05:59:12 -0500 (EST)

cbaines pushed a commit to branch master
in repository data-service.

commit 48d8ee885a6ca32a0984c429f085993e0669c8fb
Author: Christopher Baines <mail@cbaines.net>
AuthorDate: Fri Nov 11 11:29:08 2022 +0000

    Have insert-blocked-builds cache when the partitions exist
    
    To make it more efficient.
---
 guix-data-service/model/blocked-builds.scm | 29 +++++++++++++++++------------
 1 file changed, 17 insertions(+), 12 deletions(-)

diff --git a/guix-data-service/model/blocked-builds.scm 
b/guix-data-service/model/blocked-builds.scm
index e90aaca..635a63b 100644
--- a/guix-data-service/model/blocked-builds.scm
+++ b/guix-data-service/model/blocked-builds.scm
@@ -133,19 +133,26 @@ WHERE NOT EXISTS (
               (list (number->string build-id)
                     build-server-id)))
 
+(define %created-partitions
+  '())
+
 (define (insert-blocked-builds conn build-server-id data)
-  (define (create-partition)
-    (exec-query
-     conn
-     (string-append
-      "
+  (unless (null? data)
+    (unless (member build-server-id %created-partitions)
+      (exec-query
+       conn
+       (string-append
+        "
 CREATE TABLE IF NOT EXISTS blocked_builds_build_server_"
-      (number->string build-server-id) "
+        build-server-id "
 PARTITION OF blocked_builds FOR VALUES IN ("
-      (number->string build-server-id)
-      ")")))
+        build-server-id
+        ")"))
+
+      (set! %created-partitions
+            (cons build-server-id
+                  %created-partitions)))
 
-  (define (try-insert)
     (exec-query
      conn
      (string-append
@@ -169,9 +176,7 @@ VALUES "
 ON CONFLICT DO NOTHING")
      '()))
 
-  (unless (null? data)
-    (create-partitions)
-    (try-insert)))
+  #t)
 
 (define (handle-populating-blocked-builds-for-scheduled-builds conn build-ids)
   (define (get-build-details build-id)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]