guix-commits
[Top][All Lists]
Advanced

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

02/06: services: nar-herder: Add new configuration options.


From: guix-commits
Subject: 02/06: services: nar-herder: Add new configuration options.
Date: Mon, 25 Mar 2024 16:59:02 -0400 (EDT)

cbaines pushed a commit to branch master
in repository guix.

commit b538c1d7b95587d3f111a7bb610747e93c5f2468
Author: Christopher Baines <mail@cbaines.net>
AuthorDate: Mon Mar 25 20:06:24 2024 +0000

    services: nar-herder: Add new configuration options.
    
    * gnu/services/guix.scm (nar-herder-configuration-new-ttl,
    nar-herder-cached-compression-configuration-unused-removal-duration,
    nar-herder-cached-compression-configuration-ttl,
    nar-herder-cached-compression-configuration-new-ttl): New procedure.
    (nar-herder-shepherd-services): Handle the new options.
    * doc/guix.texi (Guix Services): Document the new nar-herder options.
    
    Change-Id: I161e490221a3ce394e32ada685dca27df60638bb
---
 doc/guix.texi         | 23 +++++++++++++++++++++++
 gnu/services/guix.scm | 40 +++++++++++++++++++++++++++++++++++++---
 2 files changed, 60 insertions(+), 3 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index eda4084e7f..ddd98a5fd4 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -39670,6 +39670,14 @@ days, @code{1m} means 1 month, and so on.
 This allows the user's Guix to keep substitute information in cache for
 @var{ttl}.
 
+@item @code{new-ttl} (default: @code{#f})
+If specified, this will override the @code{ttl} setting when used for
+the @code{Cache-Control} headers, but this value will be used when
+scheduling the removal of nars.
+
+Use this setting when the TTL is being reduced to avoid removing nars
+while clients still have cached narinfos.
+
 @item @code{negative-ttl} (default: @code{#f})
 Similarly produce @code{Cache-Control} HTTP headers to advertise the
 time-to-live (TTL) of @emph{negative} lookups---missing store items, for
@@ -39719,6 +39727,21 @@ in /var/cache/nar-herder/nar/TYPE.
 @item @code{directory-max-size} (default: @code{#f})
 Maximum size in bytes of the directory.
 
+@item @code{unused-removal-duration} (default: @code{#f})
+If a cached nar isn't used for @code{unused-removal-duration}, it will
+be scheduled for removal.
+
+@var{unused-removal-duration} must denote a duration: @code{5d} means 5
+days, @code{1m} means 1 month, and so on.
+
+@item @code{ttl} (default: @code{#f})
+If specified this overrides the @code{ttl} used for narinfos when this
+cached compression is available.
+
+@item @code{new-ttl} (default: @code{#f})
+As with the @code{new-ttl} option for @code{nar-herder-configuration},
+this value will override the @code{ttl} when used for narinfo requests.
+
 @end table
 @end deftp
 
diff --git a/gnu/services/guix.scm b/gnu/services/guix.scm
index c438da531c..8b326d9124 100644
--- a/gnu/services/guix.scm
+++ b/gnu/services/guix.scm
@@ -719,6 +719,8 @@ ca-certificates.crt file in the system profile."
    (default '()))
   (ttl           nar-herder-configuration-ttl
                  (default #f))
+  (new-ttl       nar-herder-configuration-new-ttl
+                 (default #f))
   (negative-ttl  nar-herder-configuration-negative-ttl
                  (default #f))
   (log-level     nar-herder-configuration-log-level
@@ -750,14 +752,22 @@ ca-certificates.crt file in the system profile."
                        (default #f))
   (directory-max-size
    nar-herder-cached-compression-configuration-directory-max-size
-   (default #f)))
+   (default #f))
+  (unused-removal-duration
+   nar-herder-cached-compression-configuration-unused-removal-duration
+   (default #f))
+  (ttl                 nar-herder-cached-compression-configuration-ttl
+                       (default #f))
+  (new-ttl             nar-herder-cached-compression-configuration-new-ttl
+                       (default #f)))
 
 (define (nar-herder-shepherd-services config)
   (define (cached-compression-configuration->options cached-compression)
     (match-record
         cached-compression
         <nar-herder-cached-compression-configuration>
-      (type level directory directory-max-size)
+        (type level directory directory-max-size
+              unused-removal-duration ttl new-ttl)
 
       `(,(simple-format #f "--enable-cached-compression=~A~A"
                         type
@@ -775,6 +785,27 @@ ca-certificates.crt file in the system profile."
                (simple-format #f 
"--cached-compression-directory-max-size=~A=~A"
                               type
                               directory-max-size))
+              '())
+        ,@(if unused-removal-duration
+              (list
+               (simple-format
+                #f "--cached-compression-unused-removal-duration=~A=~A"
+                type
+                unused-removal-duration))
+              '())
+        ,@(if ttl
+              (list
+               (simple-format
+                #f "--cached-compression-ttl=~A=~A"
+                type
+                ttl))
+              '())
+        ,@(if new-ttl
+              (list
+               (simple-format
+                #f "--cached-compression-new-ttl=~A=~A"
+                type
+                new-ttl))
               '()))))
 
   (match-record config <nar-herder-configuration>
@@ -783,7 +814,7 @@ ca-certificates.crt file in the system profile."
              database database-dump
              host port
              storage storage-limit storage-nar-removal-criteria
-             ttl negative-ttl log-level
+             ttl new-ttl negative-ttl log-level
              cached-compressions cached-compression-min-uses
              cached-compression-workers cached-compression-nar-source
              extra-environment-variables)
@@ -825,6 +856,9 @@ ca-certificates.crt file in the system profile."
                       #$@(if ttl
                              (list (string-append "--ttl=" ttl))
                              '())
+                      #$@(if new-ttl
+                             (list (string-append "--new-ttl=" new-ttl))
+                             '())
                       #$@(if negative-ttl
                              (list (string-append "--negative-ttl=" 
negative-ttl))
                              '())



reply via email to

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