1
Continuous Consistency Continuous Consistency and Availability and Availability
Haifeng Yu
CPS 212 Fall 2002
2
Consistency in Replication Consistency in Replication
! Replication comes with consistency cost: ! Reasons for replication: Better performance and availability
client client client server server server
! Replication transforms client-server
communication to server-server communication:
- Decrease performance
- Decrease availability
3
Strong Consistency and Optimistic Consistency Strong Consistency and Optimistic Consistency
! Traditionally, two choices for consistency level:
- Strong consistency: Strictly “in sync”
- Optimistic consistency: No guarantee at all
- Associated tradeoffs with each model
Availability / Performance / Scalability Consistency Optimistic Consistency Strong Consistency
4
Problems with Binary Choice Problems with Binary Choice
!
Strong consistency incurs prohibitive overheads for many WAN apps
- Replication may even decrease performance, availability and scalability
relative to a single server!
!
Optimistic consistency provides no consistency guarantee at all
- Resulting in upset users: Unbounded reservation conflicts
- Potentially render the app unusable: If traffic data is more than 1 hour stale,
probably of little use
!
Applications cannot tune consistency level based on its environment
- Need to adapt to client, service and network characteristics
5
Continuous Consistency Continuous Consistency
! Consistency is continuous rather than binary for many
WAN apps
- These apps can benefit from exploiting the consistency
spectrum between strong and optimistic consistency.
Availability / Performance / Scalability Consistency Optimistic Consistency Strong Consistency Consistency Continuous Consistency Availability / Performance / Scalability
6
Quantifying Consistency Quantifying Consistency
! Many ways:
- Staleness (TTL in web caching): Invalidate
- Limit number of locally buffered writes
buffered updates