[Home]AggressiveCaching

MeatballWiki | RecentChanges | Random Page | Indices | Categories

Aggressive caching is a web-engine philosophy that really needs to be adhered to from step 1 to be thorough. The basic idea is to cache every output that's not one-shot, but with a strong record of dependencies to ensure caches are invalidated exactly when they need to be.

HTML emitted from a wiki tends to depend on properties of either one page, or the wiki as a whole:

By associating a unique identifier with each unique access point to the wiki (URLs, methods, parameters...), the engine can easily store and retrieve HTML and other data types from the database. If the identifier represents all external input to the engine, then cache invalidation can safely be done transparently by the database interface when data is altered. Further, storage of dependencies can also be done transparently when data is requested.

A relational database can manage AggressiveCaching, even in the face of future extensions to the wiki's database interface, with just two tables.

This design has proven itself in the experimental PeriPeri/2 wiki engine.


This seems like it would benefit from combination with SingleDispatch to provide a unique RESTful description of the current invocation. Is that what you mean by "associating a unique identifier with each unique access point to the wiki" ? -- SunirShah


Discussion

MeatballWiki | RecentChanges | Random Page | Indices | Categories
Edit text of this page | View other revisions
Search: