Title: WCDP: A protocol for web cache consistency
1WCDP A protocol for web cache consistency
- Renu Tewari
- IBM Almaden Research
- tewarir_at_us.ibm.com
- Thirumale Niranjan
- IBM Software Group
- niranjan_at_us.ibm.com
2WCDP Overview
- More that just cache invalidations.
- Updates via refresh
- Different consistency levels
- Scalability
- Object groups
- Distribution hierarchies
origin
Intermediaries
Proxy Surrogate
Single/different admin domain
CDNs, enterprise n/w, ISP
3WCDP Architecture
WCDP Server
Mirror
Mirror
Strong consistency
HTTP/TCP
Delta consistency
WCDP Gateway
(optional protocol translation)
Distribution hierarchy (optional)
WCDP clients
4WCDP Design Features
- Deployment cases
- Work with CDNs, ISP proxy caches,content mgmt
engine, server-side software, publishing
systems. - Delivery architectures
- Point-to-point, application multicast, gateway
across protocols and different servers - Invalidates and updates
- Refresh directives, explicit expiration (default)
- Atomic invalidates
- Identify arbitrary groups of resources for
consistency - using invalidation ids and group ids
5WCDP Design Features
- Scalability
- Group objects, messages and message distribution
hierarchies - Different degrees of consistency
- Strong, delta and explicit
- Failure handling
- Server and intermediary failure, network
partition - Security
- Plug-in based, default rely on SSL.
- Subscription support
- Explicit content group based or implicit based on
external SLA
6WCDP Protocol Example
HTTP request GET www.cnnfn.com
Server cnnfn
HTTP response 200 OK Obj_inv_id
abc123 Content_grp_id financial
cnnfn.com
Register request content_grp_id financial
Register response
Invalidation request Obj_inv_id abc123
Invalidate response
WCDP client
7Message Types
- Invalidate request/response
- Invalidation action refresh directive, delayed
refresh, invalidate - consistency level require commit
- invalidation type atomic, individual
- Register request/response
- Used of subscription
- Join request/response
- Used after failure and recovery
- Commit request/response
- Used for strong consistency
- Heartbeat from server to client
- Used for strong and delta consistency
8WCDP Message Example
- Invalidation request
- lt!DOCTYPE Invalidate request wcdp.dtdgt
- ltinvalidation sequence_num 100gt
- ltidentifiergt
- ltobj_invalidation_id 12345/gt
- ltobj_inv_group_id 9876 /gt
- lt/identifiergt
- ltactiongt
- ltinvalidate immediate /gt
- ltrefresh yes /gt
- ltdelay 60 sec /gt
- ltforce no /gt
- lt/actiongt
- lttype atomic no /gt
- ltconsistency require_commit no /gt
- lt/invalidationgt
- Invalidation response
- lt!DOCTYPE Invalidate response wcdp.dtdgt
- ltinvalidation sequence_num 100gt
- ltidentifiergt
- ltobj_invalidation_id 12345/gt
- ltstatus OK /gt
- lt/identifiergt
- ltidentifiergt
- ltobj_inv_group_id 9876 /gt
- ltstatus OK /gt
- lt/identifiergt
- lt/invalidationgt
9Object Invalidation Identity
- Invalidation can address
- Full-pages, fragments, groups
- HTTP response include invalidation identifier
- obj_invalidation_id
- Opaque value with no semantic meaning
- Same obj_invalidation_id for different variants
of object - Cache maintains internal mapping
- Obj_invalidation_id ? obj_cache_id
- Obj_cache_id same as external URL for static
pages - Includes the HTTP header tags for fragments
10Object Grouping
- Objects in a group addressed as a unit for
consistency maintenance or message scalability - HTTP response includes group identifier
- obj_group_invalidation_id
- E.g., all objects in a sub-directory
- Atomic invalidates
- Specify lock semantics to invalidate all objects
in a group atomically - Implements mutual consistency
- Individual invalidates
- Each object in group treated separately
-
11Content Groups and Subscription
- Content group
- Large aggregation of objects (by topics)
- Intermediary can subscribe to a content group
- Implicit subscription
- External admin step
- Explicit subscription
- Use a register message
- Discovering content groups
- External LDAP directory
- In the HTTP response
12Consistency Support
- Explicit
- Default
- similar to HTTP cache-control, expires tag
- Strong
- Two phase commit using invalidation acks and
commit messages - Requires heartbeat
- Delta
- Invalidation with ack
- Bounded message delay
- Requires heartbeat
- Mutual
- Atomic invalidate of a group of objects
13Strong Consistency Example
WCDP Server
Invalidation request Obj_inv_id abc123 Immediate
Refreshyes Consistency require_commit yes
HTTP request GET www.cnnfn.com
HTTP response 200 OK Obj_inv_id
abc123 Content_grp_id financial
Invalidate response Statuswaiting_for_commit
Commit request obj_inv_id abc123
Commit response Status OK
WCDP client
14Failure and Recovery
- Missing heartbeat from server (server failure)
- Client reverts to explicit consistency
- Send join message to re-subscribe
- Missing invalidation response from client (client
failure) - Remove from subscription group after timeout
- No further heartbeats sent
- Network partition
- Client behaves as if server has failed
- Server behaves as if client has failed
- Reliable transport is assumed
15Status and Future Work
- Based partly on the content distribution
framework of the Websphere Edge Server version
2.0 - SOAP based implementation in future
- Security enhancements to be added