High Performance Design for HDFS with Byte-Addressability of NVM and RDMA——论文泛读

ICS 2016 Paper 分布式元数据论文阅读笔记整理

问题

非易失性存储器(NVM)提供字节寻址能力,具有类似DRAM的性能和持久性,提供了为数据密集型应用构建高通量存储系统的机会。HDFS(Hadoop分布式文件系统)是MapReduce、Spark和HBase的主要存储引擎。尽管HDFS最初是为商品硬件设计的,但它越来越多地被用于HPC(高性能计算)集群。HPC系统的性能要求使HDFS的I/O瓶颈成为重新思考其NVM存储体系结构的关键问题。

挑战

内存存储正越来越多地用于HPC系统上的HDFS[3,20],但使用这些内存进行存储可能会导致计算性能下降,原因是计算和I/O之间对物理内存的竞争。研究[3,20,27]提出了内存中的数据放置策略,以提高写入吞吐量。但是内存中的数据放置使得持久性任务具有挑战性。NVM不仅可以增加整体内存容量,还可以提供持久性,同时显著提高性能。

  • 将NVM用于HDFS的替代技术有哪些?

  • HDFS中基于RDMA的通信能否在HPC系统上利用NVM?

  • 如何重新设计HDFS以充分利用NVM的字节寻址能力来提高I/O性能?

  • 能否为Spark和HBase提出先进、经济高效的加速技术,以在HDFS中利用NVM?基于NVM的HDFS是否也可以用作突发缓冲层,用于在Lustre等并行文件系统上运行Spark作业?

本文方法

本文提出了一种新的HDFS设计,称为NVFS(NVM和RDMA感知HDFS),以利用NVM的字节寻址能力进行基于RDMA(远程直接内存访问)的通信。

  • 通过从NVM分配内存用于基于RDMA的通信,最大限度地减少了计算和I/O的内存争用。

  • 重新设计了HDFS存储体系结构,以利用NVM的内存语义进行I/O操作(HDFS写入和读取)。

  • 为HBase和Spark提供了经济高效的加速技术,利用基于NVM的HDFS设计,仅将HBase预写日志和Spark作业输出存储到NVM。

  • 使用基于NVM的HDFS作为突发缓冲区的增强功能,用于在Lustre等并行文件系统上运行Spark作业。

  • 提出了使用NVFS设计作为突发缓冲区,用于在Lustre等并行文件系统上运行Spark作业。

性能评估表明,设计可以将HDFS的写入和读取吞吐量分别提高4倍和2倍,基准测试的执行时间最多减少了45%。与HDFS相比,将SWIM工作负载的总体执行时间减少了18%,作业38的最大效益为37%。对于Spark TeraSort,本文的方案可获得高达11%的性能增益。HBase插入、更新和读取操作的性能分别提高了21%、16%和26%。基于NVM的突发缓冲区可以将Spark PageRank的I/O性能比Lustre提高24%。

总结

针对利用NVM优化HDFS,本文提出NVFS(NVM和RDMA感知HDFS),以利用NVM的字节寻址能力进行基于RDMA的通信。包括四个技术:(1)从NVM分配内存用于RDMA通信,减少了计算和I/O的内存争用。(2)重新设计HDFS存储体系结构,以利用NVM的内存语义进行I/O操作。(3)在底层文件系统中仅针对作业输出和预写日志(WAL)使用NVM来加速Spark和HBase。(4)使用NVFS作为突发缓冲层的增强功能,用于在并行文件系统(如Lustre)上运行Spark作业。

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

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

相关文章

掌握React的条件渲染:技巧与实践

掌握React的条件渲染:技巧与实践 大家好,我是极客前端探索者,今天我们将深入探讨React中的一项基础而强大的特性——条件渲染。无论是新手还是有经验的开发者,掌握条件渲染都能极大地提升你的React应用的灵活性和用户体验。如果你…

2024第15届东莞国际电子智造及微电子展览会

2024第15届东莞国际电子智造及微电子展览会 The 15th Dongguan International Electronic Intelligent Manufacturing and Microelectronics Exhibition in 2024 时间:2024年11月18-20日 地点:广东现代国际展览中心 详询主办方陆先生 I38&#xff0…

手写实现call函数和应用场景

1. 手写实现call函数 var person {getName:function(){console.log(this) //windowreturn this.name}}var man{name:张三}console.log(person.getName) // undefinedconsole.log(person.getName.call(man)) //张三//------------------------------------------//手写call函数…

java项目中的高并发处理

在Java面试中,当被问及项目中的高并发处理时,你可以从以下几个方面来分享经验: 1. 项目背景介绍 简要介绍项目的业务场景和功能,以及为什么需要高并发处理。 2. 并发量评估 描述如何评估系统需要处理的并发量,包括…

vuejs3 pinia持久化存储

pinia地址: 开始 | Pinia 插件地址: 快速开始 | pinia-plugin-persistedstate 先安装pinia npm install pinia 再安装插件 安装pinia后,再安装这个插件 npm i pinia-plugin-persistedstate 全局中引入持久化插件 在src目录下的main…

react传参有哪些常用方法?--Props,Context API和Redux全局管理

在 React 中,父子组件之间的传参主要通过以下几种方式实现: 1) Props 传递:父子传参 2)Context API: 跨多层组件传递数据 3) Redux: 全局状…

基于Django的博客系统之增加手机验证码登录(九)

需求文档 概述 实现基于Redis和第三方短信服务商的短信验证码登录功能。用户可以通过手机号码获取验证码,并使用验证码进行登录。 需求细节 用户请求验证码 用户在登录页面输入手机号码并请求获取验证码。系统生成验证码并将其存储在Redis中,同时通过…

【Android】安卓开发的前景

人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 目录 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌…

VMware虚拟机-Ubuntu设置共享文件夹(超详细)

目录 前言1. 其他教程2. 创建共享文件夹3. VMware 设置4. Ubuntu 设置4.1 创建 hgfs 目录:4.2 挂载共享目录4.3 验证是否挂载成功4.4 设置开机自动挂载创作不易,禁止转载抄袭!!!违者必究!!! 创作不易,禁止转载抄袭!!!违者必究!!! 创作不易,禁止转载抄袭!!!违…

韩顺平0基础学java——第24天

p484-508 System类 常见方法 System.arrycopy(src,0,dest,1,2); 表示从scr的第0个位置拷贝2个,放到目标数组索引为1的地方。 BigInteger和BigDecimal类 保存大整数和高精度浮点数 BigInte…

Springboot 整合 Flowable(一):使用 flowable-UI 绘制流程图

目录 一、Flowable简介 二、Flowable 与 Activiti 的区别 三、流程图的绘制(以员工请假流程图为例) 1、下载 flowable 的压缩包: 2、启动包中的 tomcat 3、登录页面 4、绘制结束,导出 bpmn20.xml文件 一、Flowable简介 Fl…

老胡的周刊(第146期)

老胡的信息周刊[1],记录这周我看到的有价值的信息,主要针对计算机领域,内容主题极大程度被我个人喜好主导。这个项目核心目的在于记录让自己有印象的信息做一个留存以及共享。 🎯 项目 pingvin-share[2] Pingvin Share 是一个可自…

【机器学习】图神经网络:深度解析图神经网络的基本构成和原理以及关键技术

🔥 个人主页:空白诗 文章目录 引言一、图数据及其应用场景1.1 图数据的定义和特征1.2 常见的图数据结构1.2.1 社交网络1.2.2 知识图谱1.2.3 分子结构1.2.4 交通网络 1.3 图数据在不同领域的应用实例1.3.1 社交网络中的推荐系统1.3.2 知识图谱中的信息检索…

StarRocks详解

什么是StarRocks? StarRocks是新一代极速全场景MPP数据库(高并发数据库)。 StarRocks充分吸收关系型OLAP数据库和分布式存储系统在大数据时代的优秀研究成果。 1.可以在Spark和Flink里面处理数据,然后将处理完的数据写到StarRo…

SQL 表连接(表关联)

目录 一、INNER JOIN(内连接,等值连接) 二、LEFT JOIN(左连接) 三、RIGHT JOIN(右连接): 一、INNER JOIN(内连接,等值连接) 用途:获取两个表中字段能匹配上…

如何解决 Git 默认不区分文件名大小写和同名文件共存?

修改文件命名的大小写,不会有 git 记录 本文章的例子:将 demo.vue 文件命名改为 Demo.vue 1、在Git项目路径下执行该命令 git config core.ignorecase false (1)以上方法可以实现 git 区分 demo.vue 与 Demo.vue 文件&#xff0…

功能强大的多功能文档转换工具Neevia Document Converter Pro 7.5.0.241

Neevia Document Converter Pro是一款功能强大的Windows软件,旨在将文档转换为各种格式,包括PDF、TIFF、JPEG和许多其他格式。该程序专为在企业环境中使用而设计,提供文档转换和处理过程的自动化,这使其成为处理大量文档的组织的***工具。 Neevia Document Converter Pro的…

Oracle的listagg的用法和例子

LISTAGG 是 Oracle 数据库中用于将多行数据连接(聚合)成单个字符串的函数。它通常与 GROUP BY 子句一起使用,以便将来自多个行的值连接成一个由指定分隔符分隔的字符串。 语法 sql LISTAGG(column_value, delimiter) WITHIN GROUP (ORDER …

PHP7 数组的实现

前提 PHP版本:php7.0.29使用到的文件 php-src/Zend/zend_types.hphp-src/Zend/zend_hash.hphp-src/Zend/zend_hash.cphp-src/Zend/zend_string.h 本文 是《PHP7底层设计和源码实现》第5章 数组的实现,学习笔记 功能分析 整体结构 bucket 里面增加h字段…

5、存储管理

磁盘分区方式 MBR格式 分区命令:fdisk 一共有14个分区(4个主分区,扩展分区,逻辑分区) MBR要求硬盘空间是小于2TB的 一块硬盘最多有4个主分区 GPT格式 分区命令:gdisk 一共可以有128个主分区 对硬盘大小没有…