Permalink
Browse files

MINOR Documentation for Aggregate caching

git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@114077 467b73ca-7a2a-4603-9d3b-597d59a354a9
  • Loading branch information...
1 parent 9ac9916 commit 6ccd6d61bd94bbd44468b5bbe3fc973b72dc4202 @chillu chillu committed Nov 23, 2010
Showing with 6 additions and 1 deletion.
  1. +6 −1 core/model/Aggregate.php
View
@@ -20,7 +20,11 @@
* examples: Min, Max, Avg
*
* Aggregates are often used as portions of a cacheblock key. They are therefore cached themselves, in the 'aggregate'
- * cache, although the invalidation logic prefers speed over keeping valid data.
+ * cache, although the invalidation logic prefers speed over keeping valid data.
+ * The aggregate cache is cleared through {@link DataObject::flushCache()}, which in turn is called on
+ * {@link DataObject->write()} and other write operations.
+ * This means most write operations to the database will invalidate the cache correctly.
+ * Use {@link Aggregate::flushCache()} to manually clear.
*
* NOTE: The cache logic uses tags, and so a backend that supports tags is required. Currently only the File
* backend (and the two-level backend with the File backend as the slow store) meets this requirement
@@ -98,6 +102,7 @@ public function XML_val($name, $args) {
$query = $this->query("$func(\"$table\".\"$attribute\")");
+ // Cache results of this specific SQL query until flushCache() is triggered.
$cachekey = sha1($query->sql());
$cache = self::cache();

0 comments on commit 6ccd6d6

Please sign in to comment.