FUSEE: A Fully Memory-Disaggregated Key-Value Store——论文泛读

FAST 2023 Paper 元数据论文阅读汇总

问题

分布式内存键值(KV)存储正在采用分离式内存(DM)体系结构以提高资源利用率。然而,现有的DM上的KV存储采用半分离式设计,在DM上存储KV对,但在单个元数据服务器上管理元数据,因此仍然在元数据服务器上遭受低资源效率的问题。

挑战

  • 以客户端为中心的索引复制。为了容忍内存节点故障,客户端需要在内存池中的内存节点上复制索引,并保证索引副本的一致性。但DM的内存池计算能力很弱。如果客户端简单地使用共识协议[36、46、50]或远程锁[60],由于冲突请求的显式序列化,KV存储的可扩展性较差[4,11,64,70]。

  • 远程内存分配。由于计算能力较差,内存节点无法处理KV对的大量需要计算的细粒度内存分配[25,60]。客户端无法有效分配内存空间,因为需要多个RTT来修改存储在内存节点上的内存管理信息[38]。

  • 客户端故障导致元数据损坏。客户端故障可能会使其他人可以访问部分修改的元数据,从而损害整个KV存储的正确性。

本文方法

本文提出了FUSEE,一种完全内存分离的KV存储,将分离引入到元数据管理中。FUSEE在内存节点上复制元数据,即索引和内存管理信息,在客户端直接管理它们,并在DM体系结构下处理复杂的故障。

  • 为了在客户端上可扩展地复制索引,FUSEE提出了一种客户端为中心的复制协议SNAPSHOT,允许客户端同时访问和修改复制的索引。实现可伸缩性的关键是在不涉及昂贵的请求序列化的情况下解决写冲突[7]。SNAPSHOT在数据副本中更新,客户端能够协作决定写入冲突下的最后一个写入程序,最后的写者获胜。该协议通过TLA+[35]进行了正式验证,以确保安全性和在崩溃停止故障下不存在死锁。

  • 为了高效管理分离的内存,FUSEE采用了一种两级内存管理方案,将以服务器为中心的内存管理过程分为轻计算和重计算任务。计算量较小的粗粒度内存块由计算能力较弱的内存节点管理,计算量较大的细粒度对象由客户端处理。

  • 为了处理客户端故障下的元数据损坏,采用嵌入式操作日志恢复客户端部分执行的操作。嵌入式操作日志重用内存分配顺序,并将日志条目嵌入KV对中,以减少DM上的日志维护开销。

我们使用微型和YCSB混合基准对FUSEE进行评估。实验结果表明,FUSEE在资源消耗更少的情况下,比DM上的最先进的KV存储性能提高了多达4.5倍。

开源代码:https://github.com/dmemsys/FUSEE

实验

实验环境:在CloudLab[19]的APT集群上的22台物理机器(5台MN和17台CN)上运行实验。每台机器都配备了一个8核Intel Xeon E5-2450处理器、16GB DRAM和一个56Gbps Mellanox ConnectX3 IB RNIC。这些机器通过56Gbps Mellanox SX6036G交换机互连。

数据集:microbenchmark,YCSB

实验对比:延迟、吞吐量、可扩展性、故障恢复

总结

针对分离式内存系统中,KV存储的元数据可扩展性差的问题。作者提出将元数据分离到每个内存节点上,在内存节点上复制元数据信息。提出三个优化点:通过客户端为中心的复制协议SNAPSHOT,在不序列化的同时解决写冲突,在多个副本上更新最后判断顺序解决冲突;采用两级内存管理方案,将内存管理分为重任务和轻任务,分别由客户端和内存节点管理;采用嵌入式操作日志进行故障恢复,减少日志开销。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

仓储管理系统——软件工程报告(需求分析)②

需求分析 一、系统概况 仓库管理系统是一种基于互联网对实际仓库的管理平台,旨在提供一个方便、快捷、安全的存取货物和查询商品信息平台。该系统通过在线用户登录查询,可以线上操作线下具体出/入库操作、查询仓库商品信息、提高仓库运作效率&#xff…

C++ 20 Module

头文件包含一直是C/C的传统,它使代码声明与实现分离,但它有一个非常大的问题就是会被重复编译,拖累编译速度。 通常一个标准头文件iostream展开后可能达几十万甚至上百万行。笔者使用下面的示例进行测试,新建一个main.cc&#xf…

每日一题——LeetCode1304.和为零的N个不同整数

方法一 个人方法 n为偶数&#xff0c;只要同时放入一个数的正数和负数&#xff0c;那么和总为0&#xff0c;n是奇数就放入一个0&#xff0c;剩下的当偶数看待 var sumZero function(n) {let res[]if(n%2!0){res.push(0)n--}nn/2for(let i1;i<n;i){res.push(i)res.push(-i…

Linux 系统中查看系统日志方法

Linux 系统提供了强大的日志功能&#xff0c;可以记录系统和应用程序的各种事件和错误信息。系统日志对于故障排除和性能监控非常重要。 一、使用命令行工具查看系统日志 1. 使用 journalctl 命令查看系统日志&#xff1a; journalctl 命令是 systemd 日志管理器的客户端工具…

npm下载依赖报Python,c++等相关错误

执行npm install 下载时&#xff0c;报错&#xff0c;缺少python相关的错 解决方法&#xff1a; //下载python 1、 npm install --global --production windows-build-tools//配置环境 &#xff1a; 也可暂时不用配置,能用就不用配置&#xff08;npm config set python &qu…

大数据学习之Flink,Flink部署

Flink部署 一、了解它的关键组件 客户端&#xff08;Client&#xff09; 作业管理器&#xff08;JobManager&#xff09; 任务管理器&#xff08;TaskManager&#xff09; 我们的代码&#xff0c;实际上是由客户端获取并做转换&#xff0c;之后提交给 JobManger 的。所以 …

力扣746. 使用最小花费爬楼梯

动态规划 思路&#xff1a; 定义 dp[i] 为到达下标 i 层的最小花费&#xff1b;则状态转移方程为&#xff1a; 第 i 层可以从第 i - 1 层爬一层或者第 i - 2 层爬两层到达&#xff1b;则 dp[i] std::min(dp[i - 1] cost[i - 1], dp[i - 2] cost[i - 2])初始状态&#xff1a…

【漏洞复现】CloudPanel makefile接口远程命令执行漏洞(CVE-2023-35885)

文章目录 前言声明一、CloudPanel 简介二、漏洞描述三、影响版本四、漏洞复现五、修复建议 前言 CloudPanel 是一个基于 Web 的控制面板或管理界面&#xff0c;旨在简化云托管环境的管理。它提供了一个集中式平台&#xff0c;用于管理云基础架构的各个方面&#xff0c;包括 &a…

可靠与稳定的数字化时代之选——亚信安慧AntDB数据库

在数字化时代&#xff0c;数据已经成为企业的重要资产。为了确保数据的可靠、稳定与高效处理&#xff0c;越来越多的企业选择亚信安慧AntDB数据库作为其核心数据存储和处理解决方案。AntDB数据库凭借其超融合、可靠和稳定的特点&#xff0c;为企业提供了卓越的数据管理体验。 …

终端(命令提示符或Windows PowerShell或Azure Cloud Shell)概述

终端&#xff08;命令提示符或Windows PowerShell或Azure Cloud Shell&#xff09;是一种很 不 好用的东西 就是要背&#xff0c;很 不 爽 介绍 Windows 终端是一个新式主机应用程序&#xff0c;它面向你喜爱的命令行 shell&#xff0c;如命令提示符、PowerShell 和 bash&…

OpenCV——Scharr边缘检测

目录 一、Scharr算法1、算法概述2、主要函数 二、C代码三、python代码四、结果展示1、灰度图2、X方向一阶边缘2、Y方向一阶边缘3、整幅图像的一阶边缘 五、相关链接 OpenCV——Scharr边缘检测由CSDN点云侠原创&#xff0c;爬虫自重。如果你不是在点云侠的博客中看到该文章&…

代码+视频R语言绘制逆概率加权后的基线表

基于 PS &#xff08;倾向评分&#xff09;的逆概率加权(IPTW )法首先由&#xff32;osenbaum作为一种以模型为基础的直接标准化法提出&#xff0c;属于边际结构模型。简单来说&#xff0c;就是把许多协变量和混杂因素打包成一个概率并进行加权&#xff0c;这样的话&#xff0c…

机器学习_线性回归原理和实战

文章目录 线性回归原理线性回归实战 线性回归原理 在讲线性回归之前&#xff0c;我们先看看中学时学的&#xff0c;一元线性回归的公式&#xff1a;ya∗xb。这公式对于本篇内容关联还是挺大的。 所谓回归分析 (regression analysis)&#xff0c;就是确定两种或两种以上变量间…

小程序中使用echarts实现带边框雷达图

小程序中怎么使用echarts的流程在这边文章&#xff0c;点击去观看 我们项目需要实现一个带边框的雷达图&#xff0c;看了API之后没有发现怎么去实现这个边框&#xff0c;所以想到了画两个雷达图来实现这个边框&#xff0c;具体效果如上&#xff0c;代码如下 // 初始化雷达图i…

未来趋势:视频美颜SDK与增强现实(AR)的融合

当下&#xff0c;视频美颜SDK不断演化&#xff0c;成为用户记录和分享生活时不可或缺的一部分。同时&#xff0c;增强现实技术也以其独特的沉浸感和交互性受到青睐&#xff0c;被广泛应用于游戏、教育、医疗等领域。 一、视频美颜与AR的结合 1.实时美颜的AR增值体验 借助AR的…

定向减免!函数计算让轻量 ETL 数据加工更简单,更省钱

作者&#xff1a;澈尔、墨飏 业内较为常见的高频短时 ETL 数据加工场景&#xff0c;即频率高时延短&#xff0c;一般均可归类为调用密集型场景。此场景有着高并发、海量调用的特性&#xff0c;往往会产生高额的计算费用&#xff0c;而业内推荐方案一般为攒批处理&#xff0c;业…

C++入门学习(十一)字符型

C中的字符型可以表示ASCII码中的所有字符&#xff0c;包括字母、数字、标点符号等。 ASCII码是一种用于编码字符的编码系统&#xff0c;它使用不同的数值来表示不同的字符。ASCII码使用7位或8位二进制数来表示每个字符&#xff0c;因此可以表示128或256个不同的字符。 在ASCI…

【开源】基于JAVA的图书管理系统

目录 一、 系统介绍二、 功能模块2.1 登录注册模块2.1 图书馆模块2.2 图书类型模块2.3 图书模块2.4 图书借阅模块2.5 公告模块 三、 源码解析3.1 图书馆模块设计3.2 图书类型模块设计3.3 图书模块设计3.4 图书借阅模块设计3.5 公告模块设计 四、 免责说明 一、 系统介绍 图书管…

各省税收收入、个人和企业所得税数据,Shp、excel格式,2000-2021年

基本信息. 数据名称: 各省税收收入、个人和企业所得税数据 数据格式: Shp、excel 数据时间: 2000-2021年 数据几何类型: 面 数据坐标系: WGS84 数据来源&#xff1a;网络公开数据 数据字段&#xff1a; 序号字段名称字段说明1sssr_2021税收收入&#xff08;亿元&am…

软件测试到底是选择自学还是报培训机构(纯个人经验分享)----分享给正在迷茫的学弟学妹们!

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…
最新文章