Issue #4519 has been updated by Ken Barber.
Jeff Weiss wrote: > It looks like what's in Ken's branch will always write to the cache even if > the TTL is 0, which means we're potentially taking a filesystem write hit for > values that explicitly aren't cached at all. > > <https://github.com/kbarber/facter/commit/4e9f1a8311124c44ec6f88a38c589f0eec3073e8#L3R64> Yeah - this was to support the idea of --ignorettl whereby the cached content was returned regardless of the stored TTL. I think the design needs to be reviewed anyway, I'm not sure the idea of per fact TTL's isn't actually all that useful. A course grained approach is potentially better - a facility to do resolution and cache (running from cron say), and a facility to retrieve just from cache (for puppet or mcollective) - is probably more useful immediately. ---------------------------------------- Feature #4519: Facter should provide a convenient way to cache values https://projects.puppetlabs.com/issues/4519#change-63536 Author: Peter Meier Status: Accepted Priority: Normal Assignee: Category: library Target version: 2.x Keywords: Branch: https://github.com/kbarber/facter/tree/ticket/4519-cache Affected Facter version: I think this have discussed already various times and it is even planned?!. But I couldn't find a logged ticket and as I stumpled over that problem once again I thought I might want to file a feature request: Facter should provide a way to: 1. cache facts with a certain timeout, so that the fact value gets cache for the defined time 1. provide a way to cache any kind of data for a certain amount of time Why? We might want to have facts that take some time to calculate, however that don't change much. Or there might be data required to calucate a certain fact which high resource intensive, but doesn't change often. So what I like to have is similar to the @confine@ a way to set @timeout@, so that if this is set to some seconds/minutes (?) the fact isn't calculated again until the timeout expired. For the second point I'd like to have a simple key value store with timeout capability built into facter, so I can cache output of commands, which can then be used amongst different facts. Example: xen management tools are getting slower the more VMs you start. Hence @xm list@ can get slower and slower and if you have various facts that are depending on the output of that command and you take the naive approach and call @xm list@ a couple of times, you slowdown facter and hence puppet runs enormously. If I have only one fact using the output it would be nice to let facter cache that fact. However, if I have multiple facts depending on the output of @xm list@ I might want to cache also the output of @xm list@ so that @xm list@ is called really only once per facter run. Currently you can do that with your own cache implementation hacked into facts, but I think it would be nicer if facter would provide a convenient way to cache things. -- You have received this notification because you have either subscribed to it, or are involved in it. To change your notification preferences, please click here: http://projects.puppetlabs.com/my/account -- You received this message because you are subscribed to the Google Groups "Puppet Bugs" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/puppet-bugs?hl=en.
