【sosp23论文导读】Ditto:一个弹性自适应分离式内存缓存系统

Ditto是一个针对分离式内存的缓存系统,旨在提供弹性与自适应性。它采用以客户端为中心的缓存框架,通过Sample-friendly哈希表和频率计数器缓存来高效执行多种缓存算法。Ditto还实现了分布式自适应缓存,动态调整资源以适应不断变化的工作负载,以提高缓存命中率。实验表明,Ditto在不同场景下性能优于传统缓存系统。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Ditto: An Elastic and Adaptive Memory-Disaggregated Caching System

摘要

      Ditto首先提出了一个以客户端为中心的缓存框架,以在DM的计算池中高效地执行各种缓存算法,只依赖于远程内存访问。然后,Ditto采用了一种分布式自适应缓存方案,该方案基于多个缓存算法的实时性能自适应切换到最适合的缓存算法,以提高缓存命中率。我们的实验表明,Ditto有效地适应了DM上不断变化的资源,在现实世界的工作负载中比最先进的缓存系统高3.6倍,在YCSB基准测试中高9倍。


公众号阅读:


1、什么分离式内存

1.1 单控服务器架构

1.2 分离式内存

类似如下CLIO架构:

      在Clio中计算节点(CN)直接使用以太网网卡连接到机柜交换机中,同时将内存节点(MN)直接连接到交换机上,在计算节点中运行的程序可以通过用户态库CLib使用内存节点的资源。

2、Ditto §2 必要性

2.1 单控服务器缓存系统的历史

      (1)为单体服务器扩展内存通常非常浪费且昂贵,由于配置内存时必须按照严格顺序对称地扩展内存,且物理内存容量以指数单位增长,通常扩展内存会带来更大的内存浪费;

      (2)CPU与内存紧密耦合,CPU仅能使用与安装在同一台物理主机上的内存资源。Azure数据中心的服务器在CPU有 85%租借给虚拟机后,平均有10%以上的内存闲置,无法被任何CPU利用;

2.1 分离式内存的优势

      分离式内存系统旨在提供一种动态调整节点内存资源的机制。其期望在中小集群上(100 块CPU以内)提供一种延迟介于访问NUMA远端内存和访问最新NVMe SSD的之间的内存访问手段。

       分离式内存可以实现内存资源解耦合,能够有效的提升数据中心资源的灵活性。与此同时,现有的分离式内存实现在提高系统内存利用率、提升任务总吞吐量、减小系统能耗等方面都有可观的提升。

      分离式内存技术就是其中一种内存池化的可行路线。分离式内存给予主机像访问本地DRAM一样,访问其他主机的空闲内存(或内存池) 的能力。

3、Ditto §3 挑战

解决两个挑战:

1)绕过远程CPU会阻碍缓存算法的执行:

        缓存系统在不同的工作负载下使用各种缓存算法。缓存算法监控缓存对象的热度,并通过在缓存数据结构中维护热度信息来选择替换对象。由于数据访问会改变对象热度,现有的缓存算法依赖于执行所有数据访问的缓存服务器的CPU来监控对象热度并维护缓存数据结构。但是,在DM上的缓存系统中,计算池中的应用程序(客户端)在访问对象时会绕过内存池中的CPU。因此在DM上为不同的工作负载支持各种缓存算法甚至更困难。

2)调整资源会影响缓存算法的命中率

      缓存算法的命中率与工作负载的数据访问模式和缓存大小有关。在DM上,两个属性都会随着动态资源调整而变化。数据访问模式随着并发客户端(即计算资源)的数量而变化,缓存大小随着分配的内存空间(即内存资源)而变化。因此,最大化命中率的最佳缓存算法会随着资源设置而动态变化。具有固定缓存算法的缓存系统不能适应DM的这些动态特性,并且可能导致较差的命中率。

应对挑战的解决方案:

• Ditto提出了以客户端为中心的缓存框架,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YoungerChina

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值