guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[no subject]


From: Mathieu Othacehe
Date: Wed, 14 Oct 2020 08:23:23 -0400 (EDT)

branch: master
commit 65e3624bf8356e3a42297a118814b7e4c6d9783c
Author: Mathieu Othacehe <othacehe@gnu.org>
AuthorDate: Thu Oct 8 19:42:23 2020 +0200

    Optimize SQLite database.
    
    * src/cuirass/database.scm (set-db-options): Optimize database parameters.
---
 src/cuirass/database.scm | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/src/cuirass/database.scm b/src/cuirass/database.scm
index 9c5317e..5706a80 100644
--- a/src/cuirass/database.scm
+++ b/src/cuirass/database.scm
@@ -256,6 +256,17 @@ dedicated to writing.  EXP evaluation is queued unless 
#:force? is set."
   ;;(sqlite-busy-timeout db (* 30 1000))
   (sqlite-exec db "PRAGMA busy_timeout = 30000;")
 
+  ;; The want to prioritize read operations over write operations as we can
+  ;; have a large number of clients, while the number of write operations is
+  ;; modest.  Use a small WAL journal to do that, and try to reduce disk I/O
+  ;; by increasing RAM usage as described here:
+  ;; 
https://wiki.mozilla.org/Performance/Avoid_SQLite_In_Your_Next_Firefox_Feature
+  (sqlite-exec db "PRAGMA wal_autocheckpoint = 16;")
+  (sqlite-exec db "PRAGMA journal_size_limit = 1536;")
+  (sqlite-exec db "PRAGMA page_size = 32768;")
+  (sqlite-exec db "PRAGMA cache_size = -500000;")
+  (sqlite-exec db "PRAGMA temp_store = MEMORY;")
+  (sqlite-exec db "PRAGMA synchronous = NORMAL;")
   db)
 
 (define (db-load db schema)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]