从原生分布式缓存加速服务谈 Serverless AI-ready Data Cloud
在当前市场环境中,众多厂商普遍倾向于选择成本效益高的对象存储作为其持久化存储解决方案。对象存储以其低成本、高密度和高服务性的优势,成为众多企业的首选。然而,尽管对象存储在这些方面表现出色,它在 IOPS 和带宽等方面仍存在一定的限制。此外,由于对象存储面向的是海量数据存储场景,其在跨地域存储和大规模数据检索时,IO 时延成为一个不可忽视的缺陷。
在当今存算分离的趋势下,对象存储的 IO 速度已成为高效能计算的瓶颈。如何提升对象存储的 IO 速度,成为业界面临的重大挑战。
质变科技 AI-ready Data Cloud 致力于提供极致性价比的计算服务,加速全球数字化进程。为此,我们自主研发并上线了近数据计算服务组件:NDP(Near Data Processing)。该组件通过提供分布式缓存加速服务和卸载近数据计算的能力,显著降低数据访问成本,大幅提升访问性能和吞吐量,为高效计算提供坚实保障。
今天,质变科技 AI-ready 数据云团队布道师白泽和上诚将从原生分布式缓存加速服务角度,为我们介绍 Serverless AI-ready Data Cloud 的优势。
原生分布式缓存加速服务概览
NDP 为上层应用提供了标准的 POSIX 接口,有效屏蔽了底层存储的差异,提供了一个数据统一管理平台的能力。通过访问 scheme 的差异,NDP 使用不同的内部逻辑,不仅减少了上层应用的差异化逻辑开发,还丰富了服务的多样性。
正如其名称所表达的意思,NDP 是贴近数据处理的服务性组件。它主要通过多级缓存能力,降低计算时读取数据的时延,平衡服务性能和成本,从而实现更优质的数据处理效果。因此,原生分布式缓存加速服务主要分为贴近数据处理端的 local-cache 和可分布式扩展的 remote-cache 两大部分。
local-cache 和 remote-cache 又分别细分为两小部分缓存,分别是 mem-cache 和 disk-cache,充分利用内存和本地盘资源。这两大部分四小部分的缓存设计,为 AI-ready Data Cloud 集群的高效数据内循环提供了保障,大大减少了数据访问的成本。
NDP local-cache
高性能计算需要占用大量的 CPU 资源,在多种规格的实例中,本地盘和 MEM 的资源会有空闲部分。这部分的成本虽小,却有着不小的利用价值。本地盘的 IO 时延远低于访问对象存储的网络开销,如果将少部分 CPU 用来管理磁盘数据,作为一层缓存,那么将有效降低与对象存储 IO 的时延。
local-cache 有效利用了本地 MEM 和本地盘作为缓存,尽可能的缓存写过或读过的数据,在下次读取时,可以避免再次访问对象存储,而是直接访问本地数据。local-cache 的缓存管理,可以将访问本地缓存的 IO 性能与直接使用的缓存介质 IO 性能持平,大大提高计算读取数据效率。
NDP 不感知数据结构,将所有的数据进行池化管理,使得 NDP 能够以数据页为单位缓存,也就使得缓存的粒度更细,缓存淘汰率更低。
NDP remote-cache
大量数据的计算,本地盘的资源量已经满足不了计算所需要的缓存量;而且在分布式的环境下,多个计算节点的本地缓存内容重复,使得集群整体的本地缓存利用率大大降低;另外在 serverless 技术趋势下,local-cache 必然要重新从对象存储获取数据进行缓存,大大限制了缓存的作用。
为解决这些问题,NDP 使用 remote-cache 解决方案,提供一套独立的缓存集群,将数据缓存在计算的近地集群,减少跨地域网络和对象存储本身的读写时延,提高 IO 性能。低 CPU 本地盘比例,让缓存集群的成本得到了保障。
local-cache 作为和 remote-cache 交互的 client 端,既可以统一上层应用的使用方式,屏蔽上层应用的感知,又可以做到快速交换缓存的作用。
remote-cache 的 manager 是缓存集群拓扑管理的中心,它可以通过主备形式,对 client 提供集群拓扑信息,并实时更新,保障数据访问能力。同时保存部分关键的元数据信息,在增值特性中使用。
remote-cache 的 daemon 是缓存集群的数据节点,保存所有缓存的数据片和元数据。首个数据片的归属节点会保存对应数据片集合的元数据,作为基础的元数据信息,避免了元数据中心化的访问热度问题。
remote-cache 的缓存使用了一致性 hash 的算法。优点是同时保证了数据的均匀性,扩展性和可靠性。不仅减少了哈希碰撞的概率,还有效地做到了负载均衡,让所有服务节点的访问热度平衡;同时在 remote-cache 发生扩缩容的情况下,能够把缓存失效的比例最小化,平滑扩缩,同时为部署在低频率的竞价实例上提供可能性。
remote-cache 为热表数据支持 PIN 缓存的能力。在频繁的数据读写中,保证热表的优先缓存,不淘汰的级别,并在设置的 TTL 之后 UNPIN,进入可淘汰阶段,有效保证了热表长期 cache 的策略。
在一些必要向对象存储获取数据的情况下,为了优化性能,NDP 将大 IO 进行切割,通过将一次大 IO 变成多个小 IO,增加并发的方式,减少等待读取对象存储的时间。
相比于社区版本的 Alluxio,NDP remote-cache 避免了元数据节点中心化带来的 IOPS 上限问题,拥有高吞吐、低延迟、可横向可扩展的特性,可以将单次请求的处理时延压缩在微秒级别,网络 IO 时延压缩在毫秒级别,充分将本地带宽打满。
版权声明: 本文为 InfoQ 作者【AI数据云Relyt】的原创文章。
原文链接:【http://xie.infoq.cn/article/68117ad54ddac3e9ae5435319】。文章转载请联系作者。
评论