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对的相关范围,提升故障恢复性能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/707026.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于FastJson实现Json数据文件导入导出解析

哈喽,大家好,我是灰小猿,一个超会写bug的程序猿! 今天来记录一个在项目实战中比较实用的方法,主要是针对一些需要存在简单数据文件导入导出的场景,如:数据文件的简单备份、软件升版前后配置导入…

全量知识系统问题及SmartChat给出的答复 之5

Q15. 支持前端(知识表征)的自然语言能力 需要一个 元语言注释工具 以及两个库(叙词库和语料库)和主题词表。请 1)设计 两个库和主题词表的结构 ,2)分别设计它们的接口,3)通过调用它们…

dms深层肌肉刺激仪进口和国产的区别大吗?

DMS深层肌肉刺激仪(Deep Muscle Stimulator)通常被用于物理治疗和康复中,以及在运动训练领域中。国产和进口DMS深层肌肉刺激仪在本质上可能没有太大的差别,但主要有以下两点区别: 选用材料: DMS深层肌肉刺激…

GIT问题记录

一、 1.Gitee相关 复现步骤:自己在gitee上使用WEB解决冲突,本地未拉取最新的origin分支,然后本地也做了其他的修改,然后commit并且push,push时候报错,本地分支不干净 尝试拉取origin的最新内容&#xff…

游戏服务之会话管理

会话的概念与作用 游戏服务器 Session(会话)是指在游戏服务器和客户端之间建立的一个临时的连接。它可以用于存储和管理用户的游戏状态和信息。 当用户登录游戏时,服务器会为该用户创建一个 Session,可用于记录用户的登录状态、角色信息等个人信息。服务器会为每个会话分…

禁止safari浏览器网页双击缩放功能

普通浏览器 普通浏览器&#xff0c;只需要增加meta标签禁止缩放功能就行了 <meta content"widthdevice-width, initial-scale1.0, maximum-scale1.0, user-scalable0;" name"viewport" /> user-scalableno或0 //禁止双指缩放页面initial-scale1.0…

C++之std::vector

容器vector是一个可以改变大小的动态数组。 序列容器中的元素按严格的线性顺序排序。单个元素通过它们在此序列中的位置进行访问动态数组允许直接访问序列中的任何元素&#xff0c;甚至通过指针算术&#xff0c;并在序列末尾提供相对快速的元素添加/删除。 如何定义和初始化动…

【喜讯】优积科技CEO刘其东当选第十届杨浦区科协常委委员!

2023年09月21日&#xff0c;上海市杨浦区科学技术协会第十次代表大会于杨浦区人民政府机关2号楼四楼礼堂隆重召开&#xff01;公司CEO刘其东、COO周兴文、CPO胡艳玲、PM何壮志等来自全区各界的近三百名科技工作者代表参加会议。 大会现场 上海市杨浦区委书记薛侃&#xff0c;上…

CVE CNVD CNNVD

CVE 英文全称是“Common Vulnerabilities & Exposures” 通用漏洞披露。CVE就好像是一个字典表&#xff0c;为广泛认同的信息安全漏洞或者已经暴露出来的弱点给出一个公共的名称。使用一个共同的名字&#xff0c;可以帮助用户在各自独立的各种漏洞数据库中和漏洞评估工具中…

Flutter中高级JSON处理:使用json_serializable进行深入定制

Flutter中高级JSON处理 使用json_serializable库进行深入定制 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at: https://jclee95.blog.csdn.netEmail: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/qq_28550263/article/details/1363…

针对KZG承诺和高效laconic OT的extractable witness encryption

1. 引言 2024年以太坊基金会等成员论文 Extractable Witness Encryption for KZG Commitments and Efficient Laconic OT&#xff0c;开源代码实现见&#xff1a; https://github.com/rot256/research-we-kzg&#xff08;Rust&#xff09; 在该论文中&#xff0c;提供了一种…

OpenAI划时代大模型——文本生成视频模型Sora作品欣赏(八)

Sora介绍 Sora是一个能以文本描述生成视频的人工智能模型&#xff0c;由美国人工智能研究机构OpenAI开发。 Sora这一名称源于日文“空”&#xff08;そら sora&#xff09;&#xff0c;即天空之意&#xff0c;以示其无限的创造潜力。其背后的技术是在OpenAI的文本到图像生成模…

5G-A,未来已来

目前&#xff0c;全国首个5G-A规模组网示范完成。这项由北京联通携手华为共同打造的示范项目&#xff0c;实现了北京市中心金融街、历史建筑长话大楼、大型综合性体育场北京工人体育场三个重点场景的连片覆盖。 实际路测结果显示&#xff0c;5G-A用户下行峰值速率达到10Gbps&am…

了解docker与k8s

随着 k8s 作为容器编排解决方案变得越来越流行&#xff0c;有些人开始拿 Docker 和 k8s 进行对比&#xff0c;不禁问道&#xff1a;Docker 不香吗&#xff1f; k8s 是 kubernetes 的缩写&#xff0c;8 代表中间的八个字符。 其实 Docker 和 k8s 并非直接的竞争对手两者相互依存…

安装使用zookeeper

先去官网下载zookeeper&#xff1a;Apache ZooKeeper 直接进入bin目录&#xff0c;使用powerShell打开。 输入: ./zkServer.cmd 命令&#xff0c;启动zookeeper。 zookeeper一般需要配合Dubbo一起使用&#xff0c;作为注册中心使用&#xff0c;可以参考另一篇博客&#xf…

300分钟吃透分布式缓存-17讲:如何理解、选择并使用Redis的核心数据类型?

Redis 数据类型 首先&#xff0c;来看一下 Redis 的核心数据类型。Redis 有 8 种核心数据类型&#xff0c;分别是 &#xff1a; & string 字符串类型&#xff1b; & list 列表类型&#xff1b; & set 集合类型&#xff1b; & sorted set 有序集合类型&…

基于springboot+vue的大学城水电管理系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

2024数字中国创新大赛·数据要素赛道“能源大数据应用赛”正式上线!参赛指南请查收

近日&#xff0c;由国网福建电力承办的2024数字中国创新大赛能源大数据应用赛正式上线发布。赛事按照数字中国建设、能源革命的战略要求&#xff0c;围绕能源数据要素x、能源数字技术、能源商业模式等热点设置赛题&#xff0c;诚邀社会各界为加快建成新型电力系统出谋划策&…

uniapp的扩展组件uni-popup 弹出层自动打开

我的需求是在页面加载完之后自动打开弹窗&#xff0c;自动打开只能写在onReady 或 mounted 生命周期内&#xff0c;这是这个组件的规定&#xff1a; 如果想在页面渲染完毕后就打开 uni-popup &#xff0c;请在 onReady 或 mounted 生命周期内调用&#xff0c;确保组件渲染完毕…

flutter 加密安全

前言&#xff1a;数据安全 数据的加密解密操作在 日常网络交互中经常会用到&#xff0c;现在密码的安全主要在于 秘钥的安全&#xff0c;如论 DES 3DES AES 还是 RSA, 秘钥的算法&#xff08;计算秘钥不固定&#xff09; 和 保存&#xff0c;都决定了你的数据安全&#xff1b;…