Scalability is a crucial requirement for modern large-scale systems, enabling elasticity and ensuring responsiveness under varying load. While cloud systems have achieved scalable architectures, blockchain systems remain constrained by the need to over-provision validator machines to handle peak load. This leads to resource inefficiency, poor cost scaling, and limits on performance. To address these challenges, we introduce Pilotfish, the first scale-out transaction execution engine for blockchains. Pilotfish enables validators to scale horizontally by distributing transaction execution across multiple worker machines, allowing elasticity without compromising consistency or determinism. It integrates seamlessly with the lazy blockchain architecture, completing the missing piece of execution elasticity. To achieve this, Pilotfish tackles several key challenges: ensuring scalable and strongly consistent distributed transactions, handling partial crash recovery with lightweight replication, and maintaining concurrency with a novel versioned-queue scheduling algorithm. Our evaluation shows that Pilotfish scales linearly up to at least eight workers per validator for compute-bound workloads, while maintaining low latency. By solving scalable execution, Pilotfish brings blockchains closer to achieving end-to-end elasticity, unlocking new possibilities for efficient and adaptable blockchain systems.
翻译:可扩展性是现代大规模系统的关键需求,它能够实现弹性伸缩并确保在不同负载下的响应能力。尽管云系统已实现可扩展架构,区块链系统仍受限于需过度配置验证节点以应对峰值负载的约束。这导致资源效率低下、成本扩展性差以及性能受限。为应对这些挑战,我们提出了Pilotfish——首个面向区块链的横向扩展交易执行引擎。Pilotfish通过将交易执行分布至多个工作节点,使验证节点能够实现水平扩展,从而在不影响一致性或确定性的前提下实现弹性伸缩。该系统与惰性区块链架构无缝集成,补全了执行弹性缺失的关键环节。为实现这一目标,Pilotfish攻克了若干核心难题:确保可扩展且强一致性的分布式交易处理,通过轻量级复制机制实现部分崩溃恢复,以及采用创新的版本化队列调度算法维持并发执行。评估结果表明,对于计算密集型工作负载,Pilotfish在每个验证节点配备至少八个工作节点时仍能保持线性扩展,同时维持低延迟特性。通过解决可扩展执行问题,Pilotfish推动区块链系统更接近实现端到端弹性,为高效适配的区块链体系开辟了新的可能性。