The consensus problem plays a vital role in managing data consistency among nodes in distributed systems. According to application scenarios, consensus algorithms typically operate under benign failures (Crash Fault Tolerance (CFT)) and Byzantine failures (Byzantine Fault Tolerance (BFT)).
This thesis proposes two approaches, Cabinet and PrestigeBFT, to improve the efficiency of replication consensus under CFT and view-change consensus under BFT, respectively. Specifically, Cabinet introduces weighted consensus to achieve fast agreement under CFT by offering users customized failure thresholds. It assigns distinct weights to nodes and dynamically adjusts weights according to node responsiveness, prioritizing faster nodes in the consensus process. The adaptive weight allocation maintains the system at optimal performance, especially in large-scale and heterogeneous systems where node responsiveness varies. Our evaluation results show that Cabinet outperformed Raft by 3x to 6x in throughput and latency under YCSB and TPC-C workloads under increasing system scales, complex networks, and failures in both homogeneous and heterogeneous clusters, offering a promising high-performance consensus solution.
In addition, PrestigeBFT introduces a novel leader-based BFT consensus algorithm that addresses the weaknesses of passive view-change protocols. PrestigeBFT proposes an active view-change protocol using reputation mechanisms that calculate a server's potential correctness based on historic behavior. The active protocol enables servers to campaign for leadership by performing reputation-associated work. As such, up-to-date and correct servers with good reputations are more likely to be elected as leaders as they perform less work, whereas faulty servers with bad reputations are suppressed from becoming leaders by being required to perform more work. Compared with state-of-the-art BFT view change protocols, PrestigeBFT remains unaffected under benign faults and experiences only a 24% drop in throughput under a variety of Byzantine faults, offering a highly available and robust solution to leadership changes.