• No results found

Chapter2distributed

N/A
N/A
Protected

Academic year: 2020

Share "Chapter2distributed"

Copied!
31
0
0

Loading.... (view fulltext now)

Full text

(1)

Ajay Kshemkalyani and Mukesh Singhal

Distributed Computing: Principles, Algorithms, and Systems

(2)

A distributed program is composed of a set ofnasynchronous processes,p1,

p2, ...,pi, ...,pn.

The processes do not share a global memory and communicate solely by passing messages.

The processes do not share a global clock that is instantaneously accessible to these processes.

Process execution and message transfer are asynchronous.

Without loss of generality, we assume that each process is running on a different processor.

LetCij denote the channel from processpi to processpj and letmij denote a

message sent bypi topj.

(3)

The execution of a process consists of a sequential execution of its actions. The actions are atomic and the actions of a process are modeled as three types of events, namely, internal events, message send events, and message receive events.

Letex

i denote the xth event at processpi.

For a messagem, letsend(m) andrec(m) denote its send and receive events,

respectively.

The occurrence of events changes the states of respective processes and channels.

An internal event changes the state of the process at which it occurs. A send event changes the state of the process that sends the message and the state of the channel on which the message is sent.

(4)

The events at a process are linearly ordered by their order of occurrence.

The execution of processpi produces a sequence of events ei1, e

2

i, ...,e x i,

eix+1, ... and is denoted byHi where

Hi = (hi,→i)

hi is the set of events produced bypi and

binary relation→i defines a linear order on these events.

(5)

The send and the receive events signify the flow of information between processes and establish causal dependency from the sender process to the receiver process.

A relation→msg that captures the causal dependency due to message

exchange, is defined as follows. For every messagemthat is exchanged

between two processes, we have

send(m)→msg rec(m).

Relation→msg defines causal dependencies between the pairs of

(6)

The evolution of a distributed execution is depicted by a space-time diagram. A horizontal line represents the progress of the process; a dot indicates an event; a slant arrow indicates a message transfer.

Since we assume that an event execution is atomic (hence, indivisible and instantaneous), it is justified to denote it as a dot on a process line.

In the Figure 2.1, for processp1, the second event is a message send event,

(7)

p

p

p

1 2 3 e e e3 2

1 e1

e1 e1 e1

e2 e2 e2 e2

e2 e 3 e3 e 3

1 2 3 4

1 2 3 4

5 2 3 4 5 6 1 time

(8)

Causal Precedence Relation

The execution of a distributed application results in a set of distributed events produced by the processes.

LetH=∪ihi denote the set of events executed in a distributed computation.

Define a binary relation→on the setH as follows that expresses causal

dependencies between events in the distributed execution.

∀ex i, ∀e

y

j ∈H, e x i → e

y j ⇔            ex i →i e

y

j i.e.,(i=j)∧(x <y)

or ex

i →msg e y j

or ∃ez

k ∈H:e x i →e

z k ∧ e

z k →e

y j

The causal precedence relation induces an irreflexive partial order on the

(9)

. . . Causal Precedence Relation

Note that the relation→is nothing but Lamport’s “happens before” relation.

For any two eventsei andej, ifei→ej, then eventej is directly or

transitively dependent on eventei. (Graphically, it means that there exists a

path consisting of message arrows and process-line segments (along

increasing time) in the space-time diagram that starts atei and ends atej.)

For example, in Figure 2.1,e1

1→e33ande33→e26.

The relation→denotes flow of information in a distributed computation and

ei →ej dictates that all the information available at ei is potentially

accessible atej.

For example, in Figure 2.1, evente26has the knowledge of all other events

(10)

. . . Causal Precedence Relation

For any two eventsei andej,ei6→ej denotes the fact that eventej does not

directly or transitively dependent on eventei. That is, eventei does not

causally affect eventej.

In this case, eventej is not aware of the execution ofei or any event

executed afterei on the same process.

For example, in Figure 2.1,e136→e33ande246→e31. Note the following two rules:

For any two eventsei andej,ei6→ej 6⇒ej 6→ei.

(11)

Concurrent events

For any two eventsei andej, ifei6→ej andej 6→ei,

then eventsei andej are said to be concurrent (denoted asei kej).

In the execution of Figure 2.1,e3

1ke33ande24ke31.

The relationkis not transitive; that is, (ei kej)∧(ej kek)6⇒ei kek.

For example, in Figure 2.1,e33ke24ande24ke15, however,e336ke15.

For any two eventsei andej in a distributed execution,

(12)

Logical vs. Physical Concurrency

In a distributed computation, two events are logically concurrent if and only if they do not causally affect each other.

Physical concurrency, on the other hand, has a connotation that the events occur at the same instant in physical time.

Two or more events may be logically concurrent even though they do not occur at the same instant in physical time.

However, if processor speed and message delays would have been different, the execution of these events could have very well coincided in physical time. Whether a set of logically concurrent events coincide in the physical time or not, does not change the outcome of the computation.

(13)

There are several models of the service provided by communication networks, namely, FIFO, Non-FIFO, and causal ordering.

In the FIFO model, each channel acts as a first-in first-out message queue and thus, message ordering is preserved by a channel.

(14)

The “causal ordering” model is based on Lamport’s “happens before” relation.

A system that supports the causal ordering model satisfies the following property:

CO: For any two messages mij andmkj, if send(mij)−→

send(mkj), then rec(mij)−→rec(mkj).

This property ensures that causally related messages destined to the same destination are delivered in an order that is consistent with their causality relation.

Causally ordered delivery of messages implies FIFO message delivery. (Note

that CO⊂FIFO⊂Non-FIFO.)

(15)

“A collection of the local states of its components, namely, the processes and the communication channels.”

The state of a process is defined by the contents of processor registers, stacks, local memory, etc. and depends on the local context of the distributed application.

The state of channel is given by the set of messages in transit in the channel. The occurrence of events changes the states of respective processes and channels.

An internal event changes the state of the process at which it occurs. A send event changes the state of the process that sends the message and the state of the channel on which the message is sent.

(16)

Notations

LSx

i denotes the state of processpi after the occurrence of eventeix and

before the eventeix+1.

LS0

i denotes the initial state of processpi.

LSx

i is a result of the execution of all the events executed by processpi tilleix.

Letsend(m)≤LSx

i denote the fact that∃y:1≤y≤x :: e

y

i=send(m).

Letrec(m)6≤LSx

i denote the fact that∀y:1≤y≤x :: e

y

(17)

A Channel State

The state of a channel depends upon the states of the processes it connects. LetSCx,y

ij denote the state of a channelCij.

The state of a channel is defined as follows:

SCx,y

ij ={mij|send(mij)≤e x i

V

rec(mij)6≤ejy}

Thus, channel stateSCx,y

ij denotes all messages thatpi sent upto eventeix and

which processpj had not received until evente

(18)

Global State

The global state of a distributed system is a collection of the local states of the processes and the channels.

Notationally, global stateGS is defined as,

GS ={S

iLS xi i ,

S

j,kSC yj,zk jk }

For a global state to be meaningful, the states of all the components of the distributed system must be recorded at the same instant.

(19)

A Consistent Global State

Even if the state of all the components is not recorded at the same instant, such a state will be meaningful provided every message that is recorded as received is also recorded as sent.

Basic idea is that a state should not violate causality – an effect should not be present without its cause. A message cannot be received if it was not sent.

Such states are calledconsistent global statesand are meaningful global

states.

Inconsistent global states are not meaningful in the sense that a distributed system can never be in an inconsistent state.

A global stateGS ={S

iLS xi i ,

S

j,kSC yj,zk

jk } is aconsistent global state iff

∀mij: send(mij)6≤LSixi ⇔ mij6∈SC xi,yj ij

V

rec(mij)6≤LS yj j

That is, channel stateSCyi,zk

ij and process stateLS

zk

j must not include any

(20)

Consider the distributed execution of Figure 2.2.

Figure 2.2: The space-time diagram of a distributed execution.

3

4 1

2

time

e e e

e

e e e e

e e e 12 e e e p p p p

1 1 1 1

2 2 2 2

3 3 3

4 4

1 2 3 4

4 2 3 e1 3 1 3

2 3 4 5

1 2

(21)

In Figure 2.2:

A global stateGS1 ={LS11,LS23,LS33,LS42} is inconsistent

because the state ofp2 has recorded the receipt of messagem12, however,

the state ofp1has not recorded its send.

A global stateGS2 consisting of local states{LS12,LS24,LS34, LS42}

is consistent; all the channels are empty exceptC21 that

(22)

“In the space-time diagram of a distributed computation, acutis a zigzag line joining one arbitrary point on each process line.”

A cut slices the space-time diagram, and thus the set of events in the distributed computation, into a PAST and a FUTURE.

The PAST contains all the events to the left of the cut and the FUTURE contains all the events to the right of the cut.

For a cutC, let PAST(C) and FUTURE(C) denote the set of events in the

PAST and FUTURE ofC, respectively.

(23)

3

4 1

2

time

e e e

e

e e e e

e e 1 e e e e C C p p p p

1 1 1 1

2 2 2 2

3 3 3

4 4

1 2 3 4

4 2 3 e1 3 1 3

2 3 4 5

1 2

(24)

In a consistent cut, every message received in the PAST of the cut was sent

in the PAST of that cut. (In Figure 2.3, cutC2is a consistent cut.)

All messages that cross the cut from the PAST to the FUTURE are in transit in the corresponding consistent global state.

A cut isinconsistentif a message crosses the cut from the FUTURE to the

(25)

Past Cone of an Event

An eventej could have been affected only by all eventsei such thatei→ej .

In this situtaion, all the information available atei could be made accessible

atej.

All such eventsei belong to the past ofej.

LetPast(ej) denote all events in the past ofej in a computation (H,→). Then,

Past(ej) ={ei|∀ei∈H,ei →ej }.

(26)

e j)

j

FUTURE(ej

e

) PAST(

p

i

max(Past (

(27)

LetPasti(ej) be the set of all those events ofPast(ej) that are on processpi.

Pasti(ej) is a totally ordered set, ordered by the relation→i, whose maximal

element is denoted bymax(Pasti(ej)).

max(Pasti(ej)) is the latest event at processpi that affected eventej (Figure

(28)

LetMax Past(ej) =

S

(∀i){max(Pasti(ej))}.

Max Past(ej) consists of the latest event at every process that affected event

ej and is referred to as thesurface of the past coneofej.

Past(ej) represents all events on the past light cone that affectej.

Future Cone of an Event

The future of an eventej, denoted byFuture(ej), contains all eventsei that

are causally affected byej (see Figure 2.4).

In a computation (H,→),Future(ej) is defined as:

(29)

DefineFuturei(ej) as the set of those events ofFuture(ej) that are on process

pi.

definemin(Futurei(ej)) as the first event on processpi that is affected byej.

DefineMin Future(ej) asS(∀i){min(Futurei(ej))}, which consists of the first

event at every process that is causally affected by eventej.

Min Future(ej) is referred to as thesurface of the future coneofej.

All events at a processpi that occurred aftermax(Pasti(ej)) but before

min(Futurei(ej)) are concurrent withej.

Therefore, all and only those events of computationH that belong to the set

(30)

There are two basic models of process communications – synchronous and asynchronous.

Thesynchronouscommunication model is a blocking type where on a

message send, the sender process blocks until the message has been received by the receiver process.

The sender process resumes execution only after it learns that the receiver process has accepted the message.

Thus, the sender and the receiver processes must synchronize to exchange a message. On the other hand,

asynchronouscommunication model is a non-blocking type where the sender

and the receiver do not synchronize to exchange a message.

After having sent a message, the sender process does not wait for the message to be delivered to the receiver process.

(31)

Neither of the communication models is superior to the other.

Asynchronous communication provides higher parallelism because the sender process can execute while the message is in transit to the receiver.

However, A buffer overflow may occur if a process sends a large number of messages in a burst to another process.

Thus, an implementation of asynchronous communication requires more complex buffer management.

In addition, due to higher degree of parallelism and non-determinism, it is much more difficult to design, verify, and implement distributed algorithms for asynchronous communications.

Synchronous communication is simpler to handle and implement.

Figure

Figure 2.1: The space-time diagram of a distributed execution.
Figure 2.2: The space-time diagram of a distributed execution.
Figure 2.3: Illustration of cuts in a distributed execution.
Figure 2.4: Illustration of past and future cones.

References

Related documents

Commercial aircraft programs inventory included the following amounts related to the 747 program: $448 of deferred production costs at December 31, 2011, net of previously

therapy-related and the patient does not receive any therapy for three consecutive calendar days, is the facility required to issue the patient a Notice of Medicare

• Follow up with your employer each reporting period to ensure your hours are reported on a regular basis?. • Discuss your progress with

The purpose of this study was to evaluate the rela- tive performance of 26 public urban transportation organizations in India using various criteria.. We grouped these 19 criteria

4.1 The Select Committee is asked to consider the proposed development of the Customer Service Function, the recommended service delivery option and the investment required8. It

Many pharmacists reported rarely or occasionally using evidence-based resources to find information regarding herbal medicine (64%, median = 3).The median response to the

The planning process should address various workforce imbalances--from geographical to occupational to gender-based--and seek to determine how many workers are needed, what.. type

Marie Laure Suites (Self Catering) Self Catering 14 Mr. Richard Naya Mahe Belombre 2516591 [email protected] 61 Metcalfe Villas Self Catering 6 Ms Loulou Metcalfe