擦除编码(EC)数据中心中的最优机架协调更新

news2024/12/27 15:36:46

擦除编码EC在数据中心中的最优机架协调更新

  • 介绍与背景工作
    • 文章外主流的工作
    • 文章摘要
  • RackCU, the optimal Rack-Coordinated Update solution
    • 数据增量基础更新
    • 奇偶校验基础更新
    • RackCU
    • 其他的更新方法
      • 一些数值实验
  • 可以仅需改进的地方
  • 参考文献

介绍与背景工作

擦除编码(Erasure Coding, EC)是一种提高数据冗余性和可靠性的数据存储方法。在擦除编码中,存储在磁盘上的数据被分割成比特,然后对每个片段进行编码,以实现高级别的保护,然后存储在不同的磁盘中,以实现高数据可靠性。
擦除编码通过数据块生成对应数量的奇偶校验块来进行数据的容错恢复。

机架:把很多个存储节点视为一个整体,这个整体由网络核进行互联。而数据的存储与更新一般是由多个机架为交换存储的单位,机架与机架之间又会有数据的交换。需要指出的是,机架间的带宽,应视为机架内的带宽的一部分。

数据中心:一组节点首先被组织成一个机架,多个机架通过网络核心(即汇聚交换机和核心交换机)进一步相互连接。
在这里插入图片描述
上图就是一个很好的例子,一组节点组成多个机架,机架之间有网络核管理通讯,蓝色的是数据库,绿色的是奇偶校验块(由EC编码的原理生成),它们的数量分别是6和3.

文章外主流的工作

为了解决数据错误或者丢失的问题,采用的常用操作是冗余和擦除编码。相对于冗余来说,擦除编码可以保证在存储开销更小的情况下保证相同程序的容错。但数据更新时,校验块的更新会给数据流带来额外的负担。

现有对擦除编码的研究主要有,减少磁盘的寻道,减少更新的流量等等。

文章摘要

擦除编码在当今的数据中心中被广泛应用,以解决普遍存在的故障,但它很容易引起大量的跨机架通信以进行奇偶校验更新。在本文中,我们提出了一种新的机架协同更新机制来抑制跨机架的更新流量,该机制包括两个连续的阶段:一个是增量收集阶段,它收集数据增量块;另一个是选择性校验更新阶段,它根据更新模式和校验布局更新校验块。我们进一步设计了RackCU,一个机架协调的最优更新方案,实现了跨机架更新流量的理论下限。最后,我们通过大规模仿真和真实数据中心实验进行了广泛的评估,结果表明RackCU可以减少22.1%-75.1%的跨机架更新流量,从而提高34.2%-292.6%的更新吞吐量。

接下来会按照两个更新的阶段,和RackCU的算法顺序进行介绍

RackCU, the optimal Rack-Coordinated Update solution

机架协同更新,一种新的奇偶校验更新机制,包括一个增量收集阶段和另一个选择性奇偶校验更新阶段,在数据更新后立即对数据块进行更新,目的是在保证系统可靠性的前提下最小化跨机架的更新流量。机架协同更新的主要思想是在一些专用的机架(称为收集器机架)中收集数据增量(即旧数据块和新数据块之间的差异),并通过选择适当的更新方法更新校验块。
在这里插入图片描述

在介绍数据增量基础更新奇偶校验块基础更新之前,我们介绍一个例子,这样可以在方法提出时进行更好的理解。

Rx和Ry分别是数据块机架和奇偶校验块机架,在数据增量基础更新中,Rx将数据增量(有改动的数据)依次发送给校验块,根据校验块的更新原理来更新校验块。在奇偶增量基础更新中,在Rx中通过计算得出奇偶增量,再发送给Ry进行校验更新。

接下来,我们从通俗的语言上说命一下两种更新方法

数据增量基础更新

该方法为直接发送数据增量块给校验块。
对于下面的图来说,数据增量更新需要传输的数据量为:
R1,R2,R3有需要发送的数据增量块6块,若采用此方法更新,则需要分别发送给R4和R5中的奇偶校验块,故有粗略的I/O次数6*4=24次

奇偶校验基础更新

通过计算数据增量产生的增量奇偶校验块,并以此发送给校验块来完成校验块的更新。

RackCU

 一些假设:
每个机架内只含有数据块或者校验块
一个机架只能发送增量块给一个机架
发送过程是正确无误的

而作为RackCU提出的两个连续的更新阶段来说,我们可以给出更形象具体的例子
在这里插入图片描述
在RackCU中,会选取收集机架来收集数据增量,最后通过选择计算来发送对应数据增量块还是奇偶校验增量块给含有奇偶校验的机架。算法一共分为两个阶段,(a)和(b)。在R1,R2,R3,R4,R5机架中,1,2,3分别是数据机架,而4和5是存放校验块的机架,且每个机架中只有两个节点(这个节点可以理解为有计算能力的存储机器)。

指定进行数据收集的机架,每个机架负责收集部分的机架的数据增量
每个收集机架可以计算生成增量奇偶校验块,并对比其需传送的增量数据块的大小
并取它们的最小值进行发送,这里记作L

在上图中,选定的收集机架(collection rack)为R2和R4,R1和R3的数据增量分别发送给了R2和R4
通过选择最小值L的增量发送,来进行校验块更新。(可能发送数据增量,也可能发送奇偶校验增量)
由此我们就可以引出核心算法:
在这里插入图片描述
下面对算法进行大致解释

输入数据、奇偶校验块的机架,
找出需要更新的机架的节点
发送增量数据给收集机架
计算出是发送数据增量还是奇偶校验增量
进行发送和更新

思考:虽然将数据发送给收集机架需要I/O代价,但通过其计算出的最小发送块能大大优化校验块更新的效率。且进一步,提高的效率是由通过精简化大量数据增量的发送块为奇偶校验增量块来完成的。

其他的更新方法

CAU:如果数据增量没有超过发送奇偶增量校验块的大小,发送数据增量,否则发送奇偶增量块
The baselin:一旦数据更新,就发送奇偶增量块给校验块更新
Parix:第一次更新,发送全部数据,之后的校验块更新只发送数据增量

一些数值实验

这里只放部分结果图来对比显示RackCU的性能,详情请看参考文献
在这里插入图片描述
RackCU算法的机架间数据流量的减少效果都是显著的。

文章的源码可以在以下网址找到 GitHub - ggw5/RackCU-code

可以仅需改进的地方

改进的地方可以从模型的强假设中下手,比如机架内可以同时存放数据块和奇偶校验块收集机架的选择在性能上可以进行优化,比如可以为多个,或者改成动态根据当下的性能来选择机架。通过以上的改变都可以使算法更加适应大量的实际应用。

补充:文章内容是精度完前沿文献后的总结,并加入自己的理解,且以此方式来记录分享。
在文章过程中,笔者省略掉了模型、公式和数值实验的说明,如果有继续了解的想法,请参看参考文献

参考文献

G. Gong, Z. Shen, S. Wu, X. Li and P. P. C. Lee, “Optimal Rack-Coordinated Updates in Erasure-Coded Data Centers,” IEEE INFOCOM 2021 - IEEE Conference on Computer Communications, 2021, pp. 1-10, doi: 10.1109/INFOCOM42981.2021.9488813.

论文与文章内容可以在
这里RackCu下载

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

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

相关文章

Simulink建模:CRC校验模型

本文研究CRC校验的Simulink模型及其代码生成。 文章目录1 CRC校验2 C代码形式3 Matlab/Simulink建模及代码生成3.1 Matlab Function建模3.2 For Iteration子系统建模4 总结与思考1 CRC校验 在汽车软件开发中,CRC校验常用于CAN通信中。通常将某个CAN报文中的数据通过…

【AVL树】

目录基础知识AVL树的定义结点的平衡因子结构体部分操作思路AVL树的插入平衡化旋转左单旋转右单旋转先左后右双旋转先右后左双旋转插入函数AVl树的删除左平衡代码右平衡代码删除函数基础知识 AVL树的定义 一棵AVL树或者是空树,或者是具有谢下列性质的二叉搜索树&am…

Docker 实战——部署 Nginx 镜像容器、Tomcat 镜像容器、MySQL 镜像容器

3.安装 Docker 可使用 yum list docker-ce --showduplicates | sort -r 命令来查看 Docker 的所有版本。 [rootDocker ~]# yum -y install docker-ce-17.12.1.ce #安装docker 4.启动 Docker 并设置开机自启 [rootDocker ~]# systemctl start docker [rootDocker ~]# syste…

uniClound云开发创建流程

uniClound是 DCloud 联合阿里云、腾讯云,为开发者提供的基于 serverless 模式和 js 编程的云开发平台。云服务创建项目,使用熟悉的js,轻松搞定前后台整体业务,使前端开发离全栈开发又进一步,尤其是一键生成代码的功能&…

海外的 SEO 网站如何进行优化

作为一个已经出海12年的专业平台,米贸搜为你整理了一份海外SEO优化方法,希望对你有所帮助。 无论是平台还是外贸网站,无论是外贸还是内销,一个绕不开的话题就是流量。随着各平台和外贸网站竞争的加剧,流量的获取成本也…

【ML】基于机器学习的心脏病预测研究(附代码和数据集,逻辑回归模型)

心脏病是人类健康的头号杀手, 全球大约1/3的人口死亡是由心脏病引起的。而我国,每年大概有几十万人口死于心脏病。如果我们可以通过提取人体相关的指标(既往病史、家族病史、血压情况、血糖情况等等),通过数据挖掘方式来分析不同特征对于心脏病的影响,或者建立电子病历,…

flink1.13.2 text文本数据迁移为orc+snappy数据解决方案

1.表结构不变(列名,分区不变),表存储和压缩算法改变 1.1. 外部表(未分区) 1.1.1. 拷贝源表结构,创建外部表 create table if not exists [目标表名] like [源表名] 示例: create table if not exists dwm_soh_estimate_nopartition_out_snappy like dwm_soh_estimate_n…

10x倍加速PDE的AI求解:元自动解码器求解参数化偏微分方程

研究背景 科学和工程中的许多应用需要求解具有不同方程系数、不同边界条件甚至不同求解域形状的偏微分方程(Partial Differential Equation,PDE),即需要求解一个方程族而不是单个方程。这类应用经常在反问题求解、控制和优化、风险评估和不确定性量化领域…

C++GUI之wxWidgets(4)-编写应用涉及的类和方法(1)

目录wxApp ClasswxApp::OnInit()wxFrame ClasswxFrame处理的事件wxApp Class 当wxUSE_GUI1时,wxApp类代表应用程序本身。 除了wxAppConsole提供的特性外,它还可以跟踪顶部窗口(SetTopWindow()),并添加了对视频模式的支持(SetDisp…

2023最新SSM计算机毕业设计选题大全(附源码+LW)之java小区宠物信息管理系统0v9l2

最近发现近年来越来越多的人开始追求毕设题目的设创、和新颖性。以往的xx管理系统、xx校园系统都过时了。大多数人都不愿意做这类的系统了,确实,从有毕设开始就有人做了。但是很多人又不知道哪些毕设题目才算是新颖、创意。太老土的不想做,创…

高低JDK版本中JNDI注入(上)

目录 前言: (一)RMI 0x01 低版本 1.1 服务端 1.2 客户端 1.3 ExportObject.java 0x02 高版本 (二)LDAP 0x01低版本 1.1 服务端 1.2 客户端 1.3 ExportObject.java 前言: 这篇文章主要是分析在高低版本JDK中JNDI注入RMI和LDA…

痞子衡嵌入式:浅析IAR下调试信息输出机制之硬件UART外设

大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家分享的是IAR下调试信息输出机制之硬件UART外设。 在嵌入式世界里,输出打印信息是一种非常常用的辅助调试手段,借助打印信息,我们可以比较容易地定位和分析程序…

泰迪·滇西科技师范学院智能工作室分享:第一章NumPy库——先基础区别数组和列表

前言 来看NumPy库的应该都是接触到庞大数据处理的朋友吧。NumPy是一个简洁好用的数据库,尤其是在科学计算上,专为进行严格数字处理而产生的。其中的ndarray可以说是NumPy库的心脏,它提供了一个强大的N维数组对象,这一章我们先来简…

2 寄存器

寄存器 CPU是由运算器、控制器、寄存器等器件构成,他们依靠内部总线连接。 运算器进行信息处理:寄存器进行信息存储;控制器控制各种器件进行工作;内部总线连接各种器件,在它们之间进行数据的传送。 寄存器是程序员可…

[附源码]Python计算机毕业设计Django社区住户信息管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

AI 绘画整体认知

体验 ChatGPT 之后,深刻感觉到 “了解 AI 绘画” 这件事必须得安排上了。 于是用了两三个日夜,了解如下: (文末附完整脑图链接) 一、发展时间线 二、使用已有的AI绘画云平台(目前国内外有很多&#xff09…

华为与思科路由器静态路由配置

一、华为路由器配置静态路由 1、静态路由基础 拓扑如下: 配置静态路由,使得PC1可以ping通PC3。 R1: interface Ethernet0/0/0ip address 124.16.8.1 255.255.255.0 # interface Ethernet0/0/1ip address 110.69.70.1 255.255.255.0 # # ip route-static 172.16.3.0 255.25…

Java_笔记_继承_虚方法表_成员变量方法构造_thisSuper

一、继承的概念以及优势: 1.概念: 1)继承是面向对象三大特征(封装,继承,多态)之一,可让类与类之间产生子父的关系。 2)封装:对象代表什么,就封装…

VCS Design Compiler(1)

|||||||||||| ========= =============================== VCS & Design Compiler 联合应用 =================================

[附源码]JAVA毕业设计流行病调查平台(系统+LW)

[附源码]JAVA毕业设计流行病调查平台(系统LW) 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术&#xff1…