Concurrent Reading and Writing using Mobile Agents

Document Sample

```					Proof of liveness: an example
0    Clock phase synchronization

1    System of n clocks ticking at the same rate.
Each clock is 3-valued, i,e it ticks as 0, 1, 2, 0, 1, 2…
2
A failure may arbitrarily alter the clock phases.

n-1
Proof of liveness: an example
k: c[k]  {0.1.2}
Clock phase synchronization
{Program for each clock}
(c[k] = phase of clock k, initially arbitrary)               0
do  j: j  N(i) :: c[j] = c[i] +1 mod 3         
c[i] := c[i] + 2 mod 3
1
[]  j: j N(i) :: c[j] ≠ c[i] +1 mod 3         
c[i] := c[i] + 1 mod 3
2
od

3
Show that eventually all clocks will return
to the same phase (convergence), and
continue to be in the same phase (closure)                 n-1
Proof of convergence
Let D = d[0] + d[1] + d[2] + … + d[n-1]
0       1        2              n-1

0       2       2        2       0    d[i] = 0 if no arrow points towards clock i;
= i + 1 if a pointing towards clock i;
n - i if a  pointing towards clock i;
= 1 if both  and point towards
1      1        0       1        1                clock i.

By definition, D    ≥ 0.
2       2        2        2      2        Also, D decreases after every step in
the system. So the number of arrows
must reduce to 0.
Understand the game of arrows
Time and Clock

Primary standard = rotation of earth
De facto primary standard = atomic clock

(1 atomic second = 9,192,631,770 orbital transitions of
Cesium 133 atom.
86400 atomic sec = 1 solar day – 3 ms (requires leap second
correction each year)

Coordinated Universal Time (UTC) = GMT ± number of hours
Global positioning system: GPS

Location and precise time
computed by triangulation

Right now GPS time is nearly
14 seconds ahead of UTC, since
It does not use leap sec. correction

Per the theory of relativity, an
Locally compensate by the

A system of 32 satellites broadcast accurate spatial
corordinates and time maintained by atomic clocks
What does “concurrent” mean?

Simultaneous? Happening at the same time? NO.
There is nothing called simultaneous in the physical world.

Alice
Explosion 2

Explosion 1
Bob
Physical clock synchronization

Question 1.
Why is physical clock synchronization important?

Question 2.
With the price of atomic clocks or GPS coming down,
should we care about physical clock synchronization?
Classification

Types of Synchronization            Types of clocks

Unbounded 0, 1, 2, 3, . . .
 External Synchronization
Bounded 0,1, 2, . . . M-1, 0, 1, . . .
 Internal Synchronization
 Phase Synchronization

Unbounded clocks are not realistic, but are easier to
deal with in the design of algorithms. Real clocks are
always bounded.
Terminologies
What are these?
Drift rate 
Clock skew 
c                       Š                     Resynchronization interval R
l
o                                   clock 1
c
clock 2
k
Max drift rate  implies:
drift rate= 
t
i                                             (1- ) ≤ dC/dt < (1+ )
m
e
Challenges
Newtonian time
R         R                           (Drift is unavoidable)
Accounting for propagation delay
Accounting for processing delay
Faulty clocks
Internal synchronization
Step 1. Read every clock in the system.
Berkeley Algorithm
Step 2. Discard outliers and substitute
them by the value of the local clock.
A simple averaging algorithm
Step 3. Update the clock using the
that guarantees mutual
average of these values.
consistency |c(i) - c(j)| < 
Resynchronization interval will depend on
the drift rate.
Internal synchronization
Lamport and Melliar-Smith’s
Assume n clocks, at most t are faulty
averaging algorithm handles
byzantine clocks too
Step 1. Read every clock in the system.
c                         c-
Step 2. Discard outliers and substitute them by the
i               j
value of the local clock.
Step 3. Update the clock using the average of
c+            c-2            these values.
k
Synchronization is maintained if   n > 3t
A faulty clocks exhibits 2-faced      Why?
or byzantine behavior
Internal synchronization
Lamport & Melliar-Smith’s
algorithm (continued)         The maximum difference between
the averages computed by two
c                       c-   non-faulty nodes is (3t / n)
i             j

To keep the clocks synchronized,
c+          c-2
k
k                         3t/ n < 

So,    3t < n
Cristian’s method
External Synchronization

Client pulls data from a time server
Time
server         every R unit of time, where R <  / 2.
(why?)

For accuracy, clients must compute
the round trip time (RTT), and
compensate for this delay
(Too large RTT’s are rejected)
Network Time Protocol (NTP)
Time    Level 0               - least accurate
server
Level 1
Procedure call
Level 1
Level 1                     - medium accuracy
Peer-to-peer mode
- upper level servers use
this for max accuracy
Level 2

Level 2
Level 2

The tree can reconfigure itself if some node fails.
P2P mode of NTP
Let Q’s time be ahead of P’s time by .
Then

T2        T3
Q                               T2 = T1 + TPQ + 
T4 = T3 + TQP - 

y = TPQ + TQP = T2 +T4 -T1 -T3 (RTT)
P
T1                  T4         = (T2 -T4 -T1 +T3) / 2 - (TPQ - TQP) / 2

x          Between y/2 and -y/2

So, x- y/2 ≤  ≤ x+ y/2

Ping several times, and obtain the smallest value of y. Use it to calculate 
Problems with Clock
1. What problems can occur when a clock value is