第 210 题:存储计算分离,对象存储与本地缓存的协同?
题目
存储计算分离,对象存储与本地缓存的协同?
完整讲解
一、存储计算分离的含义
存储计算分离:存储(数据)与计算(CPU/内存)解耦,存储层独立扩展(如对象存储 S3/OSS),计算层无状态、按需扩缩,二者通过网络访问。优点:计算与存储独立弹性、存储成本低(对象存储)、便于多引擎共享数据;代价:网络 IO 与延迟、需缓存减轻重复读。
二、对象存储的角色
- 对象存储:S3/OSS 等,持久化、大容量、低成本;适合冷数据、备份、批处理输入输出。特点:高吞吐顺序读、随机读与延迟不如本地盘;请求有成本(按请求与流量计费)。
- 用法:作为唯一或主存储,计算节点无本地盘或仅做临时空间;批处理(Spark/Flink)直接读对象存储;数仓表、日志长期存对象存储。
三、本地缓存的协同
- 问题:计算多次读同一数据时,若每次都读对象存储,延迟与成本高。本地缓存:在计算节点(或就近节点)用本地盘/内存缓存热数据,命中则本地读,未命中再读对象存储并回填缓存。
- 策略:LRU/LFU/TTL 等淘汰;预取(预加载即将用到的分区);分层:热数据本地 SSD、温数据对象存储,冷数据对象存储+按需加载。一致性:缓存与对象存储的更新策略(写穿、写回、失效)需明确;多节点缓存需考虑一致性(如版本号、短 TTL)。
四、工程要点
- 元数据:数据位置(对象存储 path、分区)与缓存索引;任务调度:尽量将任务调度到有缓存的节点(data locality)。成本:缓存命中率、对象存储请求量与流量需监控与调优。
面试要点
- 能说清存储计算分离的目标与优缺点;能说明对象存储的角色(持久化、低成本、高延迟/请求成本)。
- 能描述本地缓存的协同:减轻重复读、命中率与淘汰策略、预取与分层;能提及缓存与对象存储的一致性。
- 能简述元数据、任务调度与 data locality、成本监控。
记忆要点
- 存储计算分离=存储与计算解耦、对象存储为主存储;本地缓存=热数据本地、减延迟与请求成本。
- 协同=缓存策略(LRU/TTL)、预取、分层;一致性、元数据与调度(data locality)、成本监控。