aboutsummaryrefslogtreecommitdiff
path: root/guix-data-service/jobs
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2024-10-10 18:26:35 +0100
committerChristopher Baines <mail@cbaines.net>2024-10-10 18:26:35 +0100
commitc04ea067c2c0f226f304fe8e1c90a56c4fdf46f8 (patch)
tree7e63e35999123f7e8595595961fdb13ca949c6df /guix-data-service/jobs
parentbb5b3731c8991adf786abc27a194e50446a4b8e6 (diff)
downloaddata-service-c04ea067c2c0f226f304fe8e1c90a56c4fdf46f8.tar
data-service-c04ea067c2c0f226f304fe8e1c90a56c4fdf46f8.tar.gz
Make the WAL threshold more flexible
So that the WAL can grow more when there's sufficient space. When the inferiors are closed it takes time to restart them, so doing this less should speed up processing revisions.
Diffstat (limited to 'guix-data-service/jobs')
-rw-r--r--guix-data-service/jobs/load-new-guix-revision.scm11
1 files changed, 8 insertions, 3 deletions
diff --git a/guix-data-service/jobs/load-new-guix-revision.scm b/guix-data-service/jobs/load-new-guix-revision.scm
index 1412392..ddfd364 100644
--- a/guix-data-service/jobs/load-new-guix-revision.scm
+++ b/guix-data-service/jobs/load-new-guix-revision.scm
@@ -50,7 +50,7 @@
#:use-module (guix serialization)
#:use-module (guix build utils)
#:use-module ((guix build syscalls)
- #:select (set-thread-name))
+ #:select (set-thread-name free-disk-space))
#:use-module (guix-data-service config)
#:use-module (guix-data-service database)
#:use-module (guix-data-service utils)
@@ -1761,14 +1761,19 @@ SELECT 1 FROM derivation_source_file_nars WHERE derivation_source_file_id = $1"
(define (call-with-inferior proc)
(define (check-wal-size)
- (define threshold (* 4096 (expt 2 20)))
-
(define (get-wal-bytes)
(catch #t
(lambda ()
(stat:size (stat "/var/guix/db/db.sqlite-wal")))
(lambda _ 0)))
+ (define threshold
+ (max
+ (* 4096 (expt 2 20))
+ (* 0.8
+ (- (free-disk-space "/var/guix/db/db.sqlite-wal")
+ (get-wal-bytes)))))
+
(if (< (get-wal-bytes) threshold)
#t
(let loop ((wal-bytes (get-wal-bytes)))