Distributed Systems CS

Slides:



Advertisements
Similar presentations
Synchronization Chapter clock synchronization * 5.2 logical clocks * 5.3 global state * 5.4 election algorithm * 5.5 mutual exclusion * 5.6 distributed.
Advertisements

Distributed Systems Spring 2009
CS 582 / CMPE 481 Distributed Systems
Distributed Systems Fall 2010 Time and synchronization.
Group Communications Group communication: one source process sending a message to a group of processes: Destination is a group rather than a single process.
Synchronization Clock Synchronization Logical Clocks Global State Election Algorithms Mutual Exclusion.
20101 Synchronization in distributed systems A collection of independent computers that appears to its users as a single coherent system.
Distributed Systems CS Synchronization – Part II Lecture 8, Sep 28, 2011 Majd F. Sakr, Vinay Kolar, Mohammad Hammoud.
SynchronizationCS-4513, D-Term Synchronization in Distributed Systems CS-4513 D-Term 2007 (Slides include materials from Operating System Concepts,
Lecture 13 Synchronization (cont). EECE 411: Design of Distributed Software Applications Logistics Last quiz Max: 69 / Median: 52 / Min: 24 In a box outside.
Distributed Systems CS Synchronization – Part III Lecture 9, Oct 3, 2011 Majd F. Sakr, Vinay Kolar, Mohammad Hammoud.
Synchronization in Distributed Systems CS-4513 D-term Synchronization in Distributed Systems CS-4513 Distributed Computing Systems (Slides include.
EEC-681/781 Distributed Computing Systems Lecture 11 Wenbing Zhao Cleveland State University.
EEC-681/781 Distributed Computing Systems Lecture 10 Wenbing Zhao Cleveland State University.
Lecture 12 Synchronization. EECE 411: Design of Distributed Software Applications Summary so far … A distributed system is: a collection of independent.
Lecture 9: Time & Clocks CDK4: Sections 11.1 – 11.4 CDK5: Sections 14.1 – 14.4 TVS: Sections 6.1 – 6.2 Topics: Synchronization Logical time (Lamport) Vector.
Time, Clocks, and the Ordering of Events in a Distributed System Leslie Lamport (1978) Presented by: Yoav Kantor.
Logical Clocks (2). Topics r Logical clocks r Totally-Ordered Multicasting r Vector timestamps.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
1DT066 D ISTRIBUTED I NFORMATION S YSTEM Time, Coordination and Agreement 1.
© Oxford University Press 2011 DISTRIBUTED COMPUTING Sunita Mahajan Sunita Mahajan, Principal, Institute of Computer Science, MET League of Colleges, Mumbai.
Distributed Systems CS Synchronization – Part III Lecture 12, Oct 1, 2014 Mohammad Hammoud.
Computer Science Lecture 10, page 1 CS677: Distributed OS Last Class: Naming Name distribution: use hierarchies DNS X.500 and LDAP.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Vector Clock Each process maintains an array of clocks –vc.j.k denotes the knowledge that j has about the clock of k –vc.j.j, thus, denotes the clock of.
Synchronization Chapter 5.
Communication & Synchronization Why do processes communicate in DS? –To exchange messages –To synchronize processes Why do processes synchronize in DS?
Event Ordering Greg Bilodeau CS 5204 November 3, 2009.
1 Clock Synchronization & Mutual Exclusion in Distributed Operating Systems Brett O’Neill CSE 8343 – Group A6.
Time This powerpoint presentation has been adapted from: 1) sApr20.ppt.
CIS825 Lecture 2. Model Processors Communication medium.
Distributed Systems CS Synchronization – Part I Lecture 8, Sep 23, 2013 Mohammad Hammoud.
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
Distributed Systems Topic 5: Time, Coordination and Agreement
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Page 1 Mutual Exclusion & Election Algorithms Paul Krzyzanowski Distributed Systems Except as otherwise noted, the content.
6 SYNCHRONIZATION. introduction processes synchronize –exclusive access. –agree on the ordering of events much more difficult compared to synchronization.
COMP 655: Distributed/Operating Systems Summer 2011 Dr. Chunbo Chu Week 6: Synchronyzation 3/5/20161 Distributed Systems - COMP 655.
Topic 7: Time and Global State Dr. Ayman Srour Faculty of Applied Engineering and Urban Planning University of Palestine.
Ordering of Events in Distributed Systems UNIVERSITY of WISCONSIN-MADISON Computer Sciences Department CS 739 Distributed Systems Andrea C. Arpaci-Dusseau.
Distributed Systems CS
Prof. Leonardo Mostarda University of Camerino
Distributed Computing
Distributed Systems CS
Time and Global States Ali Fanian Isfahan University of Technology
Distributed Systems CS
CSC 8320 Advanced Operating System
SYNCHORNIZATION Logical Clocks.
Logical time (Lamport)
Distributed Systems CS
Distributed Systems CS
Distributed Systems CS
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
Distributed Systems CS
Distributed Systems CS
Distributed Systems CS
Distributed Systems CS
Lecture 10: Coordination and Agreement
Distributed Systems CS
Chapter 5 (through section 5.4)
CDK: Sections 11.1 – 11.4 TVS: Sections 6.1 – 6.2
Logical time (Lamport)
Distributed Systems CS
Lecture 11: Coordination and Agreement
Logical time (Lamport)
Logical time (Lamport)
Last Class: Naming Name distribution: use hierarchies DNS
Outline Theoretical Foundations
Presentation transcript:

Distributed Systems CS 15-440 Synchronization – Part II Lecture 9, Sep 25, 2013 Mohammad Hammoud

Today… Last Session: Today’s Session: Announcements: Naming (Cont’d): Distributed Resolution Mechanisms and Attribute-based Naming Synchronization: UTC, tracking time on a computer, physical clock synchronization (Cristian’s and Berkeley algorithms) Today’s Session: Physical Clock Synchronization (Cont’d): NTP Logical Clock Synchronization Lamport’s and Vector Clocks Mutual Exclusion: A Centralized Algorithm Announcements: Project 1 is due today by midnight Project 2 (P2) and Assignment 2 will be posted by tonight Tomorrow’s recitation will cover the design and requirements of P2

Where do We Stand in Synchronization Chapter? Previous lecture Time Synchronization Physical Clock Synchronization (or, simply, Clock Synchronization) Here, actual time on the computers are synchronized Logical Clock Synchronization Computers are synchronized based on the relative ordering of events Mutual Exclusion How to coordinate between processes that access the same resource? Election Algorithms Here, a group of entities elect one entity as the coordinator for solving a problem Today’s lecture Next lecture

Types of Time Synchronization Computer 1 02 Computer 1 02 03 01 00 00 01 Computer 2 Computer 2 03 02 01 00 Logical Clocks are synchronized over the network only when an event occurs Computer 3 Computer 3 Clocks are synchronized over the network 01 03 02 00 Computer 4 Computer 4 01 02 00 03 Clock-based Time Synchronization Event-based Time Synchronization

Overview Time Synchronization Mutual Exclusion Election Algorithms Clock Synchronization Logical Clock Synchronization Mutual Exclusion Election Algorithms

Clock Synchronization Coordinated Universal Time Tracking Time on a Computer Clock Synchronization Algorithms Cristian’s Algorithm Berkeley Algorithm Network Time Protocol

Network Time Protocol (NTP) NTP defines an architecture for a time service and a protocol to distribute time information over the Internet In NTP, servers are connected in a logical hierarchy called synchronization subnet The levels of synchronization subnets are called strata Stratum 1 servers have most accurate time information (connected to a UTC receiver) Servers in each stratum act as time servers to the servers in the lower stratum

Hierarchical organization of NTP Servers This stratum contains the primary servers that are directly connected to the UTC receivers Stratum 1 Stratum 2 are secondary servers that are synchronized directly with primary servers Stratum 2 Stratum 3 synchronizes with Stratum 2 servers Stratum 3 End user computers synchronize with the servers in the upper layer stratum Last stratum More accurate time

Operation of NTP Protocol When a time server A contacts time server B for synchronization If stratum(A) <= stratum(B), then A does not synchronize with B If stratum(A) > stratum(B), then: Time server A synchronizes with B An algorithm similar to Cristian’s algorithm is used to synchronize. However, larger statistical samples are taken before updating the clock Time server A updates its stratum stratum(A) = stratum(B) + 1

Discussion of NTP Design NTP enables clients across the Internet to be synchronized accurately to the UTC Large and variable message delays are tolerated through statistical filtering of timing data from different servers Accurate synchronization to UTC time NTP servers are hierarchically organized to speed up synchronization, and to scale to a large number of clients and servers Scalability There are redundant time servers, and redundant paths between the time servers The architecture provides reliable service that can tolerate lengthy losses of connectivity A synchronization subnet can reconfigure as servers become unreachable. For example, if Stratum 1 server fails, then it can become a Stratum 2 secondary server Reliability and Fault-tolerance NTP protocol uses authentication to check of the timing message originated from the claimed trusted sources Security

Summary of Clock Synchronization Physical clocks on computers are not accurate Clock synchronization algorithms provide mechanisms to synchronize clocks on networked computers in a DS Computers on a local network use various algorithms for synchronization Some algorithms (e.g, Cristian’s algorithm) synchronize time by contacting centralized time servers Some algorithms (e.g., Berkeley algorithm) synchronize in a distributed manner by exchanging the time information on various computers NTP provides architecture and protocol for time synchronization over wide-area networks such as the Internet

Overview Time Synchronization Mutual Exclusion Election Algorithms Clock Synchronization Logical Clock Synchronization Mutual Exclusion Election Algorithms

Why Logical Clocks? Lamport (in 1978) showed that: Clock synchronization is not necessary in all scenarios If two processes do not interact, it is not necessary that their clocks are synchronized Many times, it is sufficient if processes agree on the order in which the events has occurred in a DS For example, for a distributed make utility, it is sufficient to know if an input file was modified before or after its object file

Logical Clocks Logical clocks are used to define an order of events without measuring the physical time at which the events occurred We will study two types of logical clocks Lamport’s Logical Clock (or simply, Lamport’s Clock) Vector Clock

Logical Clocks We will study two types of logical clocks Lamport’s Clock Vector Clock

Lamport’s Logical Clock Lamport advocated maintaining logical clocks at the processes to keep track of the order of events To synchronize logical clocks, Lamport defined a relation called “happened-before” The expression ab (reads as “a happened before b”) means that all entities in a DS agree that event a occurred before event b

The Happened-before Relation The happened-before relation can be observed directly in two situations: If a and b are events in the same process, and a occurs before b, then ab is true If a is an event of message m being sent by a process, and b is the event of m being received by another process, then ab is true. The happened-before relation is transitive If ab and bc, then ac

Time values in Logical Clocks For every event a, assign a logical time value C(a) on which all processes agree Time value for events have the property that If ab, then C(a)< C(b)

Properties of Logical Clock From happened-before relation, we can infer that: If two events a and b occur within the same process and ab, then C(a) and C(b) are assigned time values such that C(a) < C(b) If a is the event of sending the message m from one process, and b is the event of receiving m, then the time values C(a) and C(b) are assigned in a way such that all processes agree that C(a) < C(b) The clock time C must always go forward (increasing), and never backward (decreasing)

Synchronizing Logical Clocks P1 P2 P3 Three processes P1, P2 and P3 running at different rates If the processes communicate between each other, there might be discrepancies in agreeing on the event ordering Ordering of sending and receiving messages m1 and m2 are correct However, m3 and m4 violate the happened-before relationship m1 6 8 10 12 16 20 m2 18 24 30 24 32 40 x 30 40 50 36 48 m3 60 x 42 56 70 48 m4 64 80 54 72 90 60 80 100

Lamport’s Clock Algorithm When a message is being sent: Each message carries a timestamp according to the sender’s logical clock When a message is received: If the receiver logical clock is less than message sending time in the packet, then adjust the receiver’s clock such that currentTime = timestamp + 1 6 8 10 12 16 20 18 24 30 24 32 40 30 40 50 m3:60 36 48 60 42 61 56 70 m4:69 48 69 64 80 54 54 70 77 72 90 60 76 80 85 100

Logical Clock Without a Physical Clock Previous examples assumed that there is a physical clock at each computer (probably running at different rates) How to attach a time value to an event when there is no global clock?

Implementation of Lamport’s Clock Each process Pi maintains a local counter Ci and adjusts this counter according to the following rules: For any two successive events that take place within Pi, Ci is incremented by 1 Each time a message m is sent by process Pi , m is assigned a timestamp ts(m) = Ci Whenever a message m is received by a process Pj, Pj adjusts its local counter Cj to max(Cj, ts(m)) + 1 C0=0 C0=1 C0=2 P0 m:2 C1=0 C1=3 P1 C2=0 P2

Placement of Logical Clock In a computer, several processes use Logical Clocks Similar to how several processes on a computer use one physical clock Instead of each process maintaining its own Logical Clock, Logical Clocks can be implemented as a middleware for time service Application sends a message Message is delivered to the application Application layer Adjust local clock and timestamp message Adjust local clock Middleware layer Network layer Middleware sends a message Message is received

Limitation of Lamport’s Clock Lamport’s Clock ensures that if ab, then C(a) < C(b) However, it does not say anything about any two arbitrary events a and b by only comparing their time values For any two arbitrary events a and b, C(a) < C(b) does not mean that ab Example: P1 P2 P3 Compare m1 and m3 m1:6 6 8 10 m2:20 P2 can infer that m1m3 12 16 20 18 24 30 m3:32 24 32 40 Compare m1 and m2 30 40 50 P2 cannot infer that m1m2 or m2m1 36 48 60 42 61 56 70 48 64 80 54 54 72 90 60 80 100

Summary of Lamport’s Clock Lamport advocated using logical clocks Processes synchronize based on the time values of their logical clocks rather than the absolute time values of their physical clocks Which applications in DS need logical clocks? Applications with provable ordering of events Perfect physical clock synchronization is hard to achieve in practice. Hence we cannot provably order the events Applications with rare events Events are rarely generated, and physical clock synchronization overhead is not justified However, Lamport’s clock cannot guarantee perfect ordering of events by just observing the time values of two arbitrary events

Logical Clocks We will study two types of logical clocks Lamport’s Clock Vector Clocks

Vector Clocks Vector Clocks was proposed to overcome the limitation of Lamport’s clock (i.e., C(a)< C(b) does not mean that ab) The property of inferring that a occurred before b is known as the causality property A Vector clock for a system of N processes is an array of N integers Every process Pi stores its own vector clock VCi Lamport’s time values for events are stored in VCi VCi(a) is assigned to an event a If VCi(a) < VCi(b), then we can infer that ab (or more precisely, that event a causally precedes event b)

Updating Vector Clocks Vector clocks are constructed by the following two properties: VCi[i] is the number of events that have occurred at process Pi so far VCi[i] is the local logical clock at process Pi If VCi[j]= k, then Pi knows that k events have occurred at Pj VCi[j] is Pi’s knowledge of the local time at Pj Increment VCi whenever a new event occurs Pass VCj along with the message

Vector Clock Update Algorithm Whenever there is a new event at Pi, increment VCi[i] When a process Pi sends a message m to Pj: Increment VCi[i] Set m’s timestamp ts(m) to the vector VCi When message m is received process Pj : VCj[k] = max(VCj[k], ts(m)[k]) ; (for all k) Increment VCj[j] VC0=(0,0,0) VC0=(1,0,0) VC0=(2,0,0) P0 m:(2,0,0) VC1=(0,0,0) VC1=(2,1,0) P1 VC2=(0,0,0) P2

Inferring Events with Vector Clocks Let a process Pi send a message m to Pj with timestamp ts(m), then: Pj knows the number of events at the sender Pi that causally precede m (ts(m)[i] – 1) denotes the number of events at Pi Pj also knows the minimum number of events at other processes Pk that causally precede m (ts(m)[k] – 1) denotes the minimum number of events at Pk VC0=(0,0,0) VC0=(1,0,0) VC0=(2,0,0) P0 m:(2,0,0) VC1=(0,0,0) VC1=(0,1,0) VC1=(2,2,0) VC1=(2,3,0) P1 m’:(2,3,0) VC2=(0,0,0) VC2=(2,3,1) P2

Enforcing Causal Communication Assume that messages are multicast within a group of processes, P0, P1 and P2 To enforce causally-ordered multicasting, the delivery of a message m sent from Pi to Pj can be delayed until the following two conditions are met: ts(m)[i] = VCj[i] + 1 (Condition I) ts(m)[k] <= VCj[k] for all k != i (Condition II) Assuming that Pi only increments VCi[i] upon sending m and adjusts VCi[k] to max{VCi[k], ts(m)[k]} for each k upon receiving a message m’ VC0=(0,0,0) VC0=(1,0,0) VC0=(1,1,0) P0 m:(1,0,0) m:(1,1,0) VC1=(0,0,0) VC1=(1,0,0) VC1=(1,1,0) P1 VC2=(0,0,0) VC2=(1,0,0) VC2=(1,1,0) P2 VC2=(1,1,0) Condition II does not hold  Delay delivery

Summary – Logical Clocks Logical Clocks are employed when processes have to agree on relative ordering of events, but not necessarily actual time of events Two types of Logical Clocks Lamport’s Logical Clocks Supports relative ordering of events across different processes by using the happened-before relationship Vector Clocks Supports causal ordering of events

Overview Time Synchronization Mutual Exclusion Election Algorithms Clock Synchronization Logical Clock Synchronization Mutual Exclusion Election Algorithms

Need for Mutual Exclusion Distributed processes need to coordinate to access shared resources Example: Writing a file in a Distributed File System Client A Server Client C Read from file abc.txt Write to file abc.txt P1 P3 Distributed File abc.txt Client B P2 Write to file abc.txt In uniprocessor systems, mutual exclusion to a shared resource is provided through shared variables or operating system support. However, such support is insufficient to enable mutual exclusion of distributed entities In Distributed System, processes coordinate access to a shared resource by passing messages to enforce distributed mutual exclusion

Types of Distributed Mutual Exclusion Mutual exclusion algorithms are classified into two categories Permission-based Approaches A process, which wants to access a shared resource, requests the permission from one or more coordinators Token-based Approaches Each shared resource has a token Token is circulated among all the processes A process can access the resource if it has the token Request to access Coordinator C1 Client 1 Grant P1 Server Access Resource Server Resource Access Access Access Client 1 Client 2 Client 3 P1 P2 P3 Token Token Token

Overview Time Synchronization Mutual Exclusion Election Algorithms Clock Synchronization Logical Clock Synchronization Mutual Exclusion Permission-based Approaches Token-based Approaches Election Algorithms

Permission-based Approaches There are two types of permission-based mutual exclusion algorithms Centralized Algorithms Decentralized Algorithms We will study an example of each type of algorithms

a. A Centralized Algorithm One process is elected as a coordinator (C) for a shared resource Coordinator maintains a Queue of access requests Whenever a process wants to access the resource, it sends a request message to the coordinator to access the resource When the coordinator receives the request: If no other process is currently accessing the resource, it grants the permission to the process by sending a “grant” message If another process is accessing the resource, the coordinator queues the request, and does not reply to the request The process releases the exclusive access after accessing the resource The coordinator will then send the “grant” message to the next process in the queue P0 P1 P2 Rel Req Grant Access Req Grant Access Resource C P2 P1 Queue

Discussion about Centralized Algorithm Blocking vs. Non-blocking Requests The coordinator can block the requesting process until the resource is free Otherwise, the coordinator can send a “permission-denied” message back to the process The process can poll the coordinator at a later time, or The coordinator queues the request. Once the resource is released, the coordinator will send an explicit “grant” message to the process The algorithm guarantees mutual exclusion, and is simple to implement Fault-Tolerance: Centralized algorithm is vulnerable to a single-point of failure (at coordinator) Processes cannot distinguish between dead coordinator and request blocking Performance Bottleneck: In a large system, single coordinator can be overwhelmed with requests

Next Class Mutual Exclusion Election Algorithms How to coordinate between processes that access the same resource? Election Algorithms Here, a group of entities elect one entity as the coordinator for solving a problem

References http://en.wikipedia.org/wiki/Causality