data level caching caching the core of your application benjamin elmore allaire spectra evangelist...

14
Data Level Caching Caching the core of your application Benjamin Elmore Allaire Spectra Evangelist [email protected] [email protected] February 13, 2001

Upload: cameron-leonard

Post on 17-Jan-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Data Level Caching Caching the core of your application Benjamin Elmore Allaire Spectra Evangelist Belmore@allaire.com Benjamin.elmore@remotesite.com February

Data Level CachingCaching the core of your application

Benjamin Elmore

Allaire Spectra Evangelist

[email protected]

[email protected]

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

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

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

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

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

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

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

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

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

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

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

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

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

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