Shane King wrote:
Remember that a change to one page can cause changes
to other pages, and
those other pages all need to be updated. We don't really seem to have a
great system for working out the "dependencies" of a page change at the
moment, it seems when you include pages with {{}} you often have to
flush the cache to get them to re-render correctly. If you do decide to
rip the caching system apart, I hope you pay attention to this area,
since it's quite annoying.
Template cache invalidation is far from ideal. The problem is that
template inclusions are stored in the link table, there's no way to tell
the difference between links and inclusions. We use a kind of heuristic
-- we assume that all links to a page in the Template namespace are
inclusions. When a page in the Template namespace is changed, all pages
linking to it are invalidated. Many templates are outside the template
namespace, so they don't update their referring pages properly.
We're getting quite a large collection of different link tables, and
Brion and I agree that it would be better if we merged them, with a
"link type" field, rather than adding yet another table.
-- Tim Starling