English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

访客
1 / ?
返回课程列表

每个 PoP 都拥有平面的一部分

Voronoi 纹状化

在平面上放置 N 个点(PoPs:存在点)。在平面上绘制区域边界,使得每个点都分配给最近的 PoP。结果是 Voronoi 图:平面被分成 N 个单元,每个单元属于一个 PoP,包含距离其 PoP 更近的所有点。

CDN 几何:每个用户的请求都路由到最近的 PoP。每个 PoP 服务地理平面的一个单元。单元边界是邻近 PoP 之间线的垂直中点。

几何阅读

- 添加一个 PoP 会缩小其邻居的单元(& 创建一个新的单元)

- 删除一个 PoP 会迫使其单元重新分配给邻居(容量洪峰在邻居处)

- 在单元边界附近的用户可能会随着负载平衡的变化而切换 PoP

- 一個 PoP 失败会使得每个邻居单元的实际大小变大

操作后果:当一个 PoP 失败时,它的负载不会消失;它会迁移到邻近的 PoP。如果邻近 PoP 只是为了它们的正常单元大小,那么洪峰会打破它们下一个(连锁 PoP 失败)。成熟的 CDN 提供商会为邻近故障预留空间。

PoPs 周围的 Voronoi 单元;一个 PoP 失败会使得邻居单元变大

一个 CDN 运行 4 个 PoP,服务美国大陆:西海岸、山区、中西部、东海岸。每个大小约为总美国流量的~25%。山区 PoP 失败。预测:(1)哪些邻近 PoP 吸收了重新分配的负载,并且大致比例为何,(2)如果那些邻近 PoP 大小恰好为 25%,没有额外的头room,会发生什么?

您无法逃脱的不等式

物理设置了地板

光在真空中以约 300,000 公里/s传播。在纤维中约 200,000 公里/s,由于折射率。所以:

- 约 1,000 公里纤维 = 约 5 毫秒单向 = 约 10 毫秒往返

- 从美国沿岸到对岸 (~5,000 km) = ~50 ms 最小RTT

- 从美国到欧洲 (~8,000 km) = ~80 ms 最小RTT

- 对蹭点 (半周游) = ~200 ms 最小RTT

这只是一个底线。 实际的RTT始终更大 (路由跳转、交换、排队、拥塞)。没有应用程序可以超越物理限制。

三角不等式

对于三个节点A、B、C,三角不等式说 d(A,C) <= d(A,B) + d(B,C): 直接路径总是比(等于)任何间接路径短。

网络阅读: 如果您的服务路由A -> B -> C而不是A -> C直接路由,延迟将至少等于两条腿延迟的总和。通常是更多的,是由于在B的处理。

架构阅读: 每个间接性 (代理、负载平衡器、CDN跳转) 对用户的延迟至少增加一个回合。CDN的好处来自于使用户的腿更短 (PoP更接近原点),即使总跳数增加。

跨区域陷阱: 一个服务从区域A读取但将数据写入区域B,每次写入都会产生A到B的延迟。如果A & B相隔100 ms,每次写入至少需要>= 100 ms。拉伸数据库每次都支付这个底线。

延迟三角:A-B-C的物理距离决定了最小值

支付底线

服务在两个区域运行:美国东部 (us-east-1) & 欧洲西部 (eu-west-1)。这两个区域大约相隔5500公里。服务在美国东部的主数据库。欧洲用户的请求由欧洲西部后端处理,但每次写入都需要回到美国东部主数据库。

计算一个欧洲用户写入延迟的最低值 (从他们的浏览器到欧洲西部后端的往返路由到美国东部主后端再返回)。然后比较一个欧洲用户完全由欧洲西部缓存状态服务的读取延迟。最后提出一种建筑改变,可以减少欧洲用户写入延迟的最低值。

地理容量设计

合成

您现在可以将Voronoi细胞视为PoP流量捕获、计算光速延迟底线和在代理层应用排队曲线。

应用所有三项。

一支团队为一个服务规划CDN覆盖范围,该服务的用户分布在三个大洲:北美洲(60%的用户)、欧洲(30%)和亚洲(10%)。他们有预算为6个PoP。每个PoP在70%利用率时可以稳定地服务一个细胞,而不超过排队曲线的弯肱。

设计 PoP 置备:(1)如何将6个 PoP 分布在三个大陆上,(2)对于最小用户份额(亚洲10%),如果没有亚洲 PoP,欧洲 PoP 服务亚洲用户延迟的最低值是多少(假设 ~9000 公里距离),(3)在单个 PoP 失败时没有级联影响时,每个 PoP 需要的容量头room是多少?

关闭伙伴课程

关闭伙伴课程

您已完成所有五个geometry-of-*伙伴课程:

- 代理与源:有向图、跳数、fan-in / fan-out、间接性

- 无状态水平扩展:Little's Law作为面积、排队曲线及其弯肱

- 入口与出口分离:双部件结构、切点消除、分区容差

- 故障模式与爆炸半径:betweenness中心性、min-cut、直径

- 可观察性与容量(本课程):Voronoi PoP细胞、延迟三角底线、地理空间容量设计

主线:分布式系统具有几何结构。每个架构都是一个图。每个延迟底线都是一个三角不等式。每个容量决策都是一个曲线和一个弯肱。一旦看到几何,就会从中得出操作决策。

与五个主要课程(cs_distsys_*)结合,您将拥有一种关于Web规模分布式系统的工作_mental_model以及图论纪律来推理它。

好工。