[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
02/02: Make it possible to increase the number of thread pool threads
From: |
Christopher Baines |
Subject: |
02/02: Make it possible to increase the number of thread pool threads |
Date: |
Sun, 2 Oct 2022 10:09:14 -0400 (EDT) |
cbaines pushed a commit to branch master
in repository data-service.
commit ff77bbea7e647a07c5601e51704c04258a73b79f
Author: Christopher Baines <mail@cbaines.net>
AuthorDate: Sun Oct 2 15:08:18 2022 +0100
Make it possible to increase the number of thread pool threads
And double the default to 16.
---
guix-data-service/utils.scm | 9 +++++++--
scripts/guix-data-service.in | 13 ++++++++++++-
2 files changed, 19 insertions(+), 3 deletions(-)
diff --git a/guix-data-service/utils.scm b/guix-data-service/utils.scm
index f5a1128..6be5cc5 100644
--- a/guix-data-service/utils.scm
+++ b/guix-data-service/utils.scm
@@ -28,6 +28,7 @@
with-time-logging
prevent-inlining-for-tests
+ %thread-pool-threads
parallel-via-thread-pool-channel
par-map&
letpar&
@@ -55,7 +56,10 @@
(define-syntax-rule (prevent-inlining-for-tests var)
(set! var var))
-(define* (make-thread-pool-channel #:key (threads 8))
+(define %thread-pool-threads
+ (make-parameter 8))
+
+(define* (make-thread-pool-channel threads)
(define (delay-logger seconds-delayed)
(when (> seconds-delayed 1)
(format
@@ -107,7 +111,8 @@
(define (make-thread-pool-channel!')
(with-mutex %thread-pool-mutex
(unless %thread-pool-channel
- (set! %thread-pool-channel (make-thread-pool-channel))
+ (set! %thread-pool-channel (make-thread-pool-channel
+ (%thread-pool-threads)))
(set! make-thread-pool-channel! (lambda () #t)))))
(define make-thread-pool-channel!
diff --git a/scripts/guix-data-service.in b/scripts/guix-data-service.in
index e0b35c6..5f0dc25 100644
--- a/scripts/guix-data-service.in
+++ b/scripts/guix-data-service.in
@@ -33,6 +33,7 @@
(system repl repl)
(gcrypt pk-crypto)
(guix pki)
+ (guix-data-service utils)
(guix-data-service config)
(guix-data-service database)
(guix-data-service substitutes)
@@ -91,6 +92,12 @@
(alist-cons 'host
arg
(alist-delete 'host result))))
+ (option '("thread-pool-threads") #t #f
+ (lambda (opt name arg result)
+ (alist-cons 'thread-pool-threads
+ (string->number arg)
+ (alist-delete 'thread-pool-threads
+ result))))
(option '("postgresql-statement-timeout") #t #f
(lambda (opt name arg result)
(alist-cons 'postgresql-statement-timeout
@@ -111,6 +118,7 @@
(_ #t)))
(port . 8765)
(host . "0.0.0.0")
+ (thread-pool-threads . 16)
(postgresql-statement-timeout . 60000)))
@@ -171,7 +179,10 @@
(current-error-port))
#f)))
(%show-error-details
- (assoc-ref opts 'show-error-details)))
+ (assoc-ref opts 'show-error-details))
+
+ (%thread-pool-threads
+ (assoc-ref opts 'thread-pool-threads)))
(let* ((startup-completed
(make-atomic-box