Vladimír Čunát:
Yes, that's been "normal" behavior of
kresd, at least so far. I don't
think it's documented, but when the cache is full (i.e. fails a write
due to being full), the only coping is cache.clear()
Just to make sure I understood you correctly:
If the cache reaches cache.size, kresd will flush the **entire** cache?
That is a bummer since that will obviously have a severe impact on cache
hit rate and the performance for clients if the entire cache gets
flushed on a regular basis.
I didn't expect that.
How do people work around this limitation? Place kresd behind a caching
resolver that does cache housekeeping?
nginx -> doh-httpproxy -> knot-resolver -> unbound ?
this chain is getting longer and longer ;)
We have a WIP on a "garbage-collecting"
daemon that tries to remove data
that are estimated as less useful when the cache is getting large,
Can you say anything about when this feature will be available in a
released version of kresd?
but
so far typical deployments can afford setting the limit so large that it
only fills up very rarely.
Even if it happens rarely (lets say you have enough memory for 3 weeks
worth of traffic), that will also result in slow response times (due to
empty cache) every 3 weeks when the cache gets cleared if I understood
you correctly.
thanks for your insights,
Christoph