FAST 2024 Paper 论文阅读笔记整理
问题
分布式键值存储需要在节点之间频繁迁移键值碎片,以对动态工作负载变化做出反应,从而实现负载平衡、数据局部性和服务弹性。
现有方法局限性
现有的实时迁移技术必须假设一个或多个位置作为主查询服务点:迁移源、目的地或两者兼有,因为迁移过程中键值对的实际位置是未知的。
-
基于源的解决方案[23,33,53]。使用源存储在迁移期间为所有客户端查询提供服务,并在迁移后在源位置更新密钥时将增量脏数据日志迁移到目标位置。
-
基于目的地的解决方案[28,37]。在迁移开始时传输数据所有权,并立即将新到达的查询路由到目的地。客户端查询的尚未迁移的数据是根据需要从源中提取的。但两种技术存在基本的性能限制,对迁移过程缺乏深入了解。例如,如果采用基于目的地的迁移,并且键值对尚未迁移到目的地,则从源获取键值对需要另一个往返延迟。
-
混合迁移技术。跟踪客户端的迁移过程[30]或将查询复制到源和目的地[41],利用源和目的地为用户查询提供服务。虽然有望实现更好的性能,但客户端跟踪数据所有权的成本,以及客户端和服务器之间维护一致性的潜在开销不可忽略。
本文方法
本文提出了NetMigrate,对混合迁移技术优化,不使用额外资源进行迁移记录,核心思想是用网络跟踪迁移过程,因为网络可以查看集群中的所有数据移动,实现了基于可编程网络数据平面的内存键值存储的实时迁移方法。
-
交换机资源有限的情况下跟踪迁移状态。利用概率数据结构,用布隆过滤器[25]跟踪密钥是否已完成迁移,用计数布隆过滤器[29]跟踪密钥当前是否正在迁移。为了迁移具有大量密钥的存储实例,支持将监控粒度从每个密钥级别动态调整为具有多个密钥的组的级别。通过这些技术,交换机上的64MB SRAM将能够在同一机架中支持多达340亿个密钥存储集群的迁移。
-
迁移过程中维护数据一致性。为了确保强一致性,关键是要知道密钥最新值的位置,并在迁移期间将新查询路由到该位置。本文设计了一种错误处理方法来确保正确的查询结果,遵循以下原则:如果我们对数据所有权有绝对的信心,交换机会将查询路由到相应的位置;否则,当存在不精确信息的可能性时,交换机会发出少量复制查询。
-
支持多样化的迁移策略。NetMigrate可以从源端调整其交换机上的数据结构和资源预算,以优化各种性能目标,例如最小化迁移时间和最大化查询吞吐量。
在由一个可编程交换机和几个运行Redis的商品服务器组成的测试台上实现了NetMigrate原型,并在YCSB工作负载下对其进行了评估。实验表明,与最先进的迁移方法相比,NetMigrate将查询吞吐量提升6.5-416%,并在迁移过程中保持较低的访问延迟。
实验
实验环境:一台6.5 Tbps的Intel Tofino交换机,3台商用服务器,每台服务器都配备了一个8核CPU(Intel Xeon E5-2620@2.10GHz)、64GB总内存(两个32GB DRR4-2400 DRAM)、一个40G NIC(Intel XL710)。
数据集:YCSB,
实验对比:吞吐量、查询延迟中位数、尾延迟、额外带宽
实验参数:迁移数据、BF、CBF、组大小、CPU预算、写入比率
总结
针对分布式键值存储在节点之间迁移键值数据,现有方法需要基于源或目的地或额外记录,在迁移过程中进行服务,造成额外延迟。本文提出NetMigrate,不使用额外资源进行迁移记录,核心思想是用网络跟踪迁移过程,因为网络可以查看集群中的所有数据移动。包括三个关键技术:(1)交换机资源有限的情况下跟踪迁移状态。利用概率数据结构,用布隆过滤器跟踪密钥是否已完成迁移,用计数布隆过滤器跟踪密钥当前是否正在迁移。(2)迁移过程中维护数据一致性。设计了一种错误处理方法,如果对数据所有权有绝对的信心,交换机将查询路由到相应的位置;否则,交换机会发出少量复制查询。(3)支持多样化的迁移策略。可以从源端调整其交换机上的数据结构和资源预算,以优化各种性能目标,例如最小化迁移时间和最大化查询吞吐量。