在当前市场环境中,众多厂商普遍倾向于选择成本效益高的对象存储作为其持久化存储解决方案。对象存储以其低成本、高密度和高服务性的优势,成为众多企业的首选。然而,尽管对象存储在这些方面表现出色,它在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时延压缩在毫秒级别,充分将本地带宽打满。
原生分布式缓存加速服务带来的价值
功能上,当前 NDP 已经稳定支持了与 AWS S3、KS3、US3、COS、OSS、TOS、GCS 等多个平台的对象服务的 IO 能力,屏蔽了多平台 IO 的差异性,并在报错处理上进行了统一处理,避免上层应用重复开发,为 AI-ready Data Cloud 提供了对数据访问进行加速和统一管理能力。目前 NDP 在 C、C++ 和 Java 语言层面提供了接口,后续还会提供 Python 语言接口,对接更多的 IO 型组件。
性能上,在 AI-ready Data Cloud 产品内部 E2E 测试中,NDP 的 local-cache 在无缓存的情况下,首次读取 local-cache 的性能与访问对象存储无差异;再次读取 local-cache 时,命中 local-cache 缓存与直接访问对象存储相比,local-cache 为计算的 IO 的性能提高了 30 倍。虽然在有缓存的情况下,读取 remote-cache 较 local-cache 性能劣化 15%左右,但其可提供的缓存容量远大于 local-cache,命中率远高于 local-cache。同时,分布式缓存形态下的 NDP 集群可以线性扩展,做到用户无感知的扩缩容,且扩缩时延达到毫秒级别。
通过应对对象存储 IO 性能的挑战,AI-ready Data Cloud产品能够为用户提供极致的低成本和高速响应的使用体验。AI-ready Data Cloud 将在搜索、推荐、广告、大模型等业务方面提供高效、低成本的解决方案,是追求极致性价比和计算效率的极佳选择。