DAOS: A Scale-Out High Performance Storage Stack for Storage Class Memory——论文泛读

Supercomputing Frontiers 2020 Paper 分布式元数据论文阅读笔记整理

问题

企业、政府和学术界出现的数据密集型应用程序将现有的I/O模型扩展到了极限。现代I/O工作负载的特点是元数据与未对齐和碎片化数据的结合比例越来越高。传统的存储堆栈为这些工作负载提供了较差的性能,因为它增加了大量的延迟并引入了对齐约束。

随着经济实惠的大容量持久性内存与高速结构相结合,为重新定义存储模式和高效支持现代I/O工作负载提供了一个独特的机会。新堆栈必须从头开始就采用字节粒度的无共享接口,还必须能够支持大规模分布式存储,而故障将成为常态,同时保持低延迟和高带宽的结构访问。

本文方法

本文介绍了分布式异步对象存储(DAOS),一种开源的扩展存储系统,支持用户空间中的存储类内存(SCM)和NVMe存储。它的高级存储API支持结构化、半结构化和非结构化数据模型,克服了传统的基于POSIX的并行文件系统的限制。对于HPC工作负载,DAOS提供了对MPI-IO和HDF5的直接支持,以及对遗留应用程序的POSIX访问。

DAOS是一个开源软件定义的对象存储, 为大规模分布式非易失性内存(NVM)设计的。提供了KV存储接口,并提供了事务性非阻塞I/O、版本化数据模型和全局快照等特性。

三个模块:

  • 持久内存和持久内存开发工具包(PMDK)。用来存储所有内部元数据、应用程序/中间件KV索引、对延迟敏感的小型I/O。在系统启动期间,DAOS使用系统调用来初始化对持久内存的访问。例如,它将DAX文件系统的持久内存文件映射到虚拟内存地址空间。当系统启动和运行时,通过load和store等内存指令直接访问用户空间中的持久内存,而不需要长的存储调用堆栈。

  • NVMe SSD硬盘和存储性能开发套件(SPDK)[7],支持大I/O和延迟不敏感的小I/O。SPDK提供了一个C库,可以链接到存储服务器,并可以向NVMe SSD提供直接的零拷贝数据传输。DAOS服务可以通过SPDK队列异步提交来自用户空间的多个I/O请求。SPDK I/O完成后,将在永久存储器中为先前存储在SSD中的数据创建索引。

  • Libfabric[8]和底层高性能结构,如Omni-Path架构或InfiniBand(或标准TCP网络)。Libfabric是一个库,用于定义用户空间API和OFI,并将Libfabric通信服务导出到应用程序或存储服务。DAOS的传输层构建在Mercury[9]之上,使用libfabric/OFI插件。它为消息和数据传输提供了基于回调的异步API,并为推进网络活动提供了无线程轮询API。DAOS服务线程可以主动轮询来自Mercury/libfabric的网络事件,作为异步网络操作的通知,而不使用中断,避免上下文切换对性能产生负面影响。

总结

针对大规模分布式非易失性内存(NVM)下的存储系统,本文提出DAOS,采用PMDK、SPDK、RDMA、用户态线程等技术,使数据从发起到存储的整个过程都处于用户态。核心是3个组件:(1)用持久内存和PMDK,存储元数据、KV索引、对延迟敏感的小型I/O,使用load和store等内存指令直接访问。(2)用NVMe SSD和SPDK,支持大I/O和对延迟不敏感的小I/O,使用零拷贝、异步提交I/O等技术。(3)用Libfabric定义用户空间API,客户端的消息和数据传输使用基于回调的异步API,服务线程采用轮询处理网络事件,不使用中断,避免上下文切换对性能的影响。

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

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

相关文章

OrangePi AIPro:次世代嵌入式边缘AI计算与智能机器人应用开发平台

近年来,随着物联网(IoT)和人工智能(AI)技术的快速发展,嵌入式边缘计算板卡在智能设备中的应用越来越广泛。OrangePi AIpro作为一款轻量化高性能的嵌入式边缘人工智能计算SoC,在硬件配置、AI性能和使用便利性方面都有着突出的表现。本文将详细评测OrangePi AIpro的各个方…

项目文章 |NC揭示真菌中A-to-I mRNA编辑机制及其调控和演化

A-to-I mRNA编辑是一种重要的基因表达调控方式,它通过将mRNA中的腺苷(A)转变为肌苷(I),从而可能改变蛋白质的编码信息。在动物中,这一过程由ADAR家族酶介导,然而在真菌中,由于缺乏ADARs的同源物,其背后的机…

python onnx 推理yolov10

python onnx 推理yolov10 import onnxruntime as ort import cv2 import numpy as np# Class names for the COCO dataset CLASSES = ["person", "bicycle", "car", "motorcycle", "airplane"

[猫头虎分享21天微信小程序基础入门教程]第19天:小程序的插件开发与使用

[猫头虎分享21天微信小程序基础入门教程]第19天:小程序的插件开发与使用 第19天:小程序的插件开发与使用 🔧 自我介绍 大家好,我是猫头虎,一名全栈软件工程师。今天我们继续微信小程序的学习,重点了解如…

StackExchange.Redis跑起来,为什么这么溜?

StackExchange.Redis 是一个高性能的 Redis 客户端库,主要用于 .NET 环境下与 Redis 服务器进行通信,大名鼎鼎的stackoverflow 网站就使用它。它使用异步编程模型,能够高效处理大量请求。支持 Redis 的绝大部分功能,包括发布/订阅…

SwiftUI 5.0(iOS 17)进一步定制 TipKit 外观让撸码如虎添翼

概览 在之前 SwiftUI 5.0(iOS 17)TipKit 让用户更懂你的 App 这篇博文里,我们已经初步介绍过了 TipKit 的基本知识。 现在,让我们来看看如何进一步利用 SwiftUI 对 TipKit 提供的细粒度外观定制技巧,让 Tip 更加“明眸…

灯塔工厂产业数字化平台解决方案(50页PPT)

方案介绍: 随着工业4.0和智能制造的快速发展,传统工厂正面临着转型升级的迫切需求。为了提升生产效率、优化资源配置、增强市场竞争力,我们推出了灯塔工厂产业数字化平台解决方案。该方案旨在通过先进的信息技术手段,将传统工厂转…

springboot发送短信验证码,结合redis 实现限制,验证码有效期2分钟,有效期内禁止再次发送,一天内发送超3次限制

springboot结合redis发送短信验证码,实现限制发送操作 前言(可忽略)实现思路正题效果图示例手机号不符合规则校验图成功发送验证码示例图redis中缓存随机数字验证码,2分钟后失效删除redis缓存图验证码有效期内 返回禁止重复发送图验证码24小时内发送达到3次&#xf…

Https自签名证书

openSSL下载 https://slproweb.com/products/Win32OpenSSL.html 1_整体流程 (1)https介绍 HTTPS 是 Hypertext Transfer Protocol Secure 的简称,是基于 SSL 加密方式的 HTTP 协议 (2)CA机构介绍 介绍&#xff1a…

2024年,游戏行业还值得进入吗?

来自知乎问题“2024年,游戏行业还值得进入吗?”的回答。 ——原问题描述:从超小厂执行策划做起,未来有前途吗? 展望2024年,国内外的游戏市场环境或将变得更加复杂,曾经那个水大鱼大的时代过去了…

考试宝典——软件过程与管理重点知识总结

概论 软件工程三要素 过程方法工具 软件过程的定义 软件过程是用于软件开发及维护的一系列活动、方法及实践。 常见软件过程分类(五大类) 客户-供应商过程:内部直接影响到客户、外部直接影响开发、向客户交付软件以及软件正确操作与使用的过…

路由器交换机直连方案(RM50+RTL8367N)

不经过网口和变压器,实现板级网口扩展。 通过网口,网线连接 板级芯片直接连接,验证OK 激光导航控制板通过路由器上网成功

二叉搜索树BST ——(C++)

本篇将会讲解有关二叉树的搜索原理,以及关于二叉搜索树的建立,以及二叉树搜索树的插入、删除和查找等基本操作。最后我们还会对二叉搜索树进行功能扩展,介绍有关搜索二叉树的 K 模型和 KV 模型。目录如下: 目录 1. 搜索二叉树 二叉…

PageHelper分页查询时,count()查询记录总数与实际返回的数据数量不一致

目录 场景简介代码判断异常情况排查原因解决 场景简介 1、使用PageHelper进行分页查询 2、最终构建PageInfo对象时,total与实际数据量不符 代码判断 异常情况 排查 通过对比count()查询的SQL与查询记录的SQL,发现是PageHelper分页查询时省去了order b…

香橙派 AIpro开发板:开启AI视觉的无限可能

前言 在当今这个由数据和智能驱动的时代, 人工智能(AI) 已经成为推动技术创新和实现自动化的关键。 特别是在计算机视觉领域,AI的潜能被无限放大,它使得机器能够“看见”并理解视觉世界,从而执行复杂的任务…

安捷伦Agilent 8114A脉冲发生器的特点资料

Agilent 8114A 脉冲发生器有助于测试当今的电信和计算机系统组件,这些组件越来越多地利用在高电压或大电流下运行的激光和红外二极管、EEPROMS 和闪存等设备。 Agilent 8114A 高功率脉冲发生器的特点包括: 频率高达 15 MHz 时,高达 100 V 的…

前端 CSS 经典:图片边框

前言&#xff1a;有这么一个业务&#xff0c;需要边框随着图片宽度的变化而变化&#xff0c;比如一些聊天的气泡框等。 实现原理&#xff1a;使用 border-image 属性 效果图&#xff1a; 实现代码&#xff1a; <!DOCTYPE html> <html lang"en"><he…

Qt/C++音视频开发75-获取本地有哪些摄像头名称/Qt内置函数方式

一、前言 在需要打开本地摄像头的场景中&#xff0c;有个需求绕不开&#xff0c;那就是如何获取本地有哪些摄像头设备名称&#xff0c;这样可以提供下拉框给用户选择&#xff0c;不然你让用户去填设备名&#xff0c;你觉得用户会知道是啥&#xff0c;他会操作吗&#xff1f;就…

[猫头虎分享21天微信小程序基础入门教程] 第17天:小程序的用户授权与安全

[猫头虎分享21天微信小程序基础入门教程] 第17天&#xff1a;小程序的用户授权与安全 第17天&#xff1a;小程序的用户授权与安全 &#x1f512; 自我介绍 大家好&#xff0c;我是猫头虎&#xff0c;一名全栈软件工程师。今天我们继续微信小程序的学习&#xff0c;重点了解如…

【C++】Vector的简易模拟与探索

&#x1f49e;&#x1f49e; 前言 hello hello~ &#xff0c;这里是大耳朵土土垚~&#x1f496;&#x1f496; &#xff0c;欢迎大家点赞&#x1f973;&#x1f973;关注&#x1f4a5;&#x1f4a5;收藏&#x1f339;&#x1f339;&#x1f339; &#x1f4a5;个人主页&#x…