Distributed systems work on multiple servers to perform some functionality. The servers are usually located in multiple locations, which makes the system more resistant to failures, since the actions can still be performed, even if one server fails. This property increases the system's reliability since the probability of a system failure in multiple locations simultaneously is much lower. In this thesis, we implement the Raft algorithm in the Go programming language and connect it to the visualization implemented in the browser. Raft guarantees us safe and correct (data is on all servers written in the same order) data replication on multiple servers. The advantage of this algorithm is that it is easier to understand since it has fewer settings than the Paxos algorithm (which implements the same functionality as the Raft algorithm). Therefore, the Raft algorithm is easier to understand and is more suitable for students who encounter distributed systems for the first time. In the visualization, we implement a feature that allows users to set the initial log values on each server, enabling them to configure log values before starting the visualization. This functionality makes it much easier to test the algorithm's edge cases. In the end, we present performance metrics in a production environment that tell us how well our solution performs and if it is usable for solving real-world problems.
|