Low-level project using a shared database, election algorithms and collision detection.
This project implements a fully decentralized distributed system where multiple types of nodes collaborate to collect, verify, and use data across different sites. The system models a real-world scenario where devices collect sensor data, verify its accuracy, and produce predictions, while ensuring correct coordination and consistency across geographically separate nodes.
This project was a great opportunity to learn about distributed systems, election algorithms, snapshots, collision detection and how to use logical clocks to ensure consistency between replicas. The core idea is that sensors might give erroneous data, perturbating the users. Thus, verifier systems are integrated to update, slowly, each data point one after the other. The goal is to observe the impact of verifier parameters on user behaviors.
The system uses a decentralized architecture with no centralized database, where each node maintains and updates its own local replica. To ensure replica consistency, nodes coordinate through a distributed queue that employs logical clocks to serialize all updates. For shared data management, nodes focus on a sliding window of the latest 15 days of temperature readings. Peer-to-peer communication allows direct messaging between nodes to propagate updates and coordinate actions efficiently.