Consistency and Replication

Slides:



Advertisements
Similar presentations
COMP 655: Distributed/Operating Systems Summer 2011 Dr. Chunbo Chu Week 7: Consistency 4/13/20151Distributed Systems - COMP 655.
Advertisements

Replication. Topics r Why Replication? r System Model r Consistency Models r One approach to consistency management and dealing with failures.
D u k e S y s t e m s Time, clocks, and consistency and the JMM Jeff Chase Duke University.
Consistency and Replication Chapter Introduction: replication and scalability 6.2 Data-Centric Consistency Models 6.3 Client-Centric Consistency.
Consistency and Replication Chapter Topics Reasons for Replication Models of Consistency –Data-centric consistency models: strict, linearizable,
Principles and Paradigms Consistency and Replication
Consistency and Replication
Consistency and Replication Chapter 6. Object Replication (1) Organization of a distributed remote object shared by two different clients.
Replication and Consistency Chapter 6. Data-Centric Consistency Models The general organization of a logical data store, physically distributed and replicated.
Consistency Models Based on Tanenbaum/van Steen’s “Distributed Systems”, Ch. 6, section 6.2.
Consistency and Replication. Replication of data Why? To enhance reliability To improve performance in a large scale system Replicas must be consistent.
Computer Science Lecture 14, page 1 CS677: Distributed OS Consistency and Replication Today: –Introduction –Consistency models Data-centric consistency.
Distributed Systems CS Consistency and Replication – Part II Lecture 11, Oct 10, 2011 Majd F. Sakr, Vinay Kolar, Mohammad Hammoud.
Distributed Systems Spring 2009
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Computer Science Lecture 14, page 1 CS677: Distributed OS Consistency and Replication Today: –Introduction –Consistency models Data-centric consistency.
Distributed Systems Fall 2009 Replication Fall 20095DV0203 Outline Group communication Fault-tolerant services –Passive and active replication Highly.
Computer Science Lecture 14, page 1 CS677: Distributed OS Consistency and Replication Introduction Consistency models –Data-centric consistency models.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Chapter 7 Consistency.
Ordering of events in Distributed Systems & Eventual Consistency Jinyang Li.
Consistency. Consistency model: –A constraint on the system state observable by applications Examples: –Local/disk memory : –Database: What is consistency?
Memory Consistency Models Some material borrowed from Sarita Adve’s (UIUC) tutorial on memory consistency models.
Consistency And Replication
Computer Architecture 2015 – Cache Coherency & Consistency 1 Computer Architecture Memory Coherency & Consistency By Yoav Etsion and Dan Tsafrir Presentation.
Distributed Systems CS Consistency and Replication – Part II Lecture 11, Oct 2, 2013 Mohammad Hammoud.
Consistency and Replication Chapter 6. Release Consistency (1) A valid event sequence for release consistency. Use acquire/release operations to denote.
Consistency and Replication. Replication of data Why? To enhance reliability To improve performance in a large scale system Replicas must be consistent.
Consistency and Replication Distributed Software Systems.
Ch 10 Shared memory via message passing Problems –Explicit user action needed –Address spaces are distinct –Small Granularity of Transfer Distributed Shared.
第5讲 一致性与复制 §5.1 副本管理 Replica Management §5.2 一致性模型 Consistency Models
Shared Memory Consistency Models. SMP systems support shared memory abstraction: all processors see the whole memory and can perform memory operations.
Replication (1). Topics r Why Replication? r System Model r Consistency Models – How do we reason about the consistency of the “global state”? m Data-centric.
Distributed Systems Replication. Why Replication Replication is Maintenance of copies at multiple sites Enhancing Services by replicating data Performance.
Consistency and Replication Chapter 6. Topics Reasons for Replication Models of Consistency –Data-centric consistency models –Client-centric consistency.
Distributed Systems CS Consistency and Replication – Part I Lecture 10, September 30, 2013 Mohammad Hammoud.
Replication (1). Topics r Why Replication? r System Model r Consistency Models r One approach to consistency management and dealing with failures.
D u k e S y s t e m s Asynchronous Replicated State Machines (Causal Multicast and All That) Jeff Chase Duke University.
CIS 720 Distributed Shared Memory. Shared Memory Shared memory programs are easier to write Multiprocessor systems Message passing systems: - no physically.
Consistency and Replication. Outline Introduction (what’s it all about) Data-centric consistency Client-centric consistency Replica management Consistency.
Distributed Systems CS Consistency and Replication – Part IV Lecture 13, Oct 23, 2013 Mohammad Hammoud.
Hwajung Lee.  Improves reliability  Improves availability ( What good is a reliable system if it is not available?)  Replication must be transparent.
Consistency and Replication Chapter 6 Presenter: Yang Jie RTMM Lab Kyung Hee University.
Consistency and Replication CSCI 6900/4900. FIFO Consistency Relaxes the constraints of the causal consistency “Writes done by a single process are seen.
Consistency and Replication (1). Topics Why Replication? Consistency Models – How do we reason about the consistency of the “global state”? u Data-centric.

CSE 486/586 Distributed Systems Consistency --- 2
CS6320 – Performance L. Grewe.
CSE 486/586 Distributed Systems Consistency --- 2
Distributed Systems CS
CSE 486/586 Distributed Systems Consistency --- 1
Consistency and Replication
Replication and Consistency
Consistency Models.
Replication and Consistency
Linearizability Linearizability is a correctness criterion for concurrent object (Herlihy & Wing ACM TOPLAS 1990). It provides the illusion that each operation.
Consistency and Replication
DATA CENTRIC CONSISTENCY MODELS
CSE 486/586 Distributed Systems Consistency --- 1
Replication Improves reliability Improves availability
PERSPECTIVES ON THE CAP THEOREM
Distributed Shared Memory
Ch 5 Replication and Consistency
CAP Theorem and Consistency Models
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
Distributed Systems CS
Replication Chapter 7.
Consistency and Replication
CSE 486/586 Distributed Systems Consistency --- 2
CSE 486/586 Distributed Systems Consistency --- 3
Replication and Consistency
Presentation transcript:

Consistency and Replication Some slides modified from Martin Klepmann and anonymous author

Replication Motivation Requirements Performance Enhancement Enhanced availability Fault tolerance Scalability tradeoff between benefits of replication and work required to keep replicas consistent Requirements Consistency Depends upon application In many applications, we want that different clients making (read/write) requests to different replicas of the same logical data item should not obtain different results Replica transparency desirable for most applications

Consistency Models Consistency Model is a contract between processes and a data store if processes follow certain rules, then store will work “correctly” Needed for understanding how concurrent reads and writes behave with respect to shared data Relevant for shared memory multiprocessors cache coherence algorithms Shared databases, files independent operations our main focus in the rest of the lecture transactions

Data-Centric Consistency Models The general organization of a logical data store, physically distributed and replicated across multiple processes. Each process interacts with its local copy, which must be kept ‘consistent’ with the other copies.

Client-centric Consistency Models A mobile user may access different replicas of a distributed database at different times. This type of behavior implies the need for a view of consistency that provides guarantees for single client regarding accesses to the data store.

What is consistency? Consistency model: Examples: A constraint on the system state observable by applications Examples: Local/disk memory : Database: Single object consistency, also called “coherence” write x=5 read x (should be 5) time x:=x+1; y:=y-1 assert(x+y==const) Consistency across >1 objects time

Consistency challenges No right or wrong consistency models Tradeoff between ease of programmability and efficiency E.g. what’s the consistency model for web pages? Consistency is hard in (distributed) systems: Data replication (caching) Concurrency Failures

Example application program CPU 0 CPU 1 READ/WRITE READ/WRITE Memory system x=1 If y==0 critical section y=1 If x==0 critical section Is this program correct?

CPU0’s instruction stream: W(x) R(y) Example x=1 If y==0 critical section y=1 If x==0 critical section CPU0’s instruction stream: W(x) R(y) CPU1’s instruction stream: W(y) R(x) Enumerate all possible inter-leavings: W(x)1 R(y)0 W(y)1 R(x)1 W(x)1 W(y)1 R(y)1 R(x)1 W(x)1 W(y)1 R(x)1 R(y)1 …. None violates mutual exclusion

An example distributed shared memory Each node has a local copy of state Read from local state Send writes to the other node, but do not wait

Consistency challenges: example W(x)1 W(y)1 x=1 If y==0 critical section y=1 If x==0 critical section

Does this work? W(x)1 W(y)1 R(x)0 R(y)0 x=1 If y==0 critical section If x==0 critical section

What went wrong? W(x)1 W(y)1 R(x)0 R(y)0 CPU0 sees: W(x)1 R(y)0

Aside: Relationship to transactions? Serializability? ACID?

Figure from Martin Klepmann

Each operation is stamped with a global wall-clock time Rules: Strict consistency Each operation is stamped with a global wall-clock time Rules: Each read gets the latest write value All operations at one CPU have time-stamps in execution order

Strict consistency gives “intuitive” results No two CPUs in the critical section Proof: suppose mutual exclusion is violated CPU0: W(x)1 R(y)0 CPU1: W(y)1 R(x)0 Rule 1: read gets latest write CPU0: W(x)1 R(x)0 CPU1: W(y)1 R(x)0 W must have timestamp later than R Contradicts rule 1: R must see W(x)1

Strict Consistency Any read on a data item x returns a value corresponding to the result of the most recent write on x. “All writes are instantaneously visible to all processes” time A strictly consistent store A store that is not strictly consistent. Behavior of two processes, operating on the same data item. The problem with strict consistency is that it relies on absolute global time and is impossible to implement in a distributed system.

Data-centric Consistency Models Strict consistency Sequential consistency Linearizability Causal consistency FIFO consistency Weak consistency Release consistency Entry consistency Notation: Wi(x)a  process i writes value a to location x Ri(x)a  process i reads value a from location x use explicit synchronization operations

Linearizability Definition of sequential consistency says nothing about time there is no reference to the “most recent” write operation Linearizability weaker than strict consistency, stronger than sequential consistency operations are assumed to receive a timestamp with a global available clock that is loosely synchronized “The result of any execution is the same as if the operations by all processes on the data store were executed in some sequential order and the operations of each individual process appear in this sequence in the order specified by its program. In addition, if tsop1(x) < tsop2(y), then OP1(x) should precede OP2(y) in this sequence.“ [Herlihy & Wing, 1991]

Linearizable Client 1 Client 2 X = X + 1; A = X; B = Y; Y = Y + 1; If (A > B) print(A) else ….

Sequential Consistency - 1 Sequential consistency: the result of any execution is the same as if the read and write operations by all processes were executed in some sequential order and the operations of each individual process appear in this sequence in the order specified by its program [Lamport, 1979]. Note: Any valid interleaving is legal but all processes must see the same interleaving. P3 and P4 disagree on the order of the writes A sequentially consistent data store. A data store that is not sequentially consistent.

Sequential Consistency - 2 Process P1 Process P2 Process P3 x = 1; print ( y, z); y = 1; print (x, z); z = 1; print (x, y); x = 1; print (y, z); y = 1; print (x, z); z = 1; print (x, y); Prints: 001011 (a) print (x,z); print(y, z); Prints: 101011 (b) Prints: 010111 (c) Prints: 111111 (d) (a)-(d) are all legal interleavings.

Not linearizable but sequentially consistent Client 1 X = X + 1; Y = Y + 1; Client 2 A = X; B = Y; If (A > B) print(A) else

Sequential consistency vs. Linearizability Linearizability has proven useful for reasoning about program correctness but has not typically been used otherwise. Sequential consistency is implementable and widely used but has poor performance. To get around performance problems, weaker models that have better performance have been developed.

Aside: is there a practical advantage to sequential consistency? Yes! Paper by Hagit and Welch in 1994 Showed that the lower bound on linearizable algorithms is higher (often much higher) than the upper bound on latency of sequential consistency Theoretical paper, but big practical implications

Linearizability vs. Sequential Consistency

Result more useful (and precise!) than the CAP theorem CAP, ACID and BASE Result more useful (and precise!) than the CAP theorem CAP: 8 years later, proposed by Brewer (2000), and proved/formalized by Gilbert and Lynch (2002) Brewer in 2012: “Misleading because it tended to oversimplify the tension between the properties” https://www.infoq.com/articles/cap-twelve-years-later-how-the-rules-have-changed Still CAP was influential BASE vs. ACID, NoSQL, …

Causal Consistency - 1 Necessary condition: Writes that are potentially causally related must be seen by all processes in the same order. Concurrent writes may be seen in a different order on different machines. concurrent since no causal relationship This sequence is allowed with a causally-consistent store, but not with sequentially or strictly consistent store. Can be implemented with vector clocks.

Causal Consistency - 2 A violation of a causally-consistent store. The two writes are NOT concurrent because of the R2(x)a. A correct sequence of events in a causally-consistent store (W1(x)a and W2(x)b are concurrent).

FIFO Consistency Necessary Condition: Writes done by a single process are seen by all other processes in the order in which they were issued, but writes from different processes may be seen in a different order by different processes. A valid sequence of events of FIFO consistency. Only requirement in this example is that P2’s writes are seen in the correct order. FIFO consistency is easy to implement.

Weak Consistency - 1 Uses a synchronization variable with one operation synchronize(S), which causes all writes by process P to be propagated and all external writes propagated to P. Consistency is on groups of operations Properties: Accesses to synchronization variables associated with a data store are sequentially consistent (i.e. all processes see the synchronization calls in the same order). No operation on a synchronization variable is allowed to be performed until all previous writes have been completed everywhere. No read or write operation on data items are allowed to be performed until all previous operations to synchronization variables have been performed.

Weak Consistency - 2 A valid sequence of events for weak consistency. P2 and P3 have not synchronized, so no guarantee about what order they see. This S ensures that P2 sees all updates A valid sequence of events for weak consistency. An invalid sequence for weak consistency.

Release Consistency Uses two different types of synchronization operations (acquire and release) to define a critical region around access to shared data. Rules: Before a read or write operation on shared data is performed, all previous acquires done by the process must have completed successfully. Before a release is allowed to be performed, all previous reads and writes by the process must have completed Accesses to synchronization variables are FIFO consistent (sequential consistency is not required). No guarantee since operations not used.

Entry Consistency Associate locks with individual variables or small groups. Conditions: An acquire access of a synchronization variable is not allowed to perform with respect to a process until all updates to the guarded shared data have been performed with respect to that process. Before an exclusive mode access to a synchronization variable by a process is allowed to perform with respect to that process, no other process may hold the synchronization variable, not even in nonexclusive mode. After an exclusive mode access to a synchronization variable has been performed, any other process's next nonexclusive mode access to that synchronization variable may not be performed until it has performed with respect to that variable's owner. No guarantees since y is not acquired.

Summary of Consistency Models Description Strict Absolute time ordering of all shared accesses matters. Linearizability All processes must see all shared accesses in the same order. Accesses are furthermore ordered according to a (nonunique) global timestamp Sequential All processes see all shared accesses in the same order. Accesses are not ordered in time Causal All processes see causally-related shared accesses in the same order. FIFO All processes see writes from each other in the order they were used. Writes from different processes may not always be seen in that order (a) Weak Shared data can be counted on to be consistent only after a synchronization is done Release Shared data are made consistent when a critical region is exited Entry Shared data pertaining to a critical region are made consistent when a critical region is entered. (b) Consistency models not using synchronization operations. Models with synchronization operations.

Eventual Consistency There are replica situations where updates (writes) are rare and where a fair amount of inconsistency can be tolerated. DNS – names rarely changed, removed, or added and changes/additions/removals done by single authority Web page update – pages typically have a single owner and are updated infrequently. If no updates occur for a while, all replicas should gradually become consistent. May be a problem with mobile user who access different replicas (which may be inconsistent with each other).

Client-centric Consistency Models A mobile user may access different replicas of a distributed database at different times. This type of behavior implies the need for a view of consistency that provides guarantees for single client regarding accesses to the data store.

Session Guarantees When client move around and connects to different replicas, strange things can happen Updates you just made are missing Database goes back in time Responsibility of “session manager”, not servers Two sets: Read-set: set of writes that are relevant to session reads Write-set: set of writes performed in session Update dependencies captured in read sets and write sets Four different client-central consistency models Monotonic reads Monotonic writes Read your writes Writes follow reads

Monotonic Reads process moves from L1 to L2 L1 and L2 are two locations indicates propagation of the earlier write process moves from L1 to L2 No propagation guarantees A data store provides monotonic read consistency if when a process reads the value of a data item x, any successive read operations on x by that process will always return the same value or a more recent value. Example error: successive access to email have ‘disappearing messages’ A monotonic-read consistent data store A data store that does not provide monotonic reads.

Monotonic Writes In both examples, process performs a write at L1, moves and performs a write at L2 A write operation by a process on a data item x is completed before any successive write operation on x by the same process. Implies a copy must be up to date before performing a write on it. Example error: Library updated in wrong order. A monotonic-write consistent data store. A data store that does not provide monotonic-write consistency.

Read Your Writes In both examples, process performs a write at L1, moves and performs a read at L2 The effect of a write operation by a process on data item x will always be seen by a successive read operation on x by the same process. Example error: deleted email messages re-appear. A data store that provides read-your-writes consistency. A data store that does not.

Writes Follow Reads In both examples, process performs a read at L1, moves and performs a write at L2 A write operation by a process on a data item x following a previous read operation on x by the same process is guaranteed to take place on the same or a more recent value of x that was read. Example error: Newsgroup displays responses to articles before original article has propagated there A writes-follow-reads consistent data store A data store that does not provide writes-follow-reads consistency