The two facilities share significant code, but are largely
independent and can be separately enabled. Both are implemented within an
ISAPI filter, and use a standard file system directory for it's file based
cache. This allows the use of IIS's highly optimized facility of serving up
static files, which itself implements an in-memory cache for even better
performance.
Resource and document caching
In the case of Resource Caching, Accelerator's filter
detects that an HTTP GET operation has occurred for an SPS 2001 resource or
document. The filter checks to see if it has already cached the request. If
so, it tells IIS to satisfy the request from the file-system cache. If not,
it queues the URL to a background process and allows the HTTP GET request to
proceed normally to SPS 2001. Importantly, the background process reads both
the resource or document and the resource or document's ACLs.
The filter then copies the resource or document to the file-system and sets
the ACL's to match the ACL's in Web Store. Once the file is in place and the
ACL's set, the filter will begin satisfying hits to a given URL using the
file-system cache. Since the ACL's are identical, security against the files
is identical.
Updates to cached resources and documents
While Accelerator is running, various SPS 2001 resources
and documents are likely to be updated. These updates are detected by
Accelerator so that “old” entries in the cache can be flushed out and
replaced by the new content. The Accelerator ISAPI filter does this by
monitoring DAV (Document Authoring and Versioning) requests against any of
its cached resources. Any such DAV request causes an immediate removal
("invalidation") from the cache of the affected resource or document. The
next time an HTTP Get request targets this newly updated resource or
document URL, the newly updated information, including any updates to the
resource/document or security settings, will then be copied into
Accelerator’s cache in the normal way, in anticipation of any future
requests. This somewhat pessimistic, or conservative policy, ensures that
the cache always contains the latest versions of Web Store resources.
Since most SPS 2001 dashboards contain references to many
resources (e.g. the out-of-the-box default Dashboard has 10 such
references), caching resources and documents can make a significant
improvement in performance perceived by the user. Its impact is more
pronounced as the load on Web Store increases.
Dashboard caching
Though resource and document caching is highly effective,
even more performance is possible. To this end, Accelerator offers a second
major caching facility to cache pre-rendered Dashboard-markup.
One of the key benefits of SPS 2001 is the ease with which
authors can create secure and personalized Dashboards that support both
group-level and individual user level personalization and dynamically adapt
their content based on the credentials of each visitor. For instance, one
common pattern involves creating a Dashboard that displays one set of public
content to all company employees, but which displays a richer super set of
content including secure content and content editing controls only to the
restricted members of a trusted group. Thus the same Dashboard must deliver
different content to different groups of users Accelerator's Dashboard
markup cache stores and tracks each unique rendition of a pre-rendered
Dashboard and dynamically associates the correct rendition with the correct
user. In addition, the removal or "invalidation" of a cached Dashboard
rendition requires tracking changes to the structure and security of the
Dashboards, underlying content, and time-outs.
The facility for Dashboard caching is significantly more
complicated than the resource and document caching, but Accelerator makes it
simple to accomplish and the performance gains can be significant.
A more detailed explanation of Accelerator's Dashboard caching mechanism and
other technical information can be found in the product helpfile, which can be
found in:
Downloads.