Split the thread pool used for database connections
In to two thread pools, a default one, and one reserved for essential functionality. There are some pages that use slow queries, so this should help stop those pages block other operations.
This commit is contained in:
parent
4fa7a3601e
commit
9f080524bc
3 changed files with 94 additions and 85 deletions
|
|
@ -180,16 +180,7 @@
|
|||
(current-error-port))
|
||||
#f)))
|
||||
(%show-error-details
|
||||
(assoc-ref opts 'show-error-details))
|
||||
|
||||
(%thread-pool-threads
|
||||
(assoc-ref opts 'thread-pool-threads))
|
||||
(%thread-pool-idle-seconds
|
||||
60)
|
||||
(%thread-pool-idle-thunk
|
||||
(lambda ()
|
||||
(close-thread-postgresql-connection))))
|
||||
|
||||
(assoc-ref opts 'show-error-details)))
|
||||
|
||||
(let* ((startup-completed
|
||||
(make-atomic-box
|
||||
|
|
@ -208,11 +199,27 @@
|
|||
(assq-ref opts 'host)
|
||||
(assq-ref opts 'port))
|
||||
|
||||
(start-guix-data-service-web-server
|
||||
(assq-ref opts 'port)
|
||||
(assq-ref opts 'host)
|
||||
(assq-ref opts 'secret-key-base)
|
||||
startup-completed))
|
||||
(parameterize
|
||||
((thread-pool-channel
|
||||
(make-thread-pool-channel
|
||||
(floor (/ (assoc-ref opts 'thread-pool-threads)
|
||||
2))
|
||||
#:idle-seconds 60
|
||||
#:idle-thunk
|
||||
close-thread-postgresql-connection))
|
||||
|
||||
(reserved-thread-pool-channel
|
||||
(make-thread-pool-channel
|
||||
(floor (/ (assoc-ref opts 'thread-pool-threads)
|
||||
2))
|
||||
#:idle-seconds 60
|
||||
#:idle-thunk
|
||||
close-thread-postgresql-connection)))
|
||||
(start-guix-data-service-web-server
|
||||
(assq-ref opts 'port)
|
||||
(assq-ref opts 'host)
|
||||
(assq-ref opts 'secret-key-base)
|
||||
startup-completed)))
|
||||
#:statement-timeout
|
||||
(assq-ref opts 'postgresql-statement-timeout)))))
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue