https://github.com/disk0dancer/echo-finn-sync
This reposirory contains implementations for syncronisation alghoritms working in multi-node network
https://github.com/disk0dancer/echo-finn-sync
Last synced: about 1 year ago
JSON representation
This reposirory contains implementations for syncronisation alghoritms working in multi-node network
- Host: GitHub
- URL: https://github.com/disk0dancer/echo-finn-sync
- Owner: disk0Dancer
- License: apache-2.0
- Created: 2024-12-12T03:41:28.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-12-23T17:12:24.000Z (over 1 year ago)
- Last Synced: 2025-02-10T16:57:34.179Z (over 1 year ago)
- Language: Python
- Size: 14.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Distributed Algorithms: Echo and Finn
This repository contains implementations of two distributed algorithms: **Echo** and **Finn**, designed for process synchronization in distributed systems.
The communication between processes is facilitated by RabbitMQ, an AMQP-based message broker.
## Algorithms Overview
### 1. Echo Algorithm
- **Purpose**: Synchronization in a tree-like network topology.
- **Description**:
- An initiator sends a message to all neighbors.
- Each node forwards the message to its neighbors (excluding the sender).
- Leaf nodes respond with "echo" messages back to their sender.
- The algorithm terminates when the initiator receives responses from all neighbors.
### 2. Finn Algorithm
- **Purpose**: Synchronization in arbitrary directed networks.
- **Description**:
- Each node maintains two sets: \( Inc \) (predecessors) and \( NInc \) (predecessors of neighbors).
- Messages are exchanged until \( Inc \) equals \( NInc \).
- The algorithm ensures eventual consistency across the network.
---
## Features
- Uses RabbitMQ for inter-process communication.
- Python implementation.
- Modular structure for easy integration and testing.
---
## Prerequisites
- install RabbitMQ
- install UV
- `make echo` - to run echo algorithm
- `make finn` - to run finn algorithm