纠删码参数自适应匹配问题ECP-AMP实验方案(下)

news2024/11/18 16:52:01

7.参数选择

7.1.综合性能goal

根据权重和性能指标,本方案为每个文件确定最佳的纠删码参数,并将文件分组到不同的数据池中。本文使用了以下公式计算每个文件的评分,表示该文件在使用不同的纠删码参数时的综合性能。
s i j k = ∑ j = 1 6 c j ∗ p i j k s_{ijk}=\sum_{j=1}^6c_j*p_{ijk} sijk=j=16cjpijk

其中,sijk表示第i个文件大小在使用第j个数据块个数和第k个冗余块个数时的评分,cj表示第j个性能指标的critic权重,pijk表示第i个文件大小对应的第j个数据块个数和第k个冗余块个数对应的第j个性能指标的归一化数据。

7.2.确定每个文件的最佳参数

本文使用了以下公式确定每个文件的最佳纠删码参数,即使得评分最大的数据块个数和冗余块个数:
( k i ∗ , m i ∗ ) = argmax ⁡ j , k s i j k (k^*_i,m^*_i)=\operatorname*{argmax}_{j,k} s_{ijk} (ki,mi)=argmaxj,ksijk

其中, ( k i ∗ , m i ∗ ) (k^*_i,m^*_i) (ki,mi)表示第i个文件大小对应的最佳纠删码参数。表示在三维数组中,找到一个元素使sijk最大。

经过参数选择后,本文得到了每个文件大小对应的最佳纠删码参数。

7.3.确定每个数据池的纠删码参数

为了实现最低存储成本和最高可靠性的权衡,本文将文件按照不同的大小范围分组到不同的数据池中,并为每个数据池设置不同的纠删码参数。本文使用了以下公式确定文件大小的分组范围:
[ F S m i n , F S m a x ] = [ n − 1 5 , i 5 ] ∗ F S m a x [FS_{min},{FS_{max}}]=[\frac{n-1}{5},\frac{i}{5}]*FS_{max} [FSmin,FSmax]=[5n1,5i]FSmax
(暂时没有想好)

其中,[FSmin,FSmax]表示第i组文件大小的分组范围,i表示分组编号,取值为1-5,FSmax表示文件大小的最大值,即1GB。

本文使用了以下公式确定每个数据池的纠删码参数:
( K , M ) = ( ∑ F S m a x i = F S m i n ∗ k i ∗ F S m a x − F S m i n + 1 , ∑ F S m a x i = F S m i n ∗ m i ∗ F S m a x − F S m i n + 1 ) (K,M)=(\frac{\sum^{FS_{max}^{i=FS_{min}}*k_i^*}}{FS_{max}-FS_{min}+1},\frac{\sum^{FS_{max}^{i=FS_{min}}*m_i^*}}{FS_{max}-FS_{min}+1}) (K,M)=(FSmaxFSmin+1FSmaxi=FSminki,FSmaxFSmin+1FSmaxi=FSminmi)

其中,(K,M)表示第i组数据池的纠删码参数, ( k i ∗ , m i ∗ ) (k^*_i,m^*_i) (ki,mi)表示第i个文件大小对应的最佳纠删码参数。

经过分组策略后,本文得到了每个数据池对应的纠删码参数,如表4所示。

8.实验结果和分析

8.1.最低存储成本最高可靠性表

综合评分随着文件大小的增加而增加,随着k或m的增加而减少。这是因为,文件大小越大,各项性能指标越差;k或m越大,各项性能指标越好。我们选出了每个文件大小对应的最高评分作为其最佳参数,并得到了一张最低存储成本最高可靠性的file_size,k,m表。

8.2.数据池建立和建议

为了给云服务存储提供商提供不同的数据存储方案,我们将上一节得到的最低存储成本最高可靠性的file_size,k,m表分为5组,分别建立5个数据池。每个数据池包含了一定范围内的文件大小和相应的最佳纠删码参数。我们根据不同的数据池的特点,给企业提出了相应的建议,以实现存储成本和可靠性之间的最佳权衡。具体如下:

  • 数据池1:文件大小为0MB-200MB,最佳纠删码参数为(2,1)-(8,7)。这个数据池适合存储一些小型且重要的文件,例如文档、表格、图表等。这些文件占用的空间较少,但是需要高度的可靠性和恢复性能。
  • 数据池2:文件大小为200MB-400MB,最佳纠删码参数为(9,8)-(12,11)。这个数据池适合存储一些中型且较重要的文件,例如图片、视频、音频等。这些文件占用的空间较多,但是也需要较高的可靠性和恢复性能。
  • 数据池3:文件大小为400MB-600MB,最佳纠删码参数为(13,12)-(14,13)。这个数据池适合存储一些大型且一般重要的文件,例如电影、游戏、软件等。这些文件占用的空间很多,但是可以容忍一定程度的故障。
  • 数据池4:文件大小为600MB-800MB,最佳纠删码参数为(15,14)。这个数据池适合存储一些超大型且不太重要的文件,例如备份、归档、日志等。这些文件占用的空间非常多,但是可以忽略故障。
  • 数据池5:文件大小为800MB-1000MB,最佳纠删码参数为(16,15)。这个数据池适合存储一些极大型且无关紧要的文件,例如测试、演示、样例等。这些文件占用的空间极其多,但是可以完全忽略故障。

8.3.实验评估

为了验证本文提出的基于critic客观权重法的纠删码参数选择方法的有效性和优越性,本文设计了以下四种对比方法:

  • Random:一种随机选择纠删码参数的方法,它对每个文件随机地选择一个纠删码参数,本文使用了均匀分布的随机数生成器,用于随机生成纠删码参数。
  • Regular:一种固定纠删码参数方法,即对所有文件大小,都是使用想要的纠删码参数,本文选择(5,3)的RS纠删码作为固定纠删码参数。
  • Cost:一种基于存储成本最小化的纠删码参数选择方法,它对每个文件选择一个使得存储成本最小的数据块个数和一个冗余块个数,不考虑其他性能指标。
  • Reliability:一种基于可靠性最大化的纠删码参数选择方法,它对每个文件选择一个使得可靠性最大的数据块个数和一个冗余块个数,不考虑其他性能指标。

仍然选择RD、SC、TO、CO、RE、RT六中性能指标,具体请见6.1节 数据获取。

本文使用了两种数据集来进行实验,一种是人工生成的数据集,另一种是真实的数据集。人工生成的数据集是根据不同的文件大小,随机生成的二进制文件,共有15360个文件,每个文件大小为0MB-1GB之间的64MB的倍数。真实的数据集是从互联网上下载的一些常见的文件,包括文本文件、图片文件、音频文件、视频文件等,共有1000个文件,每个文件大小为0MB-1GB之间的任意值。本文将这两种数据集分别存储在Hadoop软件上,使用本文方法、固定纠删码参数的方法和随机纠删码参数的方法对这些文件进行编码和恢复,得到了不同方法的性能指标数据。

从表5中可以看出,本文提出的基于critic客观权重法的纠删码参数选择方法在所有的性能指标上都优于其他方法,说明该方法可以有效地实现最低存储成本和最高可靠性的权衡,同时也优化了数据恢复和应用程序性能。具体来说,该方法相比于其他方法有以下优点:

  • 相比于Random方法,该方法可以根据文件大小和多个性能指标,自动地为每个文件确定最佳的纠删码参数,并将文件分组到不同的数据池中,而不是随机地选择纠删码参数,从而提高了系统运行效果和效率。
  • 相比于Cost方法,该方法可以兼顾多个性能指标,如数据冗余度、存储成本、传输开销、可靠性、恢复性能、应用程序性能、总新能、性价比等,并为每个文件自动地确定最佳的纠删码参数,而不是只考虑存储成本,从而提高了数据可靠性和容错性。
  • 相比于Reliability方法,该方法可以兼顾多个性能指标,如数据冗余度、存储成本、传输开销、可靠性、恢复性能、应用程序性能、总新能、性价比等,并为每个文件自动地确定最佳的纠删码参数,而不是只考虑可靠性,从而降低了数据存储成本和传输开销。

8.4.实验分析

本节对实验结果进行了分析,主要包括不同文件大小和不同纠删码参数的影响。

8.4.1不同文件大小的影响

为了分析不同文件大小对纠删码参数选择的影响,本文将文件大小分为五个等级,分别为[0,200]MB、(200,400]MB、(400,600]MB、(600,800]MB和(800,1000]MB,并计算了每个等级的平均性能指标,如表6所示。

表6:不同文件大小等级的平均性能指标

从表6中可以看出,随着文件大小的增加,各个性能指标都呈现出一定程度的下降趋势,说明文件大小对纠删码参数选择有一定的影响。具体来说,文件大小越大,有以下特点:

  • 存储成本越高,因为需要存储更多的编码块。
  • 可靠性越低,因为需要恢复更多的数据块。(不一定,需要看实验得出)
  • 恢复性能越差,因为需要花费更多的时间和资源。

本文提出的基于critic客观权重法的纠删码参数选择方法可以根据不同的文件大小自动地为每个文件确定最佳的纠删码参数,并将文件分组到不同的数据池中,以实现最低存储成本和最高可靠性的权衡。从表6中可以看出,该方法在每个文件大小等级上都优于其他方法,在整体上也达到了最优的平均性能指标。这说明该方法可以有效地适应文件大小的变化和多样性,并为每个文件选择合适的纠删码参数。

9.结论和今后工作

本文提出了一种基于critic客观权重法的纠删码参数选择方法,该方法可以根据文件大小和多个性能指标,自动地为每个文件确定最佳的纠删码参数,并将文件分组到不同的数据池中,以实现最低存储成本和最高可靠性的权衡。本文在Hadoop平台上进行了实验,结果表明,该方法可以有效地降低数据存储成本,提高数据可靠性。与现有方法相比,本文方法具有以下优点:

  • 可以兼顾多个性能指标,如数据冗余度、存储成本、传输开销、可靠性、恢复性能、应用程序性能、总新能、性价比等,并为每个文件自动地确定最佳的纠删码参数。
  • 可以处理不同的文件大小和编码块大小,而不需要固定或预设任何参数,可以自动地根据文件大小的变化和多样性进行调整。

本文的工作为纠删码参数选择问题提供了一种新的思路和方法,也为数据存储和管理领域提供了一种新的解决方案。本文的工作还有以下几个方面可以进一步改进和拓展:

  • 可以考虑更多的性能指标和影响因素,如网络延迟、编码复杂度等,以更加全面地评价纠删码参数选择的效果。
  • 可以考虑更大文件的纠删码参数配置实验,以适应现有海量数据的存储。
  • 可以降低现实生活中在服务器上配置纠删码方案消耗的成本,以方便更加灵活的自适应选择由文件大小直接确定纠删码方案。
  • 实验的数据类型可以更加多元,如图片、视频等等,使实验结果更具说服力。

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

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

相关文章

2023 CCPC哈尔滨 报告

比赛链接:Dashboard - 10.6组队训练赛-2023CCPC哈尔滨站 - Codeforceshttps://codeforces.com/group/w6iGs8kreW/contest/552949 做题数:3 题 三题都是队友写的。所以来补一下 B L J。 B题: B. Memory Little G used to be a participant …

【MySQL】基本查询(上):创建、读取

1.Create(创建) 语法: INSERT [INTO] table_name [(column [, column] ...)] VALUES (value_list) [, (value_list)] ...value_list: value, [, value] ... 接下来我们用这个下表作为例子: -- 创建一张学生表 CREATE TABLE students ( id INT UNSIGN…

Http 协议和 RPC 协议有什么区别?

Http 协议和 RPC 协议有什么区别? 三个层面来述说: 从功能特性来说: HTTP是一个属于应用层的超文本传输协议,是万维网数据通信的基础,主要服务在网页端和服务端的数据传输上。 RPC是一个远程过程调用协议&#xff0…

【JS】哈希法解决两数之和

思路 使用哈希法:需要快速查询一个元素是否出现过,或者一个元素是否在集合里时 本题需要一个集合来存放我们遍历过的元素,然后在遍历数组的时候去询问这个集合,符合要求的某元素是否遍历过,也就是 是否出现在这个集合。…

【算法】链表:24.两两交换链表中的节点

目录 1、题目链接 2、题目介绍 3、解法 4、代码 1、题目链接 24. 两两交换链表中的节点 - 力扣(LeetCode) 2、题目介绍 3、解法 引入伪头节点: 为了处理头节点可能被交换的情况,我们引入一个伪头节点(dummy no…

jenkins远程调用

curl -G -d tokenfetch_coverage_token&systemmes2&typefull&envsit&resetno http://remote_user:1172e3d5524629fabef5dd55c652646232192.168.36.196:8080/job/fetch_coverage/buildWithParameters 在jenkins的用户界面设置一个token就可以了 remote_user 为…

Android笔记(二十四)基于Compose组件的MVVM模式和MVI模式的实现

仔细研究了一下MVI(Model-View-Intent)模式,发现它和MVVM模式非常的相识。在采用Android JetPack Compose组件下,MVI模式的实现和MVVM模式的实现非常的类似,都需要借助ViewModel实现业务逻辑和视图数据和状态的传递。在这篇文章中&#xff0c…

ESP32-C3实现UART

配置串口参数 在编写代码之前,你需要确定要使用的 UART 端口号和配置参数(波特率、数据位、停止位等)。 // 定义 UART 端口 #define TX_PIN 1 // TX 管脚 #define RX_PIN 3 // RX 管脚// 定义串口配置参数 #define UART_BAUDRATE 115200 // …

springboot 项目使用 gitlab 的 API

springboot 项目使用 gitlab 的 API 前言获取用户 access tokenSpring boot项目集成GitLab依赖1 pom依赖2 配置文件3 启动类4 核心代码gitlab 的 API 说明前言 需求是通过gitlab的api获取其中的数据。 gitlab官方API文档:https://docs.gitlab.com/ee/api/users.html gitla…

SpringBoot实现电子文件签字+合同系统

​ 博客主页: 南来_北往 系列专栏:Spring Boot实战 在现代企业中,合同管理和电子文件签字已成为日常运营不可或缺的一部分。为了提升效率和安全性,我们可以使用SpringBoot框架来实现一个电子文件签字和合同管理系统。本文将详细介绍如何…

腾讯云SDK连麦应用

音视频终端 SDK(腾讯云视立方)将新版连麦管理方案的多个功能集成至 腾讯云视立方控制台 > 连麦管理,便于用户快捷使用,具体分为快速上手、连麦应用、用量统计和地址生成器四个功能页面。更多连麦功能说明,请参见 新…

【算法刷题指南】BFS解决FloodFill算法

🌈个人主页: 南桥几晴秋 🌈C专栏: 南桥谈C 🌈C语言专栏: C语言学习系列 🌈Linux学习专栏: 南桥谈Linux 🌈数据结构学习专栏: 数据结构杂谈 🌈数据…

Leetcode - 周赛418

目录 一,3309. 连接二进制表示可形成的最大数值 二,3310. 移除可疑的方法 三,3311. 构造符合图结构的二维矩阵 四,3312. 查询排序后的最大公约数 一,3309. 连接二进制表示可形成的最大数值 本题数据范围较小&#…

sklearn机器学习实战——随机森林回归与特征重要性分析全过程(附完整代码和结果图)

sklearn机器学习实战——随机森林回归与特征重要性分析全过程(附完整代码和结果图) 关于作者 作者:小白熊 作者简介:精通python、matlab、c#语言,擅长机器学习,深度学习,机器视觉,目…

南京大学《软件分析》李越, 谭添——1. 导论

导论 主要概念: soundcompletePL领域概述 动手学习 本节无 文章目录 导论1. PL(Programming Language) 程序设计语言1.1 程序设计语言的三大研究方向1.2 与静态分析相关方向的介绍与对比静态程序分析动态软件测试形式化(formal)语义验证(verification) 2. 静态分析:2.1莱斯…

爆红网络的膨胀飞天视频,背后竟是Pika1.5 AI视频模型!

最近,社交网络上疯传着各种动物、建筑等物体膨胀飞上天的搞笑视频。无论是真实的还是虚构的物体,都在视频中被压扁、融化、膨胀,引发了广泛的病毒式传播。而这些有趣的效果,都是由Pika最新推出的1.5版本AI视频模型所制作的。 Ai …

STM32输入捕获模式详解(下篇):PWM输入捕获与PWI模式

1. 前言 在上篇文章中,我们详细介绍了STM32输入捕获模式的基本原理和应用方法,包括测频法和测周法。本文将重点探讨如何通过STM32的PWI(PWM Input)模式实现对PWM信号的频率和占空比测量。我们将结合具体的硬件电路,解…

[万字解析]从零开始使用transformers微调huggingface格式的中文Bert模型的过程以及可能出现的问题

系列文章目录 使用transformers中的pipeline调用huggingface中模型过程中可能遇到的问题和修改建议 [万字解析]从零开始使用transformers微调huggingface格式的中文Bert模型的过程以及可能出现的问题 文章目录 系列文章目录前言模型与数据集下载模型下载数据集下载 数据加载、…

单细胞转录组 —— simpleaf 原始数据处理

单细胞转录组 —— 原始数据处理实战(simpleaf) 前言 Alevin-fry 是一个快速、准确且内存节约的单细胞和单核数据处理工具。 Simpleaf 是用 Rust 编写的程序,它提供了一个统一且简化的界面,用于通过 alevin-fry 流程处理一些最…

软件设计师——系统基础开发

📔个人主页📚:秋邱-CSDN博客☀️专属专栏✨:软考——软件设计师🏅往期回顾🏆:软件设计师——信息安全🌟其他专栏🌟:C语言_秋邱 ​ 一、软件工程概述 1.1、考…