You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This project is a simulation of various distributed computing algorithms implemented in Scala using the Akka framework.
3
+
This project is a simulation of various distributed computing algorithms implemented in Scala using the Akka framework. We use lightbend telemetry to monitor the performance of the simulation. The project includes the following features:
4
+
- Automated simulation of distributed algorithms based on a simulation plan
5
+
- Support for message-passing and shared memory algorithms
6
+
- Integration with Lightbend Telemetry for monitoring the performance of the simulation
7
+
- Visualization of the simulation results using Lightbend Telemetry on Prometheus and Grafana
Before you begin, ensure you have met the following requirements:
16
-
- You have installed version 17 of [Java](https://www.oracle.com/java/technologies/javase-jdk17-downloads.html), [Scala](https://www.scala-lang.org/download/), and [sbt](https://www.scala-sbt.org/download.html).
18
+
- You have installed version 17 of [Java](https://www.oracle.com/java/technologies/javase-jdk17-downloads.html), supported version of [Scala](https://www.scala-lang.org/download/), and [sbt](https://www.scala-sbt.org/download.html).
17
19
18
20
19
21
## Setting Up and Running the Project
@@ -32,6 +34,10 @@ This project includes both unit tests and integration tests. To run them, use th
- Test cases for all algorithms (Integration Testing Based on Log Analysis). Directory [`src/test/scala/com/distcomp/mutex`](src/test/scala/com/distcomp/mutex).
@@ -74,21 +80,12 @@ sbt clean compile test
74
80
- Test and Test and Set Lock Algorithm
75
81
- Uses a custom actor for maintianing shared memory (Test and Test and Set Shared Mem Actor)
76
82
77
-
#### [Simulation Plan](./mutexsimplan.json)
78
-
79
-
1. Ricart Agarwal
80
-
2. Ricart Agarwal Carvalho Extension
81
-
3. Raymonds Algorithm
82
-
4. Agrawal El Abbadi
83
-
5. Peterson's Algorithm (Tournament for N Processes) 26 Processes
84
-
6. Peterson's Algorithm (Tournament for N Processes) 8 Processes
85
-
7. Peterson's Algorithm (Two Process)
86
-
8. Bakery Algorithm
87
-
9. Test and Set Lock Algorithm
88
-
10. Test and Test and Set Lock Algorithm
83
+
> [Simulation Plan](./mutexsimplan.json)
89
84
90
85
91
86
### Telemetry
92
87
93
-

88
+
The below image shows the telemetry data for the simulation run with the `mutexsimplan.json` simulation plan.
Copy file name to clipboardExpand all lines: docs/MutexAlgorithms.md
+15Lines changed: 15 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,6 +7,8 @@ This document provides a detailed explanation of the mutex algorithms implemente
7
7
The mutex module in this project implements various mutual exclusion algorithms. These algorithms are used to prevent concurrent processes from accessing shared resources simultaneously, thus avoiding potential conflicts or inconsistencies.
8
8
All the algorithms implemented from the mutual exclusion chapter of the textbook ["Distributed Algorithms, Second Edition An Intuitive Approach, W Fokik"](https://mitpress.mit.edu/9780262037662/distributed-algorithms/) which provides an intuitive approach to learning them by summarising and elaborating on individual paper.
9
9
10
+
11
+
10
12
## Algorithms Implemented
11
13
12
14
The following algorithms are implemented in this project:
@@ -20,6 +22,19 @@ The following algorithms are implemented in this project:
20
22
8. Test and Set Lock Algorithm
21
23
9. Test and Test and Set Lock Algorithm
22
24
25
+
### [Simulation Plan](../mutexsimplan.json)
26
+
27
+
1. Ricart Agarwal
28
+
2. Ricart Agarwal Carvalho Extension
29
+
3. Raymonds Algorithm
30
+
4. Agrawal El Abbadi
31
+
5. Peterson's Algorithm (Tournament for N Processes) 26 Processes
32
+
6. Peterson's Algorithm (Tournament for N Processes) 8 Processes
0 commit comments