Hello,

If somebody has many caches behind a load balancer, cache coherency can be an issue, for example when there is an "old" record with the max TTL, fetched from a server, whose admin forgot to lower the TTL and just changed the zone, and a "new" cached by another server. This way the users will be getting inconsistent answers, which is much worse than a consistend "bad" (the old record) answer.

Another thing is that no matter if you have room for caching x records on each machines, they can't be aggregated, two machines won't be able to hold 2*x entries, because they waste memory and cache everything twice (if requested, of course).

So I wonder, would anybody like the idea of having memcached as a(n optional) storage backend for unbound? (and of course take the time to write the code? :)

Pros:
- if you have n machines, you can use n times the memory and increase hit rate
- you will get consistent results, no matter what server you asked
- memory can be decoupled from the servers, if needed
- unbound doesn't have to manage the cache (expiring records, limiting the overall size), because memcached does this - cache management could be done from "outside", and deleting a record would be effective for all servers, you won't have to delete in each of them

Cons:
- additional latency, answers would be served from a local or remote (but not so distant as a remote nameserver) memcached server, not from the memory space of the unbound process - if (any) memcached server gets "ill" (answers, but slows down), answers from the cache will be slower, and will be slower for all unbound caches - response times can't be "guaranteed", they can be more hectic and depend or more things (network latency, error rates, other server's load, etc)

But overall, on a fast local network I think it would be a gain and not a loss.

What do you think?

ps: http://www.danga.com/memcached/
_______________________________________________
Unbound-users mailing list
[email protected]
http://unbound.nlnetlabs.nl/mailman/listinfo/unbound-users

Reply via email to