Thanks for the good discussion. I am lacking somewhat behind, but will review
it in depth tomorrow morning. 

I just wanted to stress the point that an external cache does not really
help, much for the reason David mentioned: if you process messages at very
high data rates, the context switch overhead involved with any external
solution is extremely costly. Also, in the usual cases, I may do several
million queries within a few seconds for just a handful of hosts. With an
internal cache, the overhead in doing so is very minimal. With an external
solution, the overhead in calling the external cache causes a lot of
performance degredation, what in the case of UDP also implies (heavy!)
message loss.

Rainer 

> -----Original Message-----
> From: [email protected] 
> [mailto:[email protected]] On Behalf Of [email protected]
> Sent: Wednesday, September 30, 2009 8:54 PM
> To: rsyslog-users
> Subject: Re: [rsyslog] DNS cache and expiration
> 
> On Wed, 30 Sep 2009, Kenneth Marshall wrote:
> 
> >>> mechanism to map IP addresses to names for the purposes of logging
> >>> error messages. As such, pretty much the only piece that needs to
> >>> be tracked within rsyslog is the TTL for the entry and the ip ->
> >>> name mapping. A thread would be responsible for expiring entries
> >>> from the cache (or refreshing the timeout) after validating the
> >>> correctness of the mapping. I think the DNS lookups should be
> >>> handled by a good resolver like pdns-recursor, djbdns,... The
> >>> goal here is to allow names in the log entries and not just IP
> >>> addresses and in a very high performance logging environment.
> >>
> >> the trouble is that doing _proper_ TTL expiration isn't as 
> simple as it
> >> sounds.
> >>
> >> and if you are willing to back away from 'proper' 
> expiration to something
> >> that will work in practice, why not go much further (as I 
> have detailed in
> >> the other messages)
> >>
> >> David Lang
> >
> > I agree. I only mention TTL values as a reasonable upperbound of the
> > refresh check. The advantage is to remove the large pause in logging
> > due to a DNS refresh after a HUP to rsyslog, if that were the only
> > method to flush/refresh. Like you mention, the IPs/names of systems
> > being logged change rarely so we should tune this for speed and
> > not worry about expiration correctness. I do not agree so other
> > statements that an external cache will perform as well as 
> an internal
> > cache. Too many software products that I work with have 
> needed exactly
> > that functionality to support very high levels of performance.
> 
> actually, you could have the cache be configurable in three modes
> 
> 1. no caching
> 
> 2. blank the cache on HUP
> 
> 3. never blank the cache (i.e. require a full restart to clear it)
> 
> David Lang
> _______________________________________________
> rsyslog mailing list
> http://lists.adiscon.net/mailman/listinfo/rsyslog
> http://www.rsyslog.com
> 
_______________________________________________
rsyslog mailing list
http://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com

Reply via email to