51mee - AI智能招聘平台Logo
模拟面试题目大全招聘中心会员专区

快手每天产生海量短视频(TB级数据),请设计一个分布式视频存储与检索系统,满足快速检索(如按关键词、标签、时间)和低延迟访问需求。

快手工程类难度:困难

答案

1) 【一句话结论】
针对快手TB级短视频的存储与检索需求,设计分层分布式系统,通过对象存储(冷热分离)+ 块存储(低延迟写)+ 分布式索引(倒排+时间)+ 多级缓存(CDN+本地),实现快速检索(关键词、标签、时间)与低延迟访问(延迟<100ms)。

2) 【原理/概念讲解】
老师解释关键概念:

  • 分布式存储:对象存储(如S3)适合大文件(视频),高并发读,冷数据(历史视频);块存储(如Ceph)适合随机写,低延迟,热数据(近期热门)。类比:对象存储像云硬盘,块存储像本地SSD,热数据频繁读写用块存储,冷数据用对象存储节省成本。
  • 分布式索引:倒排索引(关键词/标签→视频ID列表,快速查关键词/标签);时间索引(按时间范围组织视频,快速查时间范围)。比如查“春节”标签的视频,倒排索引直接返回视频ID,时间索引按日期筛选,两者结合快速定位。
  • 缓存层:CDN(就近节点缓存视频,降低用户访问延迟);本地缓存(应用服务器缓存热门视频,减少后端压力)。比如用户访问热门视频,CDN直接返回,无需到后端。
  • 负载均衡:分发用户请求到不同节点,确保高可用,避免单点故障。

3) 【对比与适用场景】

  • 存储方案:

    类型定义特性使用场景注意点
    对象存储(冷)存储大文件,高并发读适合冷数据,成本较低历史视频、低频访问视频写操作延迟较高
    块存储(热)低延迟随机写,高吞吐适合热数据,频繁读写近期热门视频、视频编辑成本较高,写密集场景
  • 索引方案:

    类型定义特性使用场景注意点
    倒排索引关键词/标签→视频ID列表快速关键词检索关键词/标签搜索需定期增量更新
    时间索引按时间范围组织视频快速时间范围检索时间范围查询按时间粒度划分(如日/月/年)
  • 缓存方案:

    类型定义特性使用场景注意点
    CDN内容分发网络,就近节点缓存降低用户访问延迟用户访问热门视频需动态更新缓存内容
    本地缓存应用服务器缓存热门内容减少后端压力高频访问视频需定期清理过期数据

4) 【示例】
用户查询“2023年春节#家庭”标签的视频,流程:

  • 请求:GET /videos?keyword=春节&tag=家庭&time=2023-01-01%20%3E%3D&time=2023-02-28%20%3C%3D
  • 流程:
    1. 负载均衡器分发请求到CDN节点(就近访问);
    2. CDN检查本地缓存,无则转发到应用服务器;
    3. 应用服务器查询倒排索引(#家庭标签)+时间索引(2023年春节),获取视频ID列表;
    4. 从块存储(热数据,近期热门)或对象存储(冷数据,历史视频)获取视频,返回给用户。

5) 【面试口播版答案】
“面试官您好,针对快手TB级短视频的存储与检索需求,我的核心设计思路是构建分层分布式系统,通过对象存储(冷热分离)、块存储(低延迟写)、分布式索引(倒排+时间)和多级缓存(CDN+本地),实现快速检索与低延迟访问。具体来说:底层存储采用对象存储(如S3)存储TB级视频,冷数据(7天内访问量<100次)迁移至对象存储,热数据(近期热门)用块存储(如Ceph)低延迟读写;中间层是分布式索引,倒排索引处理关键词/标签检索,时间索引处理时间范围查询,两者结合快速定位;缓存层用CDN就近节点缓存视频,本地缓存应用服务器缓存热门视频,降低用户访问延迟;通过负载均衡确保高可用。这样设计既能处理TB级数据,又能实现关键词、标签、时间的快速检索(延迟<100ms),满足低延迟需求。”

6) 【追问清单】

  • 如何保证数据一致性?(回答要点):通过对象存储的版本控制(如S3的版本号)和块存储的Paxos协议,写操作先写入块存储,再更新对象存储的版本号,确保数据一致性。
  • 冷热数据分离的具体策略?(回答要点):根据视频访问频率(如7天内访问量<100次为冷数据),热数据存块存储(低延迟),冷数据存对象存储(高并发读),定期(如每周)迁移冷数据。
  • 索引更新延迟如何控制?(回答要点):采用增量更新(每分钟更新一次倒排索引),结合应用服务器缓存索引结果,缓存失效时再查实时索引,确保检索延迟低。
  • 系统扩展性如何?(回答要点):对象存储和块存储支持水平扩展(增加节点),索引层用分布式数据库(如Elasticsearch)分片扩展,缓存层用CDN节点扩展,整体可随数据量增长而扩展。

7) 【常见坑/雷区】

  • 忽略数据一致性机制,导致写操作后数据不一致,影响系统可靠性;
  • 冷热分离策略不具体,如未给出访问频率阈值,导致冷热数据混合,性能下降;
  • 索引结构单一,未区分关键词检索和时间检索,导致检索效率低;
  • 未考虑延迟优化(如CDN、缓存),导致用户访问延迟高;
  • 未平衡成本与性能,如过度使用块存储导致成本过高。
51mee.com致力于为招聘者提供最新、最全的招聘信息。AI智能解析岗位要求,聚合全网优质机会。
产品招聘中心面经会员专区简历解析Resume API
联系我们南京浅度求索科技有限公司admin@51mee.com
联系客服
51mee客服微信二维码 - 扫码添加客服获取帮助
© 2025 南京浅度求索科技有限公司. All rights reserved.
公安备案图标苏公网安备32010602012192号苏ICP备2025178433号-1