BestBlogs.dev

Databricks 的高性能速率限制 (opens in new tab)

📌 One-Sentence Summary Databricks 通过将计数器从 Redis 迁移到分片内存存储,并采用异步批量上报模式,重新设计了速率限制器,在容忍约 5% 精度超限的代价下,将尾部延迟降低了十倍。 📝 Summary 本文详细介绍了 Databricks 如何重建其速率限制基础设施,以应对实时模型服务带来的巨大流量冲击。原有架构依赖单个 Redis 实例并通过 Envoy 进行同步查询,存在尾部延迟高、扩展性差和单点故障等问题。团队的重构涉及三个相互依赖的关键决策:将计数器状态从 Redis 迁移到使用名为 Dicer 的路由层进行分片的内存存储;从同步的逐请求检查模式转变为异步批量上报模式,即客户端做出本地决策并每 100ms 上报一次计数;以及采用令牌桶算法(一旦内存架构使其比较并交换语义变得可行)。这消除了关键路径上的两次网络跳转,将尾部延迟降低了约十倍,并使服务器负载变得可预测。其代价是故意容忍高达 5% 的超限,而 Databricks 的后端设计能够承受这一误差。文章最后将速率限制定义为一个包含算法、状态位置和同步模型三个耦合方面的系统问题。 💡...

Read the original article
Sign in to keep reading the full article.

Keyboard Shortcuts

Navigation

Next / previous post
j/k
Open post
oorEnter
Preview post
v

Post Actions

Love post
a
Like post
l
Dislike post
d
Undo reaction
u
Save / unsave
s

Recommendations

Add interest / feed
Enter
Not interested
x

Go to

Home
gh
Interests
gi
Feeds
gf
Likes
gl
History
gy
Changelog
gc
Settings
gs
Discover
gb
Search
/

General

Show this help
?
Submit feedback
!
Close modal / unfocus
Esc

Press ? anytime to show this help