<font size="2">Larry, thanks for the tips; I am looking into how search 
indexing works and I definitely will use Views Content Cache (don&#39;t know
 how could I miss it!)<br></font><font size="2"><br style="color: rgb(102, 102, 102);">
</font><br>
<br><br><div class="gmail_quote">On Mon, Oct 18, 2010 at 15:41, <a href="mailto:larry@garfieldtech.com">larry@garfieldtech.com</a> <span dir="ltr">&lt;<a href="mailto:larry@garfieldtech.com">larry@garfieldtech.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">I... think I follow?  It sounds like you want an approach like the search index uses; when you tell it to rebuild the search index it doesn&#39;t truncate the index but marks all records as &quot;dirty&quot;, so they get reindexed over time by cron.<br>


<br>
You may also find this of use:<br>
<br>
<a href="http://drupal.org/project/views_content_cache" target="_blank">http://drupal.org/project/views_content_cache</a><br>
<br>
--Larry Garfield<div class="im"><br>
<br>
On 10/18/10 8:31 AM, Tomáš Fülöpp (<a href="http://vacilando.org" target="_blank">vacilando.org</a>) wrote:<br>
</div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div class="im">
Yes, Larry, I did experiment with that approach as well. It allows<br>
caches to expire at different times, but a) you need to keep some sort<br>
of approximate overview about the various expiration delays you&#39;re<br>
setting (so that they don&#39;t have much chance happening at the same time)<br>
and b) whenever such cache happens to expire, it still gets deleted at<br>
cron and then will have to be re-calculated during the precious time of<br>
page request.<br>
<br>
Currently I am thinking about the following approach - crude pseudo code:<br>
<br>
// Make sure no other cache has been started over defined period<br>
* set buffer period between cache refreshes $cbuffer = 15 seconds<br>
* if ( (time()-$lastcacherun) &gt; $cbuffer )<br>
<br>
// Check if the cache at hand has expired<br>
* Set some cache life time $clife<br>
* SELECT `created` FROM `cache` where `cid` = &#39;cachedobjectname&#39;<br>
* if ( (time()-$created) &gt; $clife )<br>
<br>
// Refresh the expired cache<br>
* $lastcacherun = time()<br>
* recreate cachedobjectname<br>
* DELETE FROM `cache` WHERE cid = &#39;cachedobjectname&#39;<br>
* cache cachedobjectname using cache_set  with CACHE_PERMANENT<br>
<br>
What do you think?<br>
<br>
<br>
<br>
<br>
<br>
<br>
On Mon, Oct 18, 2010 at 14:34, <a href="mailto:larry@garfieldtech.com" target="_blank">larry@garfieldtech.com</a><br></div>
&lt;mailto:<a href="mailto:larry@garfieldtech.com" target="_blank">larry@garfieldtech.com</a>&gt; &lt;<a href="mailto:larry@garfieldtech.com" target="_blank">larry@garfieldtech.com</a><div class="im"><br>
&lt;mailto:<a href="mailto:larry@garfieldtech.com" target="_blank">larry@garfieldtech.com</a>&gt;&gt; wrote:<br>
<br>
    Just to make sure, have you tried using the minimum cache lifetime<br>
    on the performance page?  It essentially says that a cache record<br>
    will always last at least that long, even if a clear is requested<br>
    for it. That&#39;s your first step if you&#39;re finding some caches<br>
    clearing too frequently (especially the expensive filter and page<br>
    caches).<br>
<br>
    --Larry Garfield<br>
<br>
<br>
    On 10/18/10 5:22 AM, Tomáš Fülöpp (<a href="http://vacilando.org" target="_blank">vacilando.org</a><br></div><div class="im">
    &lt;<a href="http://vacilando.org" target="_blank">http://vacilando.org</a>&gt;) wrote:<br>
<br>
        Hi,<br>
<br>
        In D6, after all caches are cleared, or after a lot of them<br>
        expire and<br>
        get emptied by cron, the server load spikes seriously because<br>
        all such<br>
        caches need to be re-populated.<br>
<br>
        Since this happens more and more on sites I work on, I have been<br>
        thinking about using another approach in my modules, in the<br>
        sense that<br>
        caches would be /refreshed/ rather than cleared and<br>
        re-populated. Each<br>
        cache refresh would run depending on e.g. a simple variable<br>
        storing last<br>
        time stamp of any other cache refresh.<br>
<br>
        This would assure that a) all cached values would be available<br>
        at all<br>
        times, b) caches would never be re-calculated all at the (near)<br>
        same time.<br>
<br>
        I am about to write logic for this, but wanted to first check with<br>
        others in the list -- perhaps some of you know or can point to an<br>
        elegant solution that already exists.<br>
<br>
        Thanks!<br>
<br>
        vacilando<br>
<br>
<br>
<br>
</div></blockquote>
</blockquote></div><br>