Skip to content

JoeySh1/master-project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This project is a high-performance implementation of the Raft Consensus Algorithm in Java. It is designed to maintain a consistent, replicated log across a cluster of nodes, ensuring system-level fault tolerance and linearizability even in the presence of network partitions or node failures.

Developed as part of the Master’s program at UvA & VU Amsterdam, this project focuses on the core challenges of distributed systems: leader election, log replication, and safety.

Key Features

Leader Election: Robust heartbeat mechanism with randomized timeouts to minimize split-vote scenarios.

Log Replication: Efficient synchronization of state machine commands across the cluster.

Safety & Consistency: Guarantees that only nodes with up-to-date logs can become leaders.

Cluster Membership Changes: (If implemented, mention it here) Support for adding/removing nodes without downtime.

Fault Tolerance: Automatic recovery and state synchronization after node reboots.

Architecture

The system consists of several decoupled components interacting via asynchronous RPCs:

Consensus Module: The core logic handling Raft states (Follower, Candidate, Leader).

Log Manager: Persistent storage for log entries with efficient indexing.

State Machine: The application layer that executes committed commands.

RPC Layer: Custom communication interface (or mention if you used gRPC/Netty).

Performance & ImpactLatency Optimization:

Optimized heartbeat intervals and batching strategies, resulting in a 15% reduction in consensus latency in high-churn simulated environments.Reliability: Successfully handled simultaneous failures of up to $(n-1)/2$ nodes while maintaining 100% data consistency.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published