Presentation is loading. Please wait.

Presentation is loading. Please wait.

Consistency and Replication Chapter 7. n Most of the lecture notes are based on slides by Prof. Jalal Y. Kawash at Univ. of Calgary n Some notes are based.

Similar presentations


Presentation on theme: "Consistency and Replication Chapter 7. n Most of the lecture notes are based on slides by Prof. Jalal Y. Kawash at Univ. of Calgary n Some notes are based."— Presentation transcript:

1 Consistency and Replication Chapter 7

2 n Most of the lecture notes are based on slides by Prof. Jalal Y. Kawash at Univ. of Calgary n Some notes are based on slides by Prof. Kenneth Chiu at SUNY Binghamton n I have modified them and added new slides Giving credit where credit is due: CSCE455/855 Distributed Operating Systems

3 Consistency and Replication Chapter 7 Part I Consistency Models

4 Reasons for Replication Reliability: –Mask failures –Mask corrupted data Performance: –Scalability (size and geographical) Examples: –Web caching –Horizontal server distribution

5 Cost of Replication Replicas must be kept consistent Dilemma: 1.Replicate data for better performance 2.Modification on one copy triggers modifications on all other replicas 3.Propagating each modification to each replica can degrade performance ?

6 Consistency Issues – Access/Update Ratio time … Updates to the Web page User accesses to the page

7 Consistency Model When and how the modifications are made = consistency model: –Weak versus strong consistency model

8 Consistency Models (cont.) The general organization of a logical data store, physically distributed and replicated across multiple processes.

9 Consistency Models (cont) A process performs a read operation on a data item, expects the operation to return a value that shows the result of the last write operation on that data No global clock  difficult to define the last write operation Consistency models provide other definitions Different consistency models have different restrictions on the values that a read operation can return read1 read2

10 Summary of Consistency Models a)Consistency models not using synchronization operations. b)Models with synchronization operations. ConsistencyDescription StrictAbsolute time ordering of all shared accesses matters. Sequential All processes see all shared accesses in the same order. Accesses are not ordered in time. CausalAll 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) ConsistencyDescription WeakShared data can be counted on to be consistent only after a synchronization is done ReleaseShared data are made consistent when a critical region is exited EntryShared data pertaining to a critical region are made consistent when a critical region is entered. (b)

11 Framework for Consistency Partial and Total Orders Let S be a set, and R  S  S R is anti-reflexive if  x  S, (x,x)  R R is transitive if  x, y, z  S, if (x,y)  R and (y,z)  R then (x,z)  R A PO is an anti-reflexive, transitive relation A PO is denoted by (S,R) xRy means (x,y)  R A TO is a PO (S,R) such that  x, y  S x  y, either xRy or yRx

12 Framework for Consistency Operations and Data Items Operations are either writes or reads A write is denoted w p (x)v A read is denoted r p (x)v A read-write data item is the set of all sequences such that 1.Each o i is either a read or a write 2.Each read returns the same value written by the most recent preceding write in the sequence

13 Framework for Consistency Operations and Processes Each operation can be decomposed into two components: –Invocation and response w p (x)v: invocation = w p (x)v; response = empty r p (x)v: invocation = r p (x)?; response = v A process is a sequence of operation invocations A process computation is a sequence of operations obtained by augmenting each invocation in the process by its response

14 Framework for Consistency Multiprocess Systems A (multiprocess) system (P,D) is a set of processes, P, and a set of data items, D, such that all operation invocations of processes in P are applied to items in D A (multiprocess) system (P,D) computation is a collection of process computations one for each process in P

15 Framework for Consistency Example Program p: x = y Process p: r(y)v? w(x)v? Program q: y = x Process q: r(x)v? w(y)v? Process p Comp: r(y)5 w(x)5 Process q Comp: r(x)0 w(y)0 System (P,D): P = {p,q} D = {x,y} System (P,D) Computation: p: r(y)5 w(x)5 q: r(x)0 w(y)0

16 Framework for Consistency Program Order Define program order, denoted (O, < po ), by o 1 < po o 2 iff o 2 follows o 1 in p’s computation Process p: r(y)v? w(x)v? Process q: r(x)v? w(y)v? Process p Comp: r(y)5 w(x)5 Process q Comp: r(x)0 w(y)0 r p (y)5 < po w p (x)5 r q (x)0 < po w q (y)0 All of program order for the example Program p: x = y Program q: y = x

17 Framework for Consistency Consistency Models A consistency model is a set of constraints on system computations A system computation of (P,D) satisfies a consistency model CM if the computation meets all the constraints in CM

18 Relation of Consistency Models Sequential All processes see all shared accesses in the same order Strict Absolute time ordering of all shared accesses matters. For two consistency models CM 1 and CM 2 CM 1 is stronger than CM 2 if the constraints of CM 1 imply those of CM 2 –CM 2 is weaker than CM 1 –Sequential consistency is weaker than strict consistency

19 Framework for Consistency – Validity Given a set of operations O O|w indicates all the write operations in O O|r indicates all the read operations in O O|p is the subset of O containing p’s operations, for some process p O|x is the subset of O containing operations on x, for some data item x Let (O,<) be a total order of O (O,<) is valid if for each data item x, the subsequence (O|x,<) is valid for x

20 Framework for Consistency Valid Total Orders Computation: p: w(x)5 r(y)5 q: r(x)0 w(y)5 r(x)5 Valid Total Order: r q (x)0 w q (y)5 w p (x)5 r q (x)5 r p (y)5 x and y are initially 0 Valid for x: r q (x)0 w q (y)5 w p (x)5 r q (x)5 r p (y)5Valid for y: r q (x)0 w q (y)5 w p (x)5 r q (x)5 r p (y)5 Invalid Total Order: w p (x)5 r q (x)0 w q (y)5 r q (x)5 r p (y)5

21 Sequential Consistency (SC) Two constraints: –the result of any execution is the same as if the operations of all the 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 Let O be the set of all the operations of a computation C of a system (P,D). Then, C satisfies SC if there is a valid total order (O,<) such that (O, < po )  (O,<)

22 SC – Intuition process … All Data Items (the set D) process Switch FIFO Channels

23 Sequential Consistency – Example C satisfies SC if there is a valid total order (O,<) such that (O, < po )  (O,<) C1 p: w(x)1 r(x)2 q: r(x)1 w(x)2 C1 satisfies SC (O, (O, < po ) = { (w p (x)1, r p (x)2), (r q (x)1, w q (x)2) }

24 Sequential Consistency – Examples C2 p: w(x)1 r(x)2 q: w(x)2 r(x)1 C2 does not satisfy SC (O, < po ) = { (w p (x)1, r p (x)2), (w q (x)2, r q (x)1) } (is not valid) (violates PO) C3 p: w(x)1 w(y)2 q: r(y)2 r(x)0 Exercise: Does C3 satisfy SC? (x and y are initially 0)

25 Coherence [Goodman] SC per data item Let O be the set of all the operations of a computation C of a system (P,D). Then, C satisfies Coherence if for each x  D there is a valid total order (O|x,< x ) such that (O|x,< po )  (O|x,< x )

26 Coherence – Intuition process … One Data Item process One Data Item One Data Item … FIFO Channels

27 Coherence – Examples C1 p: w(x)1 r(x)2 q: r(x)1 w(x)2 C1 satisfies Coherence (O|x, C2 p: w(x)1 r(x)2 q: w(x)2 r(x)1 C2 does not satisfy Coherence C3 p: w(x)1 w(y)2 q: r(y)2 r(x)0 C3 satisfies Coherence but not SC C4 p: w(x)3 w(x)2 r(y)3 q: w(y)3 w(y)1 r(x)3 Does C4 satisfy Coherence? SC?

28 SC versus Coherence If Computation C satisfies SC, then it satisfies Coherence + PO If a Computation C satisfies Coherence, then it does not necessarily satisfy SC –Proof: Computation C3 is an example All Computations satisfying consistency model CM = C(CM) C(Coherence) C(SC) C3

29 FIFO [Lipton & Sandberg] 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 When would we like to use FIFO consistency model

30 Review: SC – Intuition process … All Data Items (the set D) process Switch FIFO Channels

31 Review: Coherence – Intuition process … One Data Item process One Data Item One Data Item … FIFO Channels

32 FIFO – Intuition process All Data Items (D) process All Data Items (D) process All Data Items (D) process All Data Items (D) FIFO Channels

33 FIFO [Lipton & Sandberg] 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 Let O be the set of all the operations of a computation C of a system (P,D). Then, C satisfies FIFO if for each p  P there is a valid total order (O|p  O|w,< p ) such that (O|p  O|w,< po )  (O|p  O|w,< p )

34 FIFO – Examples C1 p: w(x)1 r(x)2 q: r(x)1 w(x)2 C1 satisfies FIFO (also SC and Coherence) (O|p  O|w, (O|q  O|w, C2 p: w(x)1 r(x)2 q: w(x)2 r(x)1 C2 satisfies FIFO but not Coherence C3 p: w(x)1 w(y)2 q: r(y)2 r(x)0 C3 satisfies Coherence but not SC nor FIFO

35 FIFO – Examples (cont) C5 p: w(x)3 w(x)1 w(y)2 q: r(y)2 r(x)3 Does C4 satisfy FIFO? Coherence? SC? Does C5 satisfy FIFO? Coherence? SC? C4 p: w(x)3 w(x)2 r(y)3 q: w(y)3 w(y)1 r(x)3

36 SC versus FIFO If Computation C satisfies SC, does it satisfy FIFO? If Computation C satisfies FIFO, does it satisfy SC?

37 SC versus FIFO If Computation C satisfies SC, then it satisfies FIFO If a Computation C satisfies FIFO, then it does not necessarily satisfy SC –Proof: Computation C4 is an example C(FIFO) C(SC) C4 p: w(x)3 w(x)2 r(y)3 q: w(y)3 w(y)1 r(x)3

38 Coherence versus FIFO If Computation C satisfies Coherence, does it satisfy FIFO?

39 Coherence versus FIFO If Computation C satisfies Coherence, then it does not necessarily satisfy FIFO –Proof: Computation C5 is an example C5 p: w(x)3 w(x)1 w(y)2 q: r(y)2 r(x)3

40 Coherence versus FIFO If a Computation C satisfies FIFO, does it satisfy Coherence?

41 Coherence versus FIFO If a Computation C satisfies FIFO, then it does not necessarily satisfy Coherence –Proof: Computation C2 is an example C2 p: w(x)1 r(x)2 q: w(x)2 r(x)1

42 Coherence versus FIFO There are computations that satisfy both Coherence and FIFO, but not SC –Proof: Computation C4 C(Coherence) C(FIFO) C(SC) C: satisfies FIFO and Coherence, but not SC C4 p: w(x)3 w(x)2 r(y)3 q: w(y)3 w(y)1 r(x)3

43 Weak Consistency Consider Critical Section –If a process is in a critical section, its intermediate results of operations are not necessarily propagated to others. Idea –Enforce consistency on a Group of Operations –Limit the time when consistency holds –Let programmer explicitly specify this

44 Synchronization Operations In addition to reads and writes, introduce synch p () operation, which –synchronizes all local copies of the data store Propagate local updates Bring in other ’ s updates

45 Weak Consistency (cont.) Three conditions 1.No operation on a synchronization variable is allowed to be performed until all previous writes have completed everywhere. 2.No read or write operation on data items are allowed to be performed until all previous operations to synchronization variables have been performed. 3.Accesses to synchronization variables associated with a data store, are sequentially consistent.

46 Weak Consistency (cont.) Weak Consistency Not Weak Consistency P1 P2 P3 P1 P2 P3 W(x, a) W(x, b) W(y, c) S2 S1 S3 b  R(x) c  R(y) b  R(x) W(x, a) W(x, b) W(y, c) S2 S1 S3 a  R(x) c  R(y) b  R(x) c  R(y) Or a  R(x) Nil  R(y) b  R(x) No operation on a synchronization variable is allowed to be performed until all previous writes have 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.

47 WC – Example C6 p: w(x)3 s() q: r(x)0 s() w(y)1 s’() r(x)3 m: w(x)5 r(y)1 s() r(x)3 All of p, q, and m must agree on a total order of synch operations consistent with program order; for example: (O|p  O|w  O|s, < p ) = (O|q  O|w  O|s, < q ) = (O|m  O|w  O|s, < m ) = Accesses to synchronization variables associated with a data store, are sequentially consistent.

48 Summary of Consistency Models a)Consistency models not using synchronization operations. b)Models with synchronization operations. ConsistencyDescription StrictAbsolute 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 CausalAll 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) ConsistencyDescription WeakShared data can be counted on to be consistent only after a synchronization is done ReleaseShared data are made consistent when a critical region is exited EntryShared data pertaining to a critical region are made consistent when a critical region is entered. (b)

49 Weaker Models Sometimes strong models are needed, if the result of race conditions are very bad. –Banks Sometimes the result of races are just inefficiency, or inconvenience, etc. How strong is Orbitz’s model? –If it shows that a flight ticket with a certain price is available, is it really? One kind of weaker model is eventual consistency –It eventually becomes consistent

50 Lazy Consistency Models When updates are scarce When updates are not conflicting –Examples: DNS and WWW Eventual Consistency (EC): Lazy propagation of updates to all replicas –If no updates take place for a long time, all replicas will become consistent –Cheap to implement –If a client always accesses the same replica, the same or newer data will be read as time passes. EC works.

51 Eventual Consistency How well does EC work for mobile clients? Client-centric is for this. Consistent for a single client.

52

53 Notation x i [t] is the version of x at local copy L i at time t. Version x i [t] is the result of a series of write operations at L i that took place since initialization. This is WS(x i [t]). If operations in WS(x i [t]) have also been performed at local copy L j at a later time t 2, we write WS(x i [t 1 ];x j [t 2 ]).

54 Monotonic Reads (1) A data store is said to provide monotonic-read consistency: –If a process reads the value of a data item x any successive read operation on x by that process will always return that same value or a more recent value.

55 Monotonic Reads (2) A data store that provides monotonic reads consistency A data store that does not

56 Monotonic Writes (1) In a monotonic-write consistent store, the following condition holds: –A write operation by a process on a data item x is completed before any successive write operation on x by the same process.

57 Monotonic Writes (2) A data store that provides monotonic writes consistency A data store that does not

58 Read Your Writes (1) A data store is said to provide read-your-writes consistency: –If 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. Suppose your web browser has a cache. –You update your web page on the server. –Do you have read-your-writes consistency?

59 Read Your Writes (2) A data store that provides read your writes consistency A data store that does not

60 Writes Follow Reads (1) A data store is said to provide writes-follow-reads consistency: –If 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.

61 Writes Follow Reads (2) A data store that provides writes follow reads consistency A data store that does not

62 Consistency and Replication Chapter 7 Part II Replica Management & Consistency Protocols

63 Replica Management Replica-Server Placement Replica Placement: –Where is a replica placed? –When is a replica created? –Who creates the replica? How do we distribute updates between replicas? –Update propagation

64 Types of Replicas

65 Permanent Replicas Initial set of replicas –Other replicas can be created from them –Small and static set Example: Web site horizontal distribution 1.Replicate Web site on a limited number of machines on a LAN –Distribute request in round-robin 2.Replicate Web site on a limited number of machines on a WAN (mirroring) –Clients choose which sites to talk to

66 Server-Initiated Replicas (1) Dynamically created at the request of the owner of the DS Example: push-based caches –Owners: web owners for CNN, Yahoo –Web hosting services: that provided by AkamaiAkamai –Web hosting servers can dynamically create replicas close to the demanding client Need dynamic policy to create, migrate and delete replicas

67 Server-Initiated Replicas (2) One is to keep track of Web page hits –Keep a counter and access-origin list for each page F Server Q Server P

68 Server-Initiated Replicas (3) Count access requests from different clients: cnt Q (P, F), if it is more than ½ * requests for F at Q, then Q attempts to migrate F to P.

69 Client-Initiated Replicas These are caches –Temporary storage (expire fast) Managed by clients Cache hit: return data from cache Cache miss: load copy from original server Kept on the client machine, or on the same LAN Multi-level caches

70 Multi-Level Caches

71 Design Issues for Update Propagation A process modified a replica. Based on the consistency model supported, the update is then propagated to all other replicas at its proper time How to carry out update propagation and make two replicas consistent with each other? 1.Propagate state or operation 2.Pull or Push protocols 3.Unicast or multicast propagation

72 State versus Operation Propagation (1) 1.Propagate a notification of update Invalidate protocols When data item x is changed at a replica, it is invalidated at other replicas An attempt to read the item causes an “item-fault” triggering updating the local copy before the read can complete Uses little network bandwidth When is good to use this distribution protocol? When read-to-write ratio is low or high? Good when read-to-write ratio is low

73 State versus Operation Propagation (2) When read-to-write ratio is high: 2.Transfer modified data or a log of changes High network bandwidth usage 3.Propagate the update operation Each replica must have a process capable of performing the update Very low network bandwidth usage Other trade-off between this two protocols?

74 Pull versus Push Push: updates are propagated to other replicas without solicitation –Typically, from permanent to server-initiated replicas –Used to achieve a high degree of consistency Pull: A replica asks another for an update –Typically, from client-initiated replica –Inconsistent cache results in longer response time

75 Pull versus Push Protocols A comparison between push-based and pull-based protocols in the case of multiple client, single server systems. IssuePush-basedPull-based State of serverList of client replicas and cachesNone Messages sentUpdate (and possibly fetch update later)Poll and update Response time at client Immediate (or fetch-update time)Fetch-update time

76 76 Leases Combined push and pull A server promise –push updates for a certain time –a lease expires => the client polls the server or requests a new lease –length of a lease? –different types of leases age based: {time to last modification} renewal-frequency based: long-lasting leases to active users state-space overhead: increasing utilization of a server => lower expiration times of new leases

77 Unicast versus Multicast Unicast: a replica sends separate n-1 updates to every other replica Multicast: a replica sends one update to multiple replicas –Network takes care of multicasting –Can be cheaper –Suits push-based protocols

78 Consistency Protocols Actual implementation of consistency models For instance, how to implement sequential consistency? Whether primary copy exists or not –Primary-based protocols –Replicated-write protocols

79 Primary-Based Remote-Write Protocol Primary copy and backups for each data item Read from local copy Write to the (remote) primary server –Update backups Blocking vs. non-blocking update

80 Primary-Based Remote-Write Protocol (cont.) The principle of primary-backup protocol.

81 Sequential Consistency process … All Data Items (the set D) process Switch FIFO Channels

82 Primary-Based Remote-Write Protocol (cont.) The principle of primary-backup protocol. Sequential consistency Read Your Writes

83 Primary-Based Remote-Write Protocol (cont.) The principle of primary-backup protocol. Sequential consistency Read Your Writes X W3’ Sequential consistency Read Your Writes W3’ X

84 Primary-Based Local Write Protocol Primary copy and backups for each data item Read from local copy Move primary copy to local server and write to it Update backups

85 Primary-Based Local-Write Protocol (cont.) Primary-backup protocol in which the primary migrates to the process wanting to perform an update. Example: Mobile PC  primary server for items to be needed Sequential consistency Read Your Writes

86 Which consistency protocol does DNS (Domain Name System) follows?

87 No Primary Copy  Replicated-Write Protocols Active replication Quorum-based protocol

88 Ordering Guarantees Updates sent from different processes may be delivered in different orders at different sites Totally-ordered multicast Causally-ordered multicast

89 Ordering Guarantees The sequencer approach –All requests must be sent to a sequencer, where they are given an identifier –The sequencer assigns consecutive increasing identifiers as it receives requests –Requests arriving at sites are held back until they are next in sequence

90 Active Replication The problem of replicated invocations.

91 Active Replication (cont.) Forwarding an invocation request from a replicated object. Returning a reply to a replicated object.

92 Network Partitions Primary-based –Remote-write protocol –Local-write protocol Replicated-write protocol –Totally-ordered multicast approach –Sequencer approach None of them work if network is partitioned!

93 Network Partitions Idea? –Use Majority Write Read –Retrieve number of replicas in read quorum –Select the one with the latest version. –Perform a read on it Write –Retrieve number of replicas in write quorum. –Find the latest version and increment it. –Perform a write on the entire write quorum. Well-known Solution: Quorum-Based Protocols

94 Quorum-Based Protocols N: Total #Replicas N R : #Replicas in Read Quorum N W : #Replicas in Write Quorum Constraints: 1.N R + N W > N 2.N W > N/2

95 Quorum-Based Protocols Three examples of the voting algorithm for N = 12 replicas (a) A correct choice of read and write set (b) A choice that may lead to write-write conflicts (c) A correct choice, known as ROWA (read one, write all)


Download ppt "Consistency and Replication Chapter 7. n Most of the lecture notes are based on slides by Prof. Jalal Y. Kawash at Univ. of Calgary n Some notes are based."

Similar presentations


Ads by Google