DEPART: Replica Decoupling for Distributed Key-Value Storage——论文泛读

FAST 2022 Paper 论文阅读笔记整理

问题

现代分布式KV存储通过在节点之间分发KV对的副本来采用复制以实现容错。然而,现有的分布式KV存储通常在同一索引结构中管理所有副本,例如LSM-Tree,从而导致复制冗余之外的大量I/O成本。

本文方法

提出了副本解耦的概念,将副本的主副本和冗余副本的存储管理解耦,这样不仅可以降低索引中的I/O成本,还可以提供可调的性能。思路是如果使用不同的索引结构来管理不同类型副本的存储,不仅可以通过减小每种类型副本的索引结构的大小来减轻读/写放大,而且可以实现灵活的存储管理,以适应不同的设计权衡。

使用LSM树只管理主副本,以便以更轻量级的方式保留LSM树的设计特性;同时,对冗余副本使用更简单但可调的索引结构,以根据性能要求平衡读写性能。

在管理LSM树中的主副本时,使用两层日志来管理冗余副本,其顺序可调,以实现平衡的读写性能。其思想是将冗余副本批处理写入到仅追加的全局日志中,以获得高写入性能。进一步将全局日志拆分为多个本地日志,每个本地日志中KV对的顺序可通过单个参数进行调整,以平衡冗余副本的读写性能;例如,给定高读(或写)一致性级别(即,在成功操作中要读取(或写入)的副本的数量),可以对两层日志进行调整,以获得高读(或写)性能。通过按不同的密钥范围组织KV对,并将恢复操作限制为仅访问KV对的相关范围,双层日志还提高了故障恢复性能。

开源代码:GitHub - ustcadsl/depart

实验表明,在各种一致性级别和参数设置下,DEPART在所有性能方面都优于Cassandra。具体而言,在最终的一致性设置下,DEPART的写入、读取、扫描和更新吞吐量分别高达1.43倍、2.43倍、2.68倍和1.44倍。

实验

实验环境:两个12核Intel(R)Xeon(R)CPU E5-2650 v4@2.20 GHz、32 GiB RAM、一个500 GiB Samsung 860 EVO SATA SSD、通过10 Gb/s以太网交换机互连、CentOS 7.6.1810、64位Linux内核3.10.0、Ext4文件系统。

数据集:YCSB

实验对比:吞吐量、延迟、尾延迟、读写放大率、对时间细分分析各步骤时间、故障恢复时间

总结

对于KV存储中的副本管理进行优化,现有方法实验同一索引结构中管理所有副本,例如LSM-Tree,会导致复制冗余之外的大量I/O成本。本文提出副本解耦,将主副本和冗余副本分离。使用LSM树管理主副本,以便以更轻量级的方式保留LSM树的设计特性;使用两层日志来管理冗余副本,通过只追加的全局日志保证冗余副本写入速度,将全局日志根据用户需要拆分为多个本地日志,分别优化读(写)性能;按不同的密钥范围组织KV对,将恢复操作限制为仅访问KV对的相关范围,提升故障恢复性能。

  • 19
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

妙BOOK言

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

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

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

打赏作者

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

抵扣说明:

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

余额充值