Systems that provide Byzantine Fault Tolerance (BFT) can make progress and remain correct even in the face of malicious nodes, not only benign failures. Extending distributed data management systems with BFT capabilities is desirable but has traditionally incurred significant performance overhead. This overhead comes from the high communication and computation complexity of BFT coordination algorithms and has lead to slow adoption in practice.
In our research we explore ways of reducing the performance overhead of BFT guarantees in distributed data systems. Our exploration runs on two threads. First, we are making BFT more efficient on modern server hardware, using multi-core CPUs, network cards, etc., to their full capabilities in these algorithms. Second, we are co-designing applications and BFT protocols, making execution overall more efficient, for instance, by sharing data structures across different aspects of the code.