aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAmineChikhaoui <amine.chikhaoui91@gmail.com>2018-04-02 12:45:18 +0100
committerAmineChikhaoui <amine.chikhaoui91@gmail.com>2018-04-06 10:51:18 +0100
commit2855c3d965bab5e88c4cd08dc3a92e705ff5ac9f (patch)
treec70afcb31a305e02c442560d67fb9b0716cdcd32 /src
parent27e9ce0eb2662762f019241b89b6687e9f6715fe (diff)
Make the TTL for disk cache configurable, we can now completely disable
disk cache lookup for example by doing: nix copy --from <binary-cahe> <store-path> --option \ positive-disk-cache-ttl 0 Issues: #1885 #2035
Diffstat (limited to 'src')
-rw-r--r--src/libstore/globals.hh6
-rw-r--r--src/libstore/nar-info-disk-cache.cc13
2 files changed, 11 insertions, 8 deletions
diff --git a/src/libstore/globals.hh b/src/libstore/globals.hh
index 117404ec1..36c8b7357 100644
--- a/src/libstore/globals.hh
+++ b/src/libstore/globals.hh
@@ -310,6 +310,12 @@ public:
"Disabled substituters that may be enabled via the substituters option by untrusted users.",
{"trusted-binary-caches"}};
+ Setting<int> ttlNegativeDiskCache{this, 3600, "negative-disk-cache-ttl",
+ "The TTL in seconds for negative lookups in the disk cache."};
+
+ Setting<int> ttlPositiveDiskCache{this, 30 * 24 * 3600, "positive-disk-cache-ttl",
+ "The TTL in seconds for positive lookups in the disk cache."};
+
Setting<Strings> trustedUsers{this, {"root"}, "trusted-users",
"Which users or groups are trusted to ask the daemon to do unsafe things."};
diff --git a/src/libstore/nar-info-disk-cache.cc b/src/libstore/nar-info-disk-cache.cc
index 3c52303f0..1e143736f 100644
--- a/src/libstore/nar-info-disk-cache.cc
+++ b/src/libstore/nar-info-disk-cache.cc
@@ -1,6 +1,7 @@
#include "nar-info-disk-cache.hh"
#include "sync.hh"
#include "sqlite.hh"
+#include "globals.hh"
#include <sqlite3.h>
@@ -47,10 +48,6 @@ class NarInfoDiskCacheImpl : public NarInfoDiskCache
{
public:
- /* How long negative and positive lookups are valid. */
- const int ttlNegative = 3600;
- const int ttlPositive = 30 * 24 * 3600;
-
/* How often to purge expired entries from the cache. */
const int purgeInterval = 24 * 3600;
@@ -116,8 +113,8 @@ public:
SQLiteStmt(state->db,
"delete from NARs where ((present = 0 and timestamp < ?) or (present = 1 and timestamp < ?))")
.use()
- (now - ttlNegative)
- (now - ttlPositive)
+ (now - settings.ttlNegativeDiskCache)
+ (now - settings.ttlPositiveDiskCache)
.exec();
debug("deleted %d entries from the NAR info disk cache", sqlite3_changes(state->db));
@@ -186,8 +183,8 @@ public:
auto queryNAR(state->queryNAR.use()
(cache.id)
(hashPart)
- (now - ttlNegative)
- (now - ttlPositive));
+ (now - settings.ttlNegativeDiskCache)
+ (now - settings.ttlPositiveDiskCache));
if (!queryNAR.next())
return {oUnknown, 0};