Edge Rewrite
// HTMLRewriter · presentation

This page was redesigned at the edge.

Cloudflare fetched the original article and streamed it through HTMLRewriter to apply an entirely new visual system without rebuilding the source page.

// request.cf · coarse context

A page that knows where it met you.

Only coarse request metadata is shown. This demo does not display or persist visitor IP addresses.

Country
US
Cloudflare location
CMH
Connection
HTTP/2
Language
Not provided

Ray ID: a221e3da5c81b23b

Jump to content

// Workers AI · dad joke modeWhat did Lamport's algorithm say? "I'm locked into conversation.

From Wikipedia, the free encyclopedia

Lamport's Distributed Mutual Exclusion Algorithm is a contention-based algorithm for mutual exclusion on a distributed system.

Algorithm

[edit]

Nodal properties

[edit]
  1. Every process maintains a queue of pending requests for entering critical section in order. The queues are ordered by virtual time stamps derived from Lamport timestamps.[1]

Algorithm

[edit]

Requesting process

  1. Pushing its request in its own queue (ordered by time stamps)
  2. Sending a request to every node.
  3. Waiting for replies from all other nodes.
  4. If own request is at the head of its queue and all replies have been received, enter critical section.
  5. Upon exiting the critical section, remove its request from the queue and send a release message to every process.

Other processes

  1. After receiving a request, pushing the request in its own request queue (ordered by time stamps) and reply with a time stamp.
  2. After receiving release message, remove the corresponding request from its own request queue.

Message complexity

[edit]

This algorithm creates 3(N  1) messages per request, or (N  1) messages and 2 broadcasts. 3(N  1) messages per request includes:

  • (N  1) total number of requests
  • (N  1) total number of replies
  • (N  1) total number of releases

Drawbacks

[edit]

This algorithm has several disadvantages. They are:

  • It is very unreliable as failure of any one of the processes will halt progress.
  • It has a high message complexity of 3(N − 1) messages per entry/exit into the critical section.

See also

[edit]

References

[edit]
  1. Kshemkalyani, A., & Singhal, M. Chapter 9: Distributed Mutual Exclusion Algorithms. Distributed Computing: Principles, Algorithms, and Systems (Page 10 of 93). Cambridge University Press.