12-12-2012, 05:52 PM
Class:Consistency Semantics
ClassConsistency.ppt (Size: 163 KB / Downloads: 30)
Consistency protocols
Primary-based
Replicated-write
Putting it all together
Final thoughts
Fault-tolerance Introduction
Implementation Issues
Two techniques to implement consistency models
Primary-based protocols
Assume a primary replica for each data item
Primary responsible for coordinating all writes
Replicated write protocols
No primary is assumed for a data item
Writes can take place at any replica
Replicated-write Protocols
Relax the assumption of one primary
No primary, any replica is allowed to update
Consistency is more complex to achieve
Quorum-based protocols
Use voting to request/acquire permissions from replicas
Consider a file replicated on N servers
Update: contact at least (N/2+1) servers and get them to agree to do update (associate version number with file)
Read: contact majority of servers and obtain version number
If majority of servers agree on a version number, read
Final Thoughts
Replication and caching improve performance in distributed systems
Consistency of replicated data is crucial
Many consistency semantics (models) possible
Need to pick appropriate model depending on the application
Example: web caching: weak consistency is OK since humans are tolerant to stale information (can reload browser)
Implementation overheads and complexity grows if stronger guarantees are desired
A Perspective
Computing systems are not very reliable
OS crashes frequently (Windows), buggy software, unreliable hardware, software/hardware incompatibilities
Until recently: computer users were “tech savvy”
Could depend on users to reboot, troubleshoot problems
Growing popularity of Internet/World Wide Web
“Novice” users
Need to build more reliable/dependable systems
Example: what is your TV (or car) broke down every day?
Users don’t want to “restart” TV or fix it (by opening it up)
Need to make computing systems more reliable
Basic Concepts
Need to build dependable systems
Requirements for dependable systems
Availability: system should be available for use at any given time
99.999 % availability (five 9s) => very small down times
Reliability: system should run continuously without failure
Safety: temporary failures should not result in a catastrophic
Example: computing systems controlling an airplane, nuclear reactor
Maintainability: a failed system should be easy to repair