来源:Video @Scale 2021 主讲人:Jin Zhang and Jamie Chen 内容整理:付一兵 本文来自Video @Scale 2021,video infra 与 Facebook capacity team 合作,为每个 FB 视频建立了source + MVE(minimum variable encoding,最小可变编码)的存储策略,通过视频生命周期管理系统,确保视频的存储消耗与它的受欢迎程度成正比。这种技术成功抑制了 2021 年 FB 视频预计的 70% 的存储增长。
目录
在讨论视频的增长之前首先来看一般的数据增长。在下图中,绿线是用来存储或处理数据的计算机供给,而蓝线是呈指数增长的我们的数据。

显然在过去五十年里摩尔定律确实帮助了我们,我们有了越来越便宜,速度越来越快的硬件。从某种意义上说,我们能够跟上数据需求。然而,现在开始出现差距,而且这个差距正在扩大。这不仅意味着我们可能用尽用来存储快速增长的数据的空间,还意味着我们必须建造更多的计算机,更多的数据中心,意味着消耗更多的电力、冷却设备和空间。这种简单地建造越来越多的建筑的解决方案不再是可持续的。
现在视频增长的情况与一般的数据增长非常一致,自疫情开始以来,用户在所有 Facebook 应用上花费的时间增加了 70%,Instagram 和 Facebook 的直播观看量在一周内增长了两倍。这些增长并不是 Facebook 独有的,如果我们仅看去年 12 月 就有 12 亿或更多的人在 Youtube 或 Youtube 电视上观看视频。思科还估计,到 2022 年 82% 的创建内容将是视频。所以视频量的增长将是一个挑战。这意味着我们需要:
下面将介绍 Facebook 是如何管理它的视频存储的。为了理解我们的解决方案,首先需要理解 FB 视频存储策略(FB Video Storage Policy)。
对于一个 FB视 频,我们通常会提供多个编码,包括渐进式编码以及不同编码器的 dash ABR lane,Naiv Policy 会永久储存这些记录。基于 Facebook 技术的服务目标 很快就会发现这种方法太简单了,多年来 facebook 已经并到一个名为 Source+MVE 的存储策略中,在此策略下将只永久保留两份编码,一个是 Source 编码,这是一种超高质量的编码,可以用来再生其他编码器编码,一个是最小可行的编码 MVE,这是一种中等质量的编码,可以是 progressive 或 dash。这样做的目的是确保我们总是有东西可以提供给用户。

FB 的 Source+MVE视频存储策略
我们如何保存源取决于视频的创建时间,有两种不同的方法,

视频 Source 保存策略
对于最小可行的编码 MVE,有两种不同的模型,

下图是一个 Facebook 视频生命周期的简单的演示。在 Facebook 视频可能会经历三个状态:RECENT,HOT和COLD。
这三者之间的状态转换通常如此。所有的视频将进入 RECENT 状态,一小部分视频获得足够的观看时间进入 HOT 状态,一旦人气下降得不到关注将变为 COLD 状态。大部分的视频会得到很少的观看时间或者没有观看时间,直接经历 RECENT 到 COLD。只有非常罕见的情况下,一些 COLD 状态的视频重获人气重新进入 HOT 状态。

FB 视频生命周期
一旦视频进入冷状态 我们可以做很多事情来保存永久文件,而对视频生命周期进行管理和实现存储空间的系统称为视频生命周期管理器,下图演示了视频生命周期管理器的工作流。

视频生命周期管理器
让我们深入研究这里的一些关键值。

视频资产目录
一旦视频通过 COLD 阶段,我们可以做很多事情来管理编码文件:



结果就是,自我们 6 月份开始应用视频生命周期管理器,已经成功地抑制了下图中的增长曲线,实现了 45% 的存储节省。这是个令人兴奋的开始,但我们可以做得更好。

之前我们讲过两种 MVE 模型,其中一种中 MVE 是渐进的,Source 是高质量的、不可交付的。在这种情况下 MVE 是唯一能交付的记录,不适合再削减。另一种是 HD DASH Source 和 SD DASH 编码,这两者可以形成一个 ABR 一起传递,因此 如果其中一个由于数据中断而不可用,我们总是可以求助于另一个。我们将同时减少 Source 和 MVE 来实现更少的储存空间。

我们可以用效益成本评估器来代替生命周期冲突中管理编码的静态规则,回想一下前面的重新压缩编码操作会带来计算机成本,我们还需要在存储和质量之间进行权衡,这是一个适合效益成本评估的情况,这样我们就有了编码管理的第三个选择,这将帮助我们实现更好的视频存储效率。

最后附上演讲视频: