[typo] Abstemious Cache Sweeping

William A. Carrel william.a at carrel.org
Sun Dec 4 13:42:23 EST 2005


On Dec 4, 2005, at 10:08 AM, Piers Cawley wrote:

> Justus Pendleton <justus at ryoohki.net> writes:
>
>> On 2005-12-04, Piers Cawley <pdcawley at bofh.org.uk> wrote:
>>> So, I'm about to start to add better tracking of cached pages, and I
>>> want to make sure that I've got my flushing rules straight in my  
>>> head,
>>> so I'm brain dumping here. Here's the rules I've worked out so far:
>>>
>>> An article is created                    Uncategorized index pages
>>
>> Everything also has a "and maybe flush all pages depending on what
>> sidebars do" requirement.  For instance, I have a sidebar that  
>> lists the
>> 5 most recent posts.  So I need to flush the cache on every article
>> creation.  It sounds like what you need is some way for sidebars to
>> register which actions trigger an update/flush for them.
>
> Nice idea. The sidebar you're talking about would work fine with a
> 'nuke everything on article creation' approach, but that's not going
> to be the case for all such sidebars (5 most 'active' posts for
> instance).

Sadly, sidebar plugins like del.icio.us and flickr need to be updated  
based on an external event that we're probably never going to get  
notification of.  On the other hand, since these sidebar plugins have  
to do a round-trip to another website they're the ones that benefit  
the most from having their content cached.  Periodic flushing of  
these seems to be the model that works best, but it's lame to lose  
your whole article cache every N minutes because of the sidebar changes.

> Personally, I become more and more convinced that we need to have some
> way of doing ajax rendering of sidebars. Or fragment caching, which
> brings its own set of problems because you have to track fragment
> dependencies.

I agree, hence ticket #345 is the former solution for the whole  
sidebar.  It seems to behave itself w.r.t. Google AdSense and other  
things now.  You can see it in action at www.carrel.org.  Another  
approach that I had thought about was sticking the sidebar content in  
the appropriate div and then overwriting it with AJAX, so the sidebar  
at least sort of works for people JS turned off.  I think the N AJAX  
loads for N sidebar plugins approach was soundly rejected last time  
it came up because of the flicker/leap effect it will have on the  
page rendering.  Of course all of this requires cron or something  
equivalent to deal with the periodic cache flush.

Last time Scott talked about fragment cache it sounded like it cost  
about an order of magnitude in performance versus the page cache.

__
wac


More information about the Typo-list mailing list