From f2f9b154adb8055110df6e98718e283157494226 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Mon, 15 Apr 2024 15:06:05 +0100 Subject: Make the number of database reader threads configurable --- nar-herder/database.scm | 8 +++----- nar-herder/server.scm | 4 +++- 2 files changed, 6 insertions(+), 6 deletions(-) (limited to 'nar-herder') 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)) -- cgit v1.2.3