-->
为五月的纽约流媒体保留座位吧. 现在注册!

算法系列:CDN背后的数学

文章特色图片

F或者是整体的交付部分 流方程,cdn使用细化 内容缓存和内容复制; 优化的网络路径,包括入口, 出口, 中间数据传输和战略性服务器放置是核心 (如原始服务器)或边缘(通常称为在某个点缓存内容) 存在). 关键CDN组件的基础是一些基本算法,用于平衡战略核心和边缘架构需求. 

这篇文章, 这是我们新算法系列中的第一个, 深入研究流媒体传输魔力背后的数学,突出重要的数学概念——甚至是一些方程——这些概念为基础设施提供动力,在全球范围内提供直播和点播流. 

如果你读了我的2019年11月/ 12月 思想流专栏, 您应该还记得,本系列文章是我在阿姆斯特丹IBC上的一次讨论产生的, my 和几个博士中的一个.D. 流媒体 解决方案架构师. 在那次谈话中, 我们三个人中有两个拥有数学学位——米歇尔·福尔和尤里·雷兹尼克, 研究主管和brightcove的一名研究员开始深入研究 媒体播放器交叉点的数学运算 性能和多编解码器清单文件. 

这次谈话产生了一个最初的想法,即涵盖四个关键领域:交付绩效 (CDN), 播放器性能(OTT或OVP比特率和呈现阶梯优化), 实时事件伸缩(包括身份验证和其他潜在瓶颈), 和数字版权管理, 在洛杉矶2019年流媒体西部大会上,我对雷兹尼克进行了一次采访,详细阐述了这一点.

在这个过程中,我被介绍给了行业里的一些人,他们都不是我的朋友 或者是我在过去20年里有限的互动,但谁对此做出了贡献 对于我们如何走到今天这一步的路线图来说,有四个方面是至关重要的, 也为未来的媒体传播服务. 

CDN的数学

CDN数学到底是什么? 最常见的内容交付数学, 至少从付费用户的角度来看是这样, 计费算法. 无论如何,这些都不是新的, 在基于电信的数据网络领域(想想拨号), ISDN, 甚至是固定电话长途服务).

除了这些和其他以客户为中心的算法,比如95/5(又名95百分位), 所有cdn衡量和优化的一个关键领域是缓存服务器利用率, 包括防止单个服务器容量过载的方法, 通常被称为“淹没”服务器. 

适当缓存的服务器利用率(又名一致哈希)

这里面有很多数学运算 现代发布商, 但是,网页加速和流媒体的基本算法之一可以在很久以前提交的设计专利中找到 in 1997. U.S. 专利没有. 8458259的题目是分配请求的方法和设备 在众多百家乐软件中,它本身, 1998年3月13日的一项专利申请延续了之前的几项专利 什么变成了U.S. 专利没有. 6430618 in 2002. 的 原始的专利授予麻省理工学院的,是基于 研究 由计算机科学实验室的成员在1997年5月举行的第29届ACM计算理论研讨会(stock97)上提出. 他们的论文是 题目是“一致哈希和随机树”: 缓解万维网热点的分布式缓存协议”,并且可以 在第654-663页 研讨会论文集.

该论文的几位作者——大卫·卡尔格尔, 埃里克·雷曼, 汤姆•雷顿, 马修Le-vine, 丹尼尔•列文, 和Rina panigrahy 现在 在内容交付圈很有名. 以莉顿为例,她在两部电影中都保留了角色 麻省理工学院计算机科学实验室(现称为 计算机科学 & 人工智能 实验室)和麻省理工学院数学系, 第二年与已故的Lewin共同创立了Akamai. 

那么这个“一致哈希”的想法是什么呢 这篇论文的作者发展并提出了? 专利中的金钱报价说明了这一点:

造成延迟的两个原因是网络部分的通信负荷过重 以及大量加载a的请求 特定服务器. 当网络的一部分变得过于拥挤时 那部分的交通,通讯 网络变得不可靠和缓慢. 类似的, 当太多的请求指向单个服务器时, 服务器过载, 或“淹没.'

以解决网络拥塞和原始服务器的淹没, 通常称为源服务器, 该专利提出了缓存服务器的概念:

缓存可以减少网络流量 缓存副本在网络中很接近 拓扑感,给请求者因为 用于检索信息的网络链接和百家乐软件更少. 缓存还可以缓解过载的服务器 因为有些请求会 通常被路由到原始站点可以由缓存服务器等提供服务 减少了对原始站点的请求数量. 

但是需要多少缓存服务器 在多少个位置? 更重要的是, 从CDN设计的角度来看,还有其他的 这些问题甚至可能导致交通堵塞 如果有很多缓存服务器? 事实证明,答案是投掷 在这个问题上缓存服务器不是一个有效的解决方案. 这就是一致哈希法要解决的问题.

要理解一致哈希的基础,我们首先要理解哈希. 要做到这一点,我们还需要了解模数学.

数学中的模块化

求模是一个数学运算 除法后剩下哪个整数(任何自然数加0). 如果你还记得高中数学的话, 检验任意两个数是否有余数的方法称为合成除法或霍纳法. 

还是不记得怎么做? 好吧,这是 模是如何工作的. 例如, 7模2(通常简写为7模2)的答案要么是零,要么是某个自然数(任何大于零的正数). 而我们通常会把7/2写成3.5当 用小数点来表示除数的一半, 对于模数学, 答案是1(本质上是2的3次方,剩下1). 

因为取模的结果等于 整数,在某些情况下 模量的结果将是无余数. 例如,如果公式是6 mod 2,答案就是0.

模对哈希的重要性在于 其余的帮助确定可以将给定的数据块分配给哪个服务器并从中检索. 稍后会详细介绍.

解决问题

哈希最简单的定义是切 或者除以,但就我们的目的而言,哈希是映射一段数据(通常描述某种对象)的函数, 通常是任意大小的另一段数据, 通常是整数." 稍微放一点 不同的方式, 根据Wolfram MathWorld网站, 哈希函数(H)从一个有许多(甚至无穷)的集合中投射一个值 集合中的一个值的成员数 固定数量(更少)的成员.换句话说, 它是一种通过集合来表示无限数量的值的方法, 更有限的数量 值. 实际上, 为内容, 这也允许可变长度的内容用固定长度的表示表示.

我们用社保号作为a 将可变数据散列到固定长度数字的形式. 如果去掉破折号, 社会安全号码是唯一的, 固定长度-值的9位自然数(大于零的正整数). 忽略的初始限制 社会安全编号方案(3位数字) 区域号,2位分组号,4位序列号),假设社会 安全号码从100开始,000,000才能准确地填满所有九个槽, 可能的固定9位值的总数将是899,999,999. 而号码是固定长度的,名称是固定长度的 附在每个社会安全号码上的是一段可变长度的内容. 可能是 玛丽珍. 布莱姬,富兰克林·德拉诺·罗斯福,甚至约翰·菲茨杰拉德·肯尼迪. 

在我们的示例中,名称本身同时使用可变长度和multiple-字符类型(数据库术语为“varchar”) 表示全局名称搜索需要 计算能力比 在我们的社会安全号码示例中,所有的899,999,999整数排列.

的最后一个好处 哈希是积极的 影响更有效的搜索和存储 现代关系数据库. 大多数数据库 使用一个键结构——在任何结构中都是唯一的值 数据库表中的单个字段作为主键,不仅可以在其上搜索内容,还可以在其上搜索 还可以将来自多个表的内容(关系)连接到跨多个数据库表的单个内容查询中.

我们在散列示例中描述的—固定长度值(社会安全号码)和可变长度的组合 价值(任何给定的名称)——最基本的是, 称为键值存储的传统数据库结构, 其中键(哈希)与值(内容字符串)相关联, 例如任何给定的名称). 在哈希键唯一的情况下, 它可以在任何给定的数据库表中充当主键. 

数据库在索引内容方面也表现得非常好, 哪个本质上是一组键值存储的路线图. 该指数 有效地逆向工程存储在数据库中的内容数组, 使用正在搜索的索引, 而不是整个数据库. 对于一组 哈希表的作用是 索引和显著减少与特定散列相关联的内容字符串的搜索时间. 

哈希的问题

散列的主要潜在问题是 什么叫做碰撞, 这意味着两个变长值共享相同的定义形参(例如.g.有两个叫约翰的人 小雷金纳德·史密斯.两人都出生在美国的同一个地区.S. ),这可能会导致相同的固定长度值表示两者(在我们的示例中是社会安全号码). 

一种基本的哈希方法 由于具有相同参数的两个内容字符串共享相同的哈希键值,因此生成哈希冲突, 可以 导致无意的淹没. 实际上,它也可能导致一台服务器被占用 内容太多,而集群中的其他服务器持有的内容太少. 

此外,哈希冲突可能会增加 浏览器接收内容的严重延迟. 在最坏的情况下,内容根本无法提供,或者错误的内容可以提供 从错误的缓存服务器发送到 在错误的时间使用错误的媒体播放器. 在我们的 以社保为例 比如社会保障局把支票寄错了人 小雷金纳德·史密斯.然后,他们就可以在法律上自由地兑现它.

解决CDN架构中潜在冲突错误的一种方法是添加更多的服务器, 复制相同的哈希表和 键值存储组合到多个服务器. 如果内容本身有限制,这种方法就有效 collision likelihood; however, 如果一组服务器中的一台服务器出现故障, 哈希表就过时了, 因为故障服务器的某些内容需要重新映射到所有其他服务器. 最终的结果是,无论何时任何一个缓存服务器都将对原始服务器造成巨大的冲击, 即使是集群中的一个, 失败. 

流媒体覆盖
免费的
合资格订户
现在就订阅 最新一期 过去的问题
相关文章

算法系列:QUIC流的方法

2022年将是UDP最终展示其流媒体勇气的一年吗? 快速UDP互联网连接(QUIC)协议可能会有所不同. 第一个, 虽然, OTT平台需要对HTTP/3做出技术决策,这可能会进一步分化市场.

算法系列:实时事件缩放

直播内容有四种主要的交付方式, 了解它们背后的数学原理可以帮助决策者确定哪种方法最适合他们的应用.

随着流媒体的发展,CDN必须发展

即使在新冠肺炎疫情后,流媒体仍然只占视频观看总量的一小部分. 当它成为交付视频内容的实际方法时会发生什么呢? 现有的CDN方法是否足以应对下一阶段的流媒体增长?

算法系列:视频播放器性能

用于编码、传输和播放的多种算法在最终用户的播放器中交叉. 那么你怎样才能让这些数字对你有利呢?

了解多cdn策略

对交通有清晰的认识, 关键绩效指标, 以及需要在原始服务器上存储的内容, 多cdn策略可以改善更好的体验.

如何在2020年内容交付峰会上发言

该活动汇集了内容交付领域的所有参与者——从电力和互连到服务质量和边缘计算——这是同类会议中唯一的一次. 如果你对演讲感兴趣,请继续往下读.