Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: 10 days 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 (17 days ago)
- Default Branch: main
- Last Pushed: 2024-12-12T14:01:41.000Z (16 days ago)
- Last Synced: 2024-12-12T14:24:36.397Z (16 days ago)
- Language: Python
- Size: 13.7 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