更新时间:2024-11-29 GMT+08:00

MemArtsCC基本原理

MemArtsCC是一款面向存算分离架构的分布式计算侧缓存系统,采用极轻量化的架构设计,部署在计算侧的集群中,通过智能预取远端对象存储上的数据提供高速缓存能力,从而来加速计算任务执行。

MemArtsCC在存储层面将远端对象存储(OBS)上的对象进行切片,并建立索引,大大提升缓存数据的读取性能。通过ZooKeeper实现轻量化的服务发现,提供超高可用性。基于LRU算法管理分片数据的生命周期。

MemArtsCC主要特点

  • 去中心化架构,所有实例提供对等服务能力。
  • 轻量化设计,极低的资源占用率。
  • 应用解耦,业务无需感知无需适配即可使用。
  • 高可用,单实例级别异常不影响集群可用性。

MemArtsCC结构

MemArtsCC由CCSideCar和CCWorker两个角色组成。

在存算架构下,Spark、Hive等计算分析应用的数据存储在对象存储服务(OBS)中。在MemArtsCC集群上一个服务实例称为Worker,对于OBS上的对象数据,Worker缓存其中部分或全部分片到本地的持久化存储(SDD/HDD)中。上层应用通过MemArtsCC SDK读取某个对象时,基于分片索引到特定的Worker上读取分片数据,如果命中缓存则Worker返回对应分片,如果未命中则直接从OBS中读取数据,同时Worker端会异步的加载未命中的分片到本地存储中,供后续使用。

图1 MemArtsCC结构
表1 MemArtsCC结构图说明

名称

说明

MemArtsCC SDK

提供OBSA(OBSA,Hadoop客户端插件) FS客户端使用的可访问OBS服务器对象的SDK。

CCSideCar

MemArtsCC的管理面服务,提供MemArtsCC服务监控采集、配置下发、服务启停等能力。

CCWorker

MemArtsCC的数据面服务,支持MemArtsCC的缓存数据读写、存储、淘汰等能力。