内容提要
Databricks通过事件驱动预计算和快照服务重构网络配置系统,将RPC延迟从5000ms降至125ms,可用性达99.99%。系统异步处理上游变更事件,预计算工作区配置并存储,服务时直接读取快照,避免同步调用,显著提升扩展性和效率。
延伸解读
架构转变的核心:预计算与快照服务
文章指出,旧架构在集群创建的关键路径上同步调用多个上游服务,导致延迟高且负载随租户数增长。新架构将管理路径与服务路径分离:管理路径异步处理变更事件,预计算工作区网络配置并存储;服务路径仅需一次存储读取即可返回结果。这种设计将多服务依赖链简化为单一读取,是延迟大幅降低的关键。
事件驱动与最终一致性
新架构采用事件驱动,上游变更通过消息队列触发预计算,但事件可能丢失。为此,系统引入周期性协调器,定期重新同步所有工作区,确保最终一致性。这种设计在高效处理常规变更的同时,提供了安全网,避免因事件遗漏导致配置过期。
可扩展性与未来演进
模块化、分阶段的架构设计使得添加新的上游数据源只需实现新阶段,无需改动核心管道。这为Databricks产品扩展提供了灵活性。随着无服务器计算持续增长,事件驱动架构确保网络配置交付能够同步扩展,满足全球规模的需求。
Q&A
Databricks的网络配置服务在重构前的主要问题是什么?
重构前,每次启动无服务器集群时,网络配置服务会同步调用所有上游服务,聚合响应并计算每个工作区的网络配置。这导致RPC延迟高达5000ms,且随着租户和资源增长,同步调用产生大量重复计算,负载不断增加,难以扩展。
Databricks如何将网络配置的RPC延迟从5000ms降低到125ms?
通过采用事件驱动预计算和快照服务架构。上游服务将变更事件发送到消息队列,事件处理器异步消费事件,预计算每个工作区的网络配置并存储到快照存储中。当集群启动时,直接从快照存储读取配置,无需同步调用上游服务,从而将延迟降至125ms。
Databricks网络配置系统的新架构中,管理路径和提供路径是如何分工的?
管理路径异步运行在后台:上游服务发出变更事件,事件处理器消费事件并确定受影响的工作区,然后事件管理器获取相关细节、重新计算网络配置并存储到快照存储。提供路径则快速且关键:当集群启动时,直接从快照存储读取配置,只需一次存储读取,无需调用上游服务。
在Databricks的新架构中,如果事件丢失或遗漏,如何保证配置的一致性?
通过周期性的协调器(reconciler)在后台重新同步所有工作区,确保即使事件丢失也能最终一致。
Databricks的网络配置系统如何支持新的上游数据源?
新架构采用模块化、阶段式设计,添加新的上游数据源只需实现一个新的阶段,无需更改核心管道,从而易于扩展。
Databricks网络配置系统重构后取得了哪些关键成果?
重构后,系统每天处理数十亿次网络配置请求,RPC延迟从5000ms降至125ms,可用性达到99.99%。