Priyam Saikia (UFID **** ****)
Implement node and failure model for gossip and/or push-sum algorithm. The analysis should be controlled by a parameter.
Elixir Mix project is required to be installed.
Files of importance in the zipped folder (in order of call):
go.exs -> Commandline entry module
gossip_protocol.ex -> Main Module
Client.ex -> Client Module
Server.ex -> Server Module
To run a test case, do:
- Unzip contents to your desired elixir project folder and open cmd from there.
- Use "mix run go.exs " in commandline without quotes to run test case.
- The run terminates when the algorithm converges (details in report).
- The result provides the amount to which the algorithm spreads to despite the failure in nodes.
- Topologies can be: torus | 3D | rand2D | impLine | line | full
- Algorithm can be: gossip | push-sum
Examples:
-
C:\Users\PSaikia\Documents\Elixir\kv\gossip_protocol_bonus>mix run go.exs 2000 rand2D gossip 10
Running Gossip algorithm
Implementing random 2D topology
"Spread is 93.9 %"
Failed Nodes: 200
-
C:\Users\PSaikia\Documents\Elixir\kv\gossip_protocol_bonus>mix run go.exs 700 3D push-sum 30
Running Push-Sum algorithm
Implementing 3D topology
"Spread is 67.57142857142857 %"
Failed Nodes: 210
Convergence of the below two algorithms with node failure handling are working: 1. Gossip 2. Push Sum
And the algorithms are converging for all the below network topologies:
1. Full
2. 3D Grid
3. Random 2D Grid
4. Torus
5. Line
6. Imperfect Line
Largest network tested:
For Gossip Algorithm
- Full - 7000
- 3D Grid - 50,000
- Random 2D Grid - 50,000
- Torus - 50,000
- Line - 7000
- Imperfect Line - 50,000
For Push-sum Algorithm
- Full - 2500
- 3D Grid - 5000
- Random 2D Grid - 5000
- Torus - 5000
- Line - 5000
- Imperfect Line - 5000