Flamingo improves load balancing for faster dag consensus protocols

Flamingo: On Load Balancing in DAG-based Consensus Protocols

Distributed, Parallel, and Cluster ComputingDatabases

Summary

Consensus protocols help multiple computers agree on shared data even if some are faulty or malicious. The authors explain that current DAG-based consensus methods can slow down when some computers get too much work or have different speeds. Flamingo is a new technique that moves tasks between computers to keep workload balanced at two key stages, helping maintain speed and reliability. Their tests show Flamingo improves performance without adding noticeable delays.

What this means in practice

  • For blockchain platform engineers: Maintain high throughput and low latency in blockchain systems with uneven transaction loads or varying validator nodes by balancing tasks during transaction ordering and execution.
  • For distributed database operators: Optimize load distribution across database nodes to improve performance under skewed data submission and different node capacities without centralized coordination.

Authors

Zhen Ping Khor, Garvit Gupta, Mohammad Javad Amiri, Boon Thau Loo

Abstract

Distributed data management systems deployed in untrusted environments rely on Byzantine Fault-Tolerant (BFT) consensus protocols to tolerate malicious failures. DAG-based BFT protocols improve throughput by letting validators disseminate transactions concurrently and by scaling execution across multiple workers. However, imbalances in workload or resource capacity can still degrade performance significantly. This paper presents Flamingo, a load-balancing protocol for certified DAG-based BFT protocols that addresses imbalance at both the ordering and execution layers. At the ordering layer, Flamingo periodically migrates client accounts away from overloaded validators, adapting to skewed submissions and heterogeneous validator capacity while preserving correctness under Byzantine faults, with migrations taking effect only through the committed log. At the execution layer, Flamingo redistributes committed transactions across executor workers using a deterministic, order-preserving scheduler that balances load and minimizes cross-worker data movement, without centralized coordination or costly distributed commit. Built on top of Narwhal and Tusk, our prototype shows that Flamingo recovers throughput and latency under workload skew, validator heterogeneity, and shifting hotspots, adds negligible overhead when the system is balanced, and needs load balancing in both layers, since resolving only one shifts the bottleneck to the other.