The Problem
When setting environment_timeout to unlimited there is an expectation that all code and hieradata be loaded into memory and not re-read from disk until the environment cache is flushed.
If you change a puppet manifest on disk after it has been loaded into the puppet master the puppet master will not read that manifest.
However, if you change a hiera data file on disk after it has been loaded by the puppet master it will still be reread on disk and immediately affect catalog compilation.
Suggested Solution
These two things are not congruent. Either all files in the $codedir should be cached until the environment cache is flush or none of the files should be cached.
Performance Benefit
There is presumably a performance benefit to be had from loading hieradata once and then never having to recheck files on disk until the cache is flushed.
|