aboutsummaryrefslogtreecommitdiff
path: root/nar-herder
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2024-04-15 15:06:05 +0100
committerChristopher Baines <mail@cbaines.net>2024-04-15 16:15:05 +0100
commitf2f9b154adb8055110df6e98718e283157494226 (patch)
treec9de91f3449a7440fbb3e51fceca16c26c0f7683 /nar-herder
parentc58aa2711a0f9ef84ace1e9dc003c5ce243adb9e (diff)
downloadnar-herder-f2f9b154adb8055110df6e98718e283157494226.tar
nar-herder-f2f9b154adb8055110df6e98718e283157494226.tar.gz
Make the number of database reader threads configurable
Diffstat (limited to 'nar-herder')
-rw-r--r--nar-herder/database.scm8
-rw-r--r--nar-herder/server.scm4
2 files changed, 6 insertions, 6 deletions
diff --git a/nar-herder/database.scm b/nar-herder/database.scm
index 2db561a..4fa145f 100644
--- a/nar-herder/database.scm
+++ b/nar-herder/database.scm
@@ -259,7 +259,8 @@ CREATE TABLE scheduled_cached_narinfo_removal (
"CREATE INDEX IF NOT EXISTS narinfo_files_narinfo_id
ON narinfo_files (narinfo_id);"))
-(define (setup-database database-file metrics-registry)
+(define* (setup-database database-file metrics-registry
+ #:key (reader-threads 1))
(define mmap-size #f)
(let ((db (db-open database-file)))
@@ -302,10 +303,7 @@ CREATE TABLE scheduled_cached_narinfo_removal (
#:name "db r"
;; Use a minimum of 2 and a maximum of 8 threads
- #:parallelism
- (min (max (current-processor-count)
- 2)
- 64)
+ #:parallelism reader-threads
#:delay-logger (let ((delay-metric
(make-histogram-metric
metrics-registry
diff --git a/nar-herder/server.scm b/nar-herder/server.scm
index dd59216..2b941b9 100644
--- a/nar-herder/server.scm
+++ b/nar-herder/server.scm
@@ -631,7 +631,9 @@
(make-scheduler #:parallelism 1))
(let* ((database (setup-database (assq-ref opts 'database)
- metrics-registry))
+ metrics-registry
+ #:reader-threads
+ (assq-ref opts 'database-reader-threads)))
(canonical-storage (and=> (assq-ref opts 'storage)
canonicalize-path))