暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

PolarStore弹性内存池(EMP)(一)

ZzzMickey 2024-10-22
309

本文介绍了PolarStore的弹性内存池(Elastic Memory Pool,简称 EMP)技术,结合高速网络和智能缓存,大幅降低数据读取延迟,提升PolarDB在I/O密集型负载下的性能表现。

背景介绍

PolarStore为PolarDB提供低延迟、高吞吐量的高性能数据存储服务。作为数据库的核心组成部分,PolarStore负责将数据从存储层高效地读取到数据库内存,这在I/O密集型负载场景下至关重要。为了进一步提升性能,PolarStore基于PolarDB三层解耦架构的优势,推出了弹性内存池(Elastic Memory Pool,简称 EMP)功能。EMP利用分布式高速RDMA网络和高速介质,智能缓存热点数据,无需您感知或适配。在EMP的加持下,PolarStore数据读取延迟最高可降低5倍,显著提升PolarDB整体性能,在 I/O密集型负载下吞吐量提升可达90%。


EMP功能介绍

功能简介

数据库的缓存池(Buffer Pool)是内存中用于缓存磁盘数据的区域。当需要访问数据时,先从Buffer Pool中读取,若数据在Buffer Pool未命中,则需要从底层存储中获取数据,相比内存访问,IO操作会增加网络和读盘延迟,这将直接影响数据库的性能。因为单台主机的内存限制,单个数据库集群Buffer Pool的大小非常有限。

为了解决这个问题,PolarStore的EMP功能应运而生。EMP利用RDMA高速网络,将存储集群中的内存和持久性内存等高速介质高效整合,组成一个可扩展的内存池。EMP能够智能识别数据库的热点数据,并将其缓存在内存池中,实现数据的高速访问。在EMP加持下,PolarStore 16KB粒度随机读IO延迟可低至25us,最多降低至原有延迟的1/5,并且远低于业界典型本地盘NVME SSD的80~90us的延迟,显著提升了PolarDB的性能。


image

PolarDB集群支持动态启用和关闭EMP,且操作过程不会影响数据库集群运行,无需中断或阻塞数据库集群运行。

核心优势

  • 无损提升读IO性能,读延迟降低5倍

    EMP由分布式存储集群中大量存储节点中的内存或持久性内存等高速介质组成,每个节点会识别热点数据并缓存在本地EMP中。EMP无需PolarDB实例消耗用户宝贵的计算或内存资源,无论IO是否直接在EMP缓存命中,PolarDB都不会产生多余的IO请求。当读访问命中EMP缓存时,数据直接从EMP返回,实现极低的访问延迟;未命中时,不会增加额外开销,数据访问性能不受影响。因此,EMP可以无损提升读IO性能。

  • 一写多读共享内存池

    PolarDB是基于共享存储的一写多读架构,EMP基于此架构实现,支持一写多读。RW和RO同样共享EMP缓存,所有RO的访问都能够加速,加速效果不受RO个数的限制,并且PolarDB集群没有缓存一致性的开销成本。在节点故障切换、集群扩展等场景下,新的主节点或新扩展只读节点能够无缝衔接使用EMP中共享的热数据,从而更快地完成冷节点到热节点的切换,缩小业务侧的响应时间(RT)上升时间窗口,保障业务运行稳定性。

  • 弹性扩展EMP空间,智能识别并均衡分布热点数据

    PolarStore是由多个存储节点构成的分布式存储资源池,每个存储节点上都包含EMP可用的内存或持久性内存等资源,因此EMP资源池支持随存储节点扩展而弹性扩展。EMP是存储集群级别的内存池,可以给单个PolarDB集群提供多达数十TB的缓存空间。得益于和PolarDB紧密结合的IO请求全链路标记能力,EMP能够根据数据库的不同IO类型等特征,智能识别集群的读热点,针对性地优化提升集群的读IO缓存命中率,最大化地利用资源提升集群性能。 比如:针对Binlog或Redo log等文件的类流式顺序访问、IBD数据文件的随机读写访问等分别针对性的进行优化。同时EMP会自动识别存储节点流量热点并进行负载均衡调度,充分利用分布式能力,弹性扩展EMP。

文章转载自ZzzMickey,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论