没有合适的资源?快使用搜索试试~ 我知道了~
一种多核友好的持久性内存键值系统.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 10 浏览量
2022-06-10
08:21:45
上传
评论
收藏 436KB DOCX 举报
温馨提示
试读
21页
一种多核友好的持久性内存键值系统.docx
资源推荐
资源详情
资源评论
摘 要 相比于传统内存,持久性内存具有容量大和非易失的特点,这为
构建大规模键值存储系统提供了新的机遇然而,在多核服务器架构下
设计持久性内存键值系统面临着诸多挑战,包括并发控制带来的
缓存抖动、对持久性内存有限写带宽的消耗和竞争以及持久性内存高
延迟带来的线程冲突加剧提出一种多核友好的持久性内存键值系统
,通过设计高效并发控制方法和减少对持久性内存的写操作,
充分提高多核并发性能为避免锁资源带来的额外持久性内存写带宽消
耗, 引入了易失性锁管理机制,将写锁资源从索引中分离,在
! !中单独维护它们为保证崩溃一致性和提高并
发查询性能, 引入了 " 阶段原子写机制,利用 提供的原子
写操作指令将系统从一个一致性状态原子地切换到另一个一致性状态
并支持了无锁查询基于易失性锁管理机制, 还提出一种并发写
消除机制,以提高更新操作之间的并发效率当出现 " 个冲突的更新操
作时,并发写消除机制让其中一个操作直接返回,不做任何持久性内
存的分配与写操作实验显示, 相比于 具有更良好的
性能以及多核扩展性其中,在 #$ 线程环境下, 的吞吐达到
的 #%~&" 倍
关键词 持久性内存;多核架构;键值系统;并发控制;崩溃一致性
新型的持久性内存通过内存总线与
相连,因此应用程序能够直接使用 的 和 指令对
其访问此外,它具有和 ! 相近的性能,以及和磁盘一样的持久化
存储数据的功能英特尔公司 "'#( 年正式发布了 ) 持久性
内存
*#+
,将基于持久性内存的软件研究从模拟器时代带到了真实硬件平
台时代,其具有百纳秒级的访问延迟以及最高 ,#"-. 的单条容量,
为设计高速的键值存储系统提供了新的机遇
然而,构建这样的持久性内存键值系统存在着诸多挑战,尤其是
在现代基于多核架构的服务器中具体而言,现有用于持久性内存键值
系统的并发控制的方法会带来 缓存的抖动;同时,将锁资源嵌入
到索引的传统设计会导致额外的持久性内存写带宽的消耗除此之外,
为保障崩溃一致性而使用的日志等机制也严重消耗着持久性内存有限
的写带宽;当多个线程同时向持久性内存写数据时,会造成内存控制
器和持久性内存芯片内部硬件资源的竞争,从而影响键值系统的整体
性能最后,由于存在持久化延迟,互斥临界区的时间被拉长,加剧了
线程之间的冲突
本 文 提 出 一 种 多 核 友 好 的 持 久 性 内 存 键 值 系 统
,通过设计
高 效 并 发 控 制方 法 和 减少 持 久 性 内 存 的 写 操 作 提 高 多 核 并 发 性
能 使用桶式散列索引管理键到值的映射,并在此
基础上提出了 / 个针对多核优化的机制:易失性锁管理、" 阶段原子
写以及并发写消除机制具体地,在易失性锁管理机制中, 将写
锁资源从索引中分离,在 ! 中单独维护它们,以避免锁操作消耗
持久性内存的写带宽; 为 ! 中的锁表设计了紧凑的格式,
以 减 少 锁 资 源 分 离 结 构 导 致 的 缓 存 以 及 01.
23的缺失在 " 阶段原子写机制中, 将 的
指纹、键值数据的地址以及持久化标志包装在 &42 字段中,并利用
提供的原子写操作指令将系统从一个一致性状态原子地切换到另
一个一致性状态;基于 " 阶段原子写机制, 将查询操作完全无
锁化,消除了查询操作路径上对持久性内存的写,并避免了查询和更
新操作之间的冲突竞争在并发写消除机制中, 引入了基于序列
号的低开销冲突检测方法;当出现 " 个冲突的更新操作时,并发写消
除机制让其中一个操作直接返回,不做任何持久性内存的分配与修改
有效节省了持久性内存有限的写带宽
本文的主要贡献有 / 个方面:
#分析了持久性内存键值系统在多核架构下的性能问题
"提出了一种多核友好的持久性内存键值系统 ,并引入了
易失性锁管理、" 阶段原子写以及并发写消除 / 个机制,提升了并发
控制效率,同时节省了持久性内存写带宽
/通过实验分析, 相比于 具有更良好的性能以
及多核扩展性其中,在 #$ 线程环境下, 的吞吐达到
的 #%~&" 倍
1 背景介绍与研究动机
在本节中,主要介绍 ) 持久性内存的基本特性,并分析
多核架构下持久性内存键值系统设计的挑战
1.1 Optane DC 持久性内存
由于持久性内存的非易失、可字节寻址以及性能高等优点,研究
者们从体系结构和系统软件等多方面对其进行了深入的探索然而,因
为没有真实商用的持久性内存产品,之前的研究多基于模拟器或者
!幸运的是,英特尔公司在 "'#( 年 4 月发布了全球首款可大规
模商用的持久性内存产品:) 持久性内存) 持久
性内存基于 /5 技术,它以内存条的形式插在标准的 4 接
口上,单条容量可以为 #"$-.,",&-.,,#"-.) 持
久性内存支持 " 种配置模式:内存模式和应用直访
模式在内存模式下, ! 作为 ) 持
久性内存的缓存;应用程序无需修改就能够利用到持久性内存大容量
的特点,但此种模式下 ) 持久性内存无法被用于数据持久
存储在应用直访模式下,) 持久性内存作为特殊的存储设
备可直接通过 的 和 指令访问;通常情况下,应用程
序利用文件系统或持久性堆来管理持久性内存的名字空间在 中,
) 持久性内存被配置成应用直访模式
) 持久性内存的独特硬件特性影响着上层软件的设计:
#读写不对称性
*"+
,单条的 ) 持久性内存的读带宽为 &&
-.,而写带宽只有 "/-."硬件内部的最小访问粒度是 ",&
.除此之外,由于 缓存的存在,数据持久化操作需要显式地调用
硬件指令,将数据从 缓存刷写至持久性内存为了提高持久
化效率,英特尔公司提出 " 个新指令:62 和 78;相比于传
统 78 指令,新指令支持乱序执行,且 62 不会将 缓存无效
化,以更好地利用 缓存 持久化指令会带来高昂的性能开销,
因此如何在减少使用持久化指令的同时保证系统的崩溃一致性是设计
的难点
由于持久性内存的性能与 ! 相比仍有差距,现有的系统多采
用 混 合 架 构
*/+
, 即 同 时 使 用 ! 和 持 久 性 内 存 在 混 合 架 构 中 ,
! 用于暂存可丢失的数据,而持久性内存用于存储核心数据
1.2 持久性内存键值系统的多核挑战
随着摩尔定律逐渐走向终结, 单个核心的性能上升缓慢因此,
处理器生产商通过在单个 中添加更多的核心来提高处理器整体性
能在这种多核架构下,如何设计高效的软件一直是活跃的研究领域同
时,持久性内存的出现将存储带到了内存级,为构建高性能的键值存
储系统带来了机遇设计多核友好的持久性内存键值系统存在着 / 方面
的挑战:
# 缓存的抖动为了保证多线程并发的正确性,键值系统使用
并发原语如读写锁协调线程之间的同步互斥然而,这些并发原语的
使用导致对应数据在不同 核心的缓存之间来回抖动,频繁触发高
昂开销的 缓存一致性协议
*4+
,造成了 性能的急剧下降
剩余20页未读,继续阅读
资源评论
罗伯特之技术屋
- 粉丝: 3654
- 资源: 1万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 本科毕业设计基于C# wpf人脸识别的考勤系统的设计与实现源码.zip
- 基于Ruoyi+uniapp实现学生考勤系统 学生考勤源码+项目说明.zip
- feae6bc968ca68a099455d8b8a8dea35
- 基于Pytorch训练CIRAR10上分类算法.zip
- Pytorch-pytorch深度学习教程之Tensorboard.zip
- 基于C++和Python开发yolov8-face作为人脸检测器dlib作为人脸识别器的人脸考勤系统源码+项目说明.zip
- Pytorch-pytorch深度学习教程之变分自动编码器.zip
- Pytorch-pytorch深度学习教程之神经风格迁移.zip
- Pytorch-pytorch深度学习教程之深度残差网络.zip
- Pytorch-pytorch深度学习教程之循环神经网络.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功