抖音背后的存储 | 青训营

143 阅读2分钟

一、抖音需要的存储应当具备什么样的特点


在抖音的背后有两条链路——短视频生产链路和短视频消费链路,在这两条链路上到处都有着视频与图片的公共存储需求,像源短视频、视频转码后生成的不同码率的视频(转码生成不同码率的视频是为了满足上传的能够视频适配各种不同的客户端)以及抽帧后的图片(这些图片将会被抽帧审核,抽帧审核是审核视频的一种重要方法)等都需要存储下来。抖音用户数量非常多,一定程度上导致短视频规模变得庞大,因此抖音对存储的需求量就变得非常大,所以抖音在选择存储的时候,便需要找到拥有海量特质的存储。当然,存储作为一种工具,应该易于使用。从成本的角度看,存储的价格肯定也是抖音在选择存储时需要考虑的一个重点。综上所述,抖音需要一个具备海量、易用、便宜的存储。

二、抖音为什么选择对象存储

屏幕截图 2023-08-20 162633.png
存储大致可以分为四类:单机存储、单机数据库、分布式数据库和分布式存储。前两者不支持海量,显然不会被抖音采用,而后两者虽然都支持海量,但是分布式数据库适合大量(半)结构化数据类型,而分布式存储适合大数据计算中间结果、视频、图片等数据类型,抖音作为一个生产短视频的软件,分布式存储显然是最适合抖音的存储。

屏幕截图 2023-08-20 163017.png
分布式存储又分为分布式文件系统(HDFS)和对象存储(TOS)两种,由于对象存储具有以下特点:支持海量存储、对象数量无限制、采用Restful HTTP接口、开发极简单、云原生、视频/图片相关生态丰富、具备冷热数据分级存储能力、成本低等,因而通过海量、易用、便宜三个维度综合比较,对象存储都胜过于分布式文件系统,又因为对象存储适用于静态场景,而视频和图片一经发布是不可以修改的,只能删除,所以抖音中的视频和图片是静态的。因此,抖音最终选择了对象存储。