介绍一下Zelos。一个利用Delos的ZooKeeper API
Within large-scale services, durable storage, distributed leases, and coordination primitives such as distributed locks, semaphores, and events should be strongly consistent. At Meta, we have historically used Apache ZooKeeper as a centralized service for these primitives.
在大规模服务中,持久存储、分布式租赁和协调基元(如分布式锁、信号灯和事件)应该是强一致性的。在Meta,我们历来使用Apache ZooKeeper作为这些基元的集中式服务。
However, as Meta’s workload has scaled, we’ve found ourselves pushing the limits of ZooKeeper’s capabilities. Modifying and tuning ZooKeeper for performance has become a significant pain point. ZooKeeper, a single, tightly integrated monolithic system, couples much of the application state with its consensus protocol, ZooKeeper atomic broadcast (ZAB). Consequently, extending ZooKeeper to work better at scale has proved extremely difficult despite several ambitious initiatives, including native transparent sharding support, weaker consistency models, persistent watch protocol, and server-side synchronization primitives. This inability to safely improve and scale compelled us to pose the question:
然而,随着Meta工作量的增加,我们发现自己已经突破了ZooKeeper的能力极限。修改和调整ZooKeeper的性能已经成为一个重要的痛点。ZooKeeper是一个单一的、紧密集成的单体系统,它将大部分应用状态与它的共识协议ZooKeeper原子广播(ZAB)结合起来。因此,尽管有一些雄心勃勃的计划,包括原生的透明分片支持、较弱的一致性模型、持久性观察协议和服务器端同步基元,但要扩展ZooKeeper使其更好地工作,已被证明是非常困难的。这种无法安全改进和扩展的情况迫使我们提出了一个问题。
Can we construct a more modular, extensible, and performant variant of ZooKeeper?
我们能否构建一个更加模块化、可扩展、性能更强的ZooKeeper变体?
This led us to construct ZooKeeper on Delos, aka Zelos, which will eventually replace all ZooKeeper clusters in our fleet.
这促使我们建造了ZooKeeper onDelos,又称Zelos,它最终将取代我们舰队中的所有ZooKeeper集群。
Delos makes building strongly consistent distributed applications simple by abstracting away many of the challenges in distributed consensus and state management. It also provides a clean log and a database-based abstraction for application development. Furthermore, as Delos cleanly separates application logic from consensus, it naturally allows the system to grow and evolve.
Delos通过抽象出分布式共识和状态管理中的许多挑战,使建立强一致性的分布式应用变得简单。它还为应用开发提...