Linux Magazine: Perl of Wisdom: Caching in Your ChipsMar 25, 2001, 15:18 (0 Talkback[s])
(Other stories by Randal L. Schwartz)
"Dynamic content on a Web site is cool. It keeps people coming back and creates the appearance that there are people behind the scenes actively updating the site to provide new and improved information. However, in the real world, you'll regret the day you added that SSI include directive in your homepage when you finally do something important enough that Slashdot notices you. Running a CGI script on every single Web hit is a great way to get your Quake game interrupted."
"So, what do you do? You could set up an include that pulls in a file updated from cron. But how often? Perhaps you get hits during the day but not so many at night, and why waste all the CPU to update a file that won't be examined for hours? Or, maybe you haven't quite figured out that arcane crontab syntax yet. Also, you have to master the weirdness of having a script running as you create and update a file that is readable by the Web user. Fun, fun, fun...."
"So, a while back, I came up with a three-state caching idea. Keep a cache of the expensive computation. For the "good" phase, the cache is served as-is. For the "bad" phase, the computation is performed in-line, cached, and the new value returned."