diff options
-rw-r--r-- | nar-herder/database.scm | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/nar-herder/database.scm b/nar-herder/database.scm index e5e4905..b922cad 100644 --- a/nar-herder/database.scm +++ b/nar-herder/database.scm @@ -198,6 +198,8 @@ CREATE INDEX cached_narinfo_files_narinfo_id ON narinfo_files (narinfo_id);")) (define (setup-database database-file metrics-registry) + (define mmap-size #f) + (let ((db (db-open database-file))) (sqlite-exec db "PRAGMA journal_mode=WAL;") (sqlite-exec db "PRAGMA optimize;") @@ -205,6 +207,18 @@ CREATE INDEX cached_narinfo_files_narinfo_id (update-schema db) + (let ((requested-mmap-bytes 2147418112) + (statement + (sqlite-prepare + db + (simple-format #f "PRAGMA mmap_size=~A;" + 2147418112)))) + (match (sqlite-step statement) + (#(result-mmap-size) + (sqlite-finalize statement) + (set! mmap-size + result-mmap-size)))) + (sqlite-close db)) (let ((reader-thread-channel @@ -213,6 +227,10 @@ CREATE INDEX cached_narinfo_files_narinfo_id (let ((db (db-open database-file #:write? #f))) (sqlite-exec db "PRAGMA busy_timeout = 5000;") + (sqlite-exec + db + (simple-format #f "PRAGMA mmap_size=~A;" + (number->string mmap-size))) (list db))) #:destructor (lambda (db) @@ -243,6 +261,10 @@ CREATE INDEX cached_narinfo_files_narinfo_id (db-open database-file))) (sqlite-exec db "PRAGMA busy_timeout = 5000;") (sqlite-exec db "PRAGMA foreign_keys = ON;") + (sqlite-exec + db + (simple-format #f "PRAGMA mmap_size=~A;" + (number->string mmap-size))) (list db))) #:destructor (lambda (db) |