Add more timing and debugging output to the load process

To help identify what's taking the most time.
This commit is contained in:
Christopher Baines 2020-01-04 11:20:02 +00:00
parent 3d51d88d06
commit b26ba82dad
2 changed files with 30 additions and 25 deletions

View file

@ -916,9 +916,12 @@ WHERE job_id = $1"
guix-revision-id guix-revision-id
lint-warning-ids))) lint-warning-ids)))
(let ((package-derivation-ids (let ((package-derivation-ids
(inferior-data->package-derivation-ids (log-time
conn inf inferior-package-id->package-database-id "inferior-data->package-derivation-ids"
inferior-data-4-tuples))) (lambda ()
(inferior-data->package-derivation-ids
conn inf inferior-package-id->package-database-id
inferior-data-4-tuples)))))
(update-builds-derivation-output-details-set-id (update-builds-derivation-output-details-set-id
conn conn
(map fourth inferior-data-4-tuples)) (map fourth inferior-data-4-tuples))

View file

@ -1104,24 +1104,29 @@ LIMIT $1"
(simple-format (simple-format
#t "debug: ensure-input-derivations-exist: processing ~A derivations\n" #t "debug: ensure-input-derivations-exist: processing ~A derivations\n"
(length input-derivation-file-names)) (length input-derivation-file-names))
(let* ((existing-derivation-entries (let ((existing-derivation-entries
(derivation-file-names->vhash conn (derivation-file-names->vhash conn
derivation-ids-hash-table derivation-ids-hash-table
input-derivation-file-names)) input-derivation-file-names)))
(simple-format
#t
"debug: ensure-input-derivations-exist: checking for missing input derivations\n")
(let ((missing-derivations-filenames
(filter (lambda (derivation-file-name)
(not (vhash-assoc derivation-file-name
existing-derivation-entries)))
input-derivation-file-names)))
(missing-derivations-filenames (unless (null? missing-derivations-filenames)
(filter (lambda (derivation-file-name) (simple-format
(not (vhash-assoc derivation-file-name #f
existing-derivation-entries))) "debug: ensure-input-derivations-exist: inserting missing input derivations\n")
input-derivation-file-names))) ;; Ensure all the input derivations exist
(insert-missing-derivations
(unless (null? missing-derivations-filenames) conn
;; Ensure all the input derivations exist derivation-ids-hash-table
(insert-missing-derivations (map read-derivation-from-file
conn missing-derivations-filenames)))))))
derivation-ids-hash-table
(map read-derivation-from-file
missing-derivations-filenames))))))
(define (insert-into-derivations) (define (insert-into-derivations)
(string-append (string-append
@ -1332,13 +1337,10 @@ WHERE " criteria ";"))
(simple-format (simple-format
#t "debug: derivation-file-names->vhash: adding ~A entries to the cache\n" #t "debug: derivation-file-names->vhash: adding ~A entries to the cache\n"
(vlist-length result-for-missing-file-names)) (vlist-length result-for-missing-file-names))
(vhash-fold (lambda (key value _)
(hash-set! derivation-ids-hash-table key value))
'()
result-for-missing-file-names)
(vhash-fold (vhash-fold
(lambda (key value combined) (lambda (key value combined)
;; Update the derivation-ids-hash-table as we go through the vhash
(hash-set! derivation-ids-hash-table key value)
(vhash-cons key value combined)) (vhash-cons key value combined))
result result
result-for-missing-file-names))))) result-for-missing-file-names)))))