Distributed_Mutual_Exclusion

module
v0.0.0-...-172e57d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 16, 2021 License: MIT

README

Distributed_Mutual_Exclusion

How to run

in seperate terminals, run a server and as many clients you want (less than 10 is recomended)

server: go run .\Server\

client: go run .\Client\ -sender [name]

Description:

You have to implement distributed mutual exclusion between nodes in your distributed system.

You can choose to implement any of the algorithms, that were discussed in lecture 7.

System Requirements:

R1: Any node can at any time decide it wants access to the Critical Section

R2: Only one node at the same time is allowed to enter the Critical Section

R2: Every node that requests access to the Critical Section, will get access to the Critical Section (at some point in time)

Technical Requirements:

Use Golang to implement the service's nodes Use gRPC for message passing between nodes Your nodes need to find each other. For service discovery, you can choose one of the following options supply a file with ip addresses/ports of other nodes enter ip adress/ports trough command line use the Serf package for service discovery Demonstrate that the system can be started with at least 3 nodes Demonstrate using logs, that a node gets access to the Critical Section

Hand-in requirements:

Hand in a single report in a pdf file Provide a link to a Git repo with your source code in the report Include system logs, that document the requirements are met, in the appendix of your report

Grading notes

Partial implementations may be accepted, if the students can reason what they should have done in the report.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL