![Page 1: Data Level Caching Caching the core of your application Benjamin Elmore Allaire Spectra Evangelist Belmore@allaire.com Benjamin.elmore@remotesite.com February](https://reader036.vdocuments.mx/reader036/viewer/2022083008/56649f0d5503460f94c2191a/html5/thumbnails/1.jpg)
Data Level CachingCaching the core of your application
Benjamin Elmore
Allaire Spectra Evangelist
February 13, 2001
![Page 2: Data Level Caching Caching the core of your application Benjamin Elmore Allaire Spectra Evangelist Belmore@allaire.com Benjamin.elmore@remotesite.com February](https://reader036.vdocuments.mx/reader036/viewer/2022083008/56649f0d5503460f94c2191a/html5/thumbnails/2.jpg)
Overview
Understanding the Approach Analyzing your Site Caching Techniques Reorganization of Cached Data Reuse of Cached Data Cache Synchronization across Clusters
![Page 3: Data Level Caching Caching the core of your application Benjamin Elmore Allaire Spectra Evangelist Belmore@allaire.com Benjamin.elmore@remotesite.com February](https://reader036.vdocuments.mx/reader036/viewer/2022083008/56649f0d5503460f94c2191a/html5/thumbnails/3.jpg)
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
![Page 4: Data Level Caching Caching the core of your application Benjamin Elmore Allaire Spectra Evangelist Belmore@allaire.com Benjamin.elmore@remotesite.com February](https://reader036.vdocuments.mx/reader036/viewer/2022083008/56649f0d5503460f94c2191a/html5/thumbnails/4.jpg)
CacheCacheCacheCache
Understanding the Approach
NewsNews CourseCourse
CourseCourseListList
MyMyCourseCourse
CourseCourseRegistrationRegistration
MostMostRecentRecent
MostMostRecentRecent
MyMyNewsNews
NewsNewsArchiveArchive
NewsNewsSearchSearch
HomeHome
Two Dimensional View of SiteTwo Dimensional View of Site
![Page 5: Data Level Caching Caching the core of your application Benjamin Elmore Allaire Spectra Evangelist Belmore@allaire.com Benjamin.elmore@remotesite.com February](https://reader036.vdocuments.mx/reader036/viewer/2022083008/56649f0d5503460f94c2191a/html5/thumbnails/5.jpg)
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
![Page 6: Data Level Caching Caching the core of your application Benjamin Elmore Allaire Spectra Evangelist Belmore@allaire.com Benjamin.elmore@remotesite.com February](https://reader036.vdocuments.mx/reader036/viewer/2022083008/56649f0d5503460f94c2191a/html5/thumbnails/6.jpg)
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
![Page 7: Data Level Caching Caching the core of your application Benjamin Elmore Allaire Spectra Evangelist Belmore@allaire.com Benjamin.elmore@remotesite.com February](https://reader036.vdocuments.mx/reader036/viewer/2022083008/56649f0d5503460f94c2191a/html5/thumbnails/7.jpg)
Caching Techniques
Query Caching› <cfquery> attributes› Write into persistent scope
Persistent Scope Caching› Server, Application or Session› Preformatted Data› Preformatted HTML
![Page 8: Data Level Caching Caching the core of your application Benjamin Elmore Allaire Spectra Evangelist Belmore@allaire.com Benjamin.elmore@remotesite.com February](https://reader036.vdocuments.mx/reader036/viewer/2022083008/56649f0d5503460f94c2191a/html5/thumbnails/8.jpg)
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
![Page 9: Data Level Caching Caching the core of your application Benjamin Elmore Allaire Spectra Evangelist Belmore@allaire.com Benjamin.elmore@remotesite.com February](https://reader036.vdocuments.mx/reader036/viewer/2022083008/56649f0d5503460f94c2191a/html5/thumbnails/9.jpg)
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
![Page 10: Data Level Caching Caching the core of your application Benjamin Elmore Allaire Spectra Evangelist Belmore@allaire.com Benjamin.elmore@remotesite.com February](https://reader036.vdocuments.mx/reader036/viewer/2022083008/56649f0d5503460f94c2191a/html5/thumbnails/10.jpg)
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=“”>
![Page 11: Data Level Caching Caching the core of your application Benjamin Elmore Allaire Spectra Evangelist Belmore@allaire.com Benjamin.elmore@remotesite.com February](https://reader036.vdocuments.mx/reader036/viewer/2022083008/56649f0d5503460f94c2191a/html5/thumbnails/11.jpg)
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
![Page 12: Data Level Caching Caching the core of your application Benjamin Elmore Allaire Spectra Evangelist Belmore@allaire.com Benjamin.elmore@remotesite.com February](https://reader036.vdocuments.mx/reader036/viewer/2022083008/56649f0d5503460f94c2191a/html5/thumbnails/12.jpg)
Reuse of Cached Data
Each Page pulls from necessary caches
New caches pull from existing caches
Administrative Interface pull from necessary caches
![Page 13: Data Level Caching Caching the core of your application Benjamin Elmore Allaire Spectra Evangelist Belmore@allaire.com Benjamin.elmore@remotesite.com February](https://reader036.vdocuments.mx/reader036/viewer/2022083008/56649f0d5503460f94c2191a/html5/thumbnails/13.jpg)
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
![Page 14: Data Level Caching Caching the core of your application Benjamin Elmore Allaire Spectra Evangelist Belmore@allaire.com Benjamin.elmore@remotesite.com February](https://reader036.vdocuments.mx/reader036/viewer/2022083008/56649f0d5503460f94c2191a/html5/thumbnails/14.jpg)
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