data level caching caching the core of your application benjamin elmore allaire spectra evangelist...
TRANSCRIPT
Data Level CachingCaching the core of your application
Benjamin Elmore
Allaire Spectra Evangelist
February 13, 2001
Overview
Understanding the Approach Analyzing your Site Caching Techniques Reorganization of Cached Data Reuse of Cached Data Cache Synchronization across Clusters
Understanding the Approach
Core Concepts:› Sites have Data Themes that underline the
architecture and purpose of the site› By caching and reusing the cached data that the
Data Theme consists of, majority of the page won’t hit the database.
This approach will work in either CF or Spectra and works in conjunction with other techniques
CacheCacheCacheCache
Understanding the Approach
NewsNews CourseCourse
CourseCourseListList
MyMyCourseCourse
CourseCourseRegistrationRegistration
MostMostRecentRecent
MostMostRecentRecent
MyMyNewsNews
NewsNewsArchiveArchive
NewsNewsSearchSearch
HomeHome
Two Dimensional View of SiteTwo Dimensional View of Site
Analyzing your Site
Identifying how your site is organized› Group into areas (Product, News, Course,
Home) Identify data that is used in each area
› Look for Primary (Course, News) and Secondary (Press Releases, Course Offering, Students) of each area
Identify infrastructure data that is used for site› State, Service Groups, Zip Codes
Analyzing your Site
1. View Site Layout
2. Segment into focus areas
3. Identify data that drives the areas
4. Identify the formats that the data is needed
5. Decide on Cache Synchronization
CourseCourseListList
MyMyCourseCourse
CourseCourseRegistrationRegistration
MostMostRecentRecent
MostMostRecentRecent
MyMyNewsNews
NewsNewsArchiveArchive
NewsNewsSearchSearch
HomeHome
NewsNews
CacheCache
MostMostRecentRecent
MyMyNewsNews
NewsNewsArchiveArchive
NewsNewsSearchSearch
Caching Techniques
Query Caching› <cfquery> attributes› Write into persistent scope
Persistent Scope Caching› Server, Application or Session› Preformatted Data› Preformatted HTML
Caching Techniques <Query>
Two Attributes:› CachedWithin:
• Within a period of time. – I.e. CreateTimeSpan(0,0,0,0)
› CachedAfter:• After a set time.
– I.e. 12/12/2000 06:00:00
Must have SQL and Attributes the same in order to Cache.
Managed by ColdFusion Internally
Caching Techniques <Scope>
Must use locks to access Recommend you load into request scope at
start of process to keep from having to use multiple locks in a page
Custom Tags can encapsulate the writing to and the access from a persistent scope
Load caches into a single key from the scope to centralize management› Application.stCache.stEvents.aLastTen› Server.stMyApp.stCache.stLocation
Reorganization of Cached Data
Site uses data in a variety of formats› Subset, reordering, combination with other data
elements Process can use data in different formats
› Queries, structures, arrays› Each format can access data in different ways
• structFind(), structSort(), structKeyList()• arrayToList(), arrayAvg()• <cfoutput group=“” query=“”>
Reorganization Techniques
Use Begin and End Tags to capture reformatting, combining of data› <cf_actionCache>
Convert Queries to Structures or Arrays› Structure keys based upon what data you will
access it by
Reuse of Cached Data
Each Page pulls from necessary caches
New caches pull from existing caches
Administrative Interface pull from necessary caches
Cache Synchronization
Administration› As we manage the data, the changes need to
be reflected in the caches Clustering
› Each cache on each server needs to remain the same
Synchronization Techniques
Use timeout low cache timeouts› Each cache refreshes every 5 minutes
Route is as a system message to each server› HTTP Requests› Message Queue (Spectra, Java)› Messaging Table in DB
Refresh into cache › At once› During access