guix-commits
[Top][All Lists]
Advanced

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

02/03: Insert derivations in chunks


From: Christopher Baines
Subject: 02/03: Insert derivations in chunks
Date: Sun, 3 Oct 2021 10:29:14 -0400 (EDT)

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

commit b28d338de75a6470097b9c12769dcb1ba143f09d
Author: Christopher Baines <mail@cbaines.net>
AuthorDate: Sun Oct 3 14:54:43 2021 +0100

    Insert derivations in chunks
    
    To avoid making a very large query when inserting lots of derivations.
---
 guix-data-service/model/derivation.scm | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/guix-data-service/model/derivation.scm 
b/guix-data-service/model/derivation.scm
index 3178e83..b258803 100644
--- a/guix-data-service/model/derivation.scm
+++ b/guix-data-service/model/derivation.scm
@@ -1514,7 +1514,7 @@ LIMIT $1"
            (map read-derivation-from-file
                 missing-derivations-filenames))))))
 
-  (define (insert-into-derivations)
+  (define (insert-into-derivations dervs)
     (string-append
      "INSERT INTO derivations "
      "(file_name, builder, args, env_vars, system_id) VALUES "
@@ -1535,7 +1535,7 @@ LIMIT $1"
                                  env-vars)
                             ",")
                (system->system-id conn system))))
-           derivations)
+           dervs)
       ",")
      " RETURNING id"
      ";"))
@@ -1544,9 +1544,12 @@ LIMIT $1"
    #t "debug: insert-missing-derivations: inserting ~A derivations\n"
    (length derivations))
   (let ((derivation-ids
-         (map (lambda (result)
-                (string->number (car result)))
-              (exec-query conn (insert-into-derivations)))))
+         (append-map
+          (lambda (chunk)
+            (map (lambda (result)
+                   (string->number (car result)))
+                 (exec-query conn (insert-into-derivations chunk))))
+          (chunk derivations 5000))))
 
     (simple-format
      #t "debug: insert-missing-derivations: updating hash table\n")



reply via email to

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