Kreon: An Efficient Memory-Mapped Key-Value Store for Flash Storage——论文泛读

TOS 2021 Paper 论文阅读笔记整理

问题

持久的键值存储已经成为现代数据处理系统的数据访问路径中的一个主要组件。然而,它们表现出较高的CPU和I/O开销。

基于LSM Tree的键值存储中两个重要的CPU和I/O开销来源是:

  • 在LSM Tree中使用压缩,不断执行大型数据段的合并和排序,产生CPU和I/O开销。

  • 使用缓存避免I/O访问设备,但驻留在内存中的缓存数据也会产生大量CPU开销,占总CPU开销的28%。

随着新硬件的出现,在队列深度32时,I/O请求大小为32KB达到了SSD的最大吞吐量,I/O请求大小为8KB时达到了NVMe的最大吞吐量。因此,由于I/O放大而增加的流量成为比I/O随机性更重要的瓶颈。

本文方法

本文提出了Kreon,针对基于闪存的键值存储,利用I/O随机性换取低CPU开销和低I/O放大。

  • 使用细粒度溢出机制,利用部分重组而不是使用每个级别的完整索引来进行完整的数据重组,提供高插入率并减少CPU开销和I/O流量。使用按N个级别组织的写优化数据结构,类似于LSM树,其中每个级别充当下一个级别的缓冲区。为了减少I/O放大,不对已排序的缓冲区进行操作,而是在每个级别中维护一个B树索引。因此,它生成较小的I/O请求,但减少I/O放大和CPU开销。

  • 使用内存映射I/O来执行内存和设备之间的所有I/O。内存映射I/O本质上用内存映射取代了缓存查找,消除了内存中数据项的开销。未命中会导致页面错误,直接从内存执行I/O操作,而无需在用户和内核空间之间复制数据。然而,内存映射I/O的异步特性意味着I/O发生在页面粒度上,从而导致许多小I/O,尤其是对于读取操作。此外,内存映射I/O不能提供任何类型的一致性、可恢复性,也不能根据特定需要调整I/O。为此,本文实现了一个自定义的内存映射I/O路径kmmap作为Linux内核模块,消除了在内核和用户空间中使用DRAM缓存的需要,消除了内核和用户之间的数据拷贝,并消除了指针转换的需要。

  • 键值存储通常同时为本地(同一节点)和远程(网络)客户端提供服务。本文为远程客户端实现了基于RDMA的远程直接内存访问协议。

在大型数据集中,与RocksDB相比,Kreon将CPU周期/op减少了5.8倍,将插入的I/O放大减少了4.61倍,并将插入操作次数增加了5.3倍。

总结

针对在SATA SSD和NVMe SSD上的LSM Tree优化问题,随机I/O不再是性能瓶颈,CPU和I/O开销限制LSM Tree的性能。本文提出Kreon,针对基于闪存的键值存储,利用I/O随机性换取低CPU开销和低I/O放大。(1)采用和LSM Tree类似结构,但每层内用B Tree组织,因此层间合并时只需部分合并,不需要对整个SSTable进行合并,从而降低I/O放大和CPU开销,但引入了更多小的随机I/O。(2)使用内存映射执行内存和设备之间的所有I/O,用内存映射取代了缓存查找,消除缓存开销和数据复制。但会导致许多小I/O,且不能提供任何类型的一致性、可恢复性。为此,本文实现了内存映射I/O路径kmmap,消除了在内核和用户空间中使用DRAM缓存,消除了内核和用户之间的数据拷贝,并消除了指针转换。

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

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

相关文章

若依解决使用https上传文件返回http路径问题

若依通过HTTPS请求进行文件上传时却返回HTTP的文件链接地址,主要原因是使用了 request.getRequestURL 获取链接地址。 解决办法: 在nginx配置文件location处加上:proxy_set_header X-Forwarded-Scheme $scheme; 然后代码通过request.getHea…

MobaXterm下载虚拟机SSH链接超时解决(保姆级踩坑)

文章目录 为啥要用MobaXtermMobaXterm下载打开虚拟机ssh链接ssh连接失败排查linux配置windows配置 到这了,什么都干了,怎么还不成功? 更多相关内容可查看 在一个阳光明媚的下午,开启了无限踩坑的旅程 为啥要用MobaXterm 作为小编…

DockerNetwork

Docker Network Docker Network 是 Docker 引擎提供的一种功能,用于管理 Docker 容器之间以及容器与外部网络之间的网络通信。它允许用户定义和配置容器的网络环境,以便容器之间可以相互通信,并与外部网络进行连接。 Docker Network 提供了以…

【ARFoundation自学03】AR Point Cloud 点云(参考点标记)功能详解

和平面识别框架一样 1为XR Origin添加AR Point Cloud Manager组件 然后你的ar应用就具备了点云识别功能,就这么简单 2.可视化这些云点 创建一个美术效果的预制体,人家提供了预设模板 然后拖到仓库(ASSETS)创建预制体&#xff…

满足a==1a==2

网上看到的一道JS面试题,觉得很有意思 觉得很有意思的原因是,这个式子乍看之下是有些反常识的。“a1&&a2”,它的意思似乎是“a在等于1的同时又等于2”,这时我们的第一反应可能就是不成立,一个变量怎么可能同时…

前端 MVC 分层的实践

目录 前言 并未过时的 MVC MVC 的由来 不同版本的 MVC 苹果版本 微软版本 阮一峰版 原生 JS 实现 MVC Model View Controller React 中的 MVC 其他分层 Service format utils 目录 总结 前言 前面我们讲了 JavaScript 面向对象编程,这篇文章我们会…

深度学习——图像分类(CNN)—训练模型

训练模型 1.导入必要的库2.定义超参数3.读取训练和测试标签CSV文件4.确保标签是字符串类型5.显示两个数据框的前几行以了解它们的结构6.定义图像处理参数7.创建图像数据生成器8.设置目录路径9.创建训练和验证数据生成器10.构建模型11.编译模型12.训练模型并收集历史13.绘制损失…

【Text2SQL 经典模型】SQLNet

论文:SQLNet: Generating Structured Queries From Natural Language Without Reinforcement Learning ⭐⭐⭐⭐ Code: SQLNet | paperwithcodeSQLNet| GitHub 一、论文速读 这篇论文强调了一个问题:order-matters problem —— 意思是说,对…

2024.5组队学习——MetaGPT(0.8.1)智能体理论与实战(中):订阅智能体OSS实现

传送门: 《2024.5组队学习——MetaGPT(0.8.1)智能体理论与实战(上):MetaGPT安装、单智能体开发》《2024.5组队学习——MetaGPT(0.8.1)智能体理论与实战(下)&…

【线段图案】

描述 KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的线段图案。 输入描述: 多组输入,一个整数(1~100),表示线段长度,即“*”的数量。 输出描述…

是德科技 DSOS054A MSOS054A示波器

产品 带宽 通道数 最大存储器深度 DSOS054A 高清晰度示波器 500 MHz 4 个模拟通道 800 Mpts MSOS054A 高清晰度示波器 500 MHz 4 个模拟通道和 16 个数字通道 800 Mpts Infiniium S 系列示波…

R语言使用 ggscidca包优雅的绘制支持向量机决策曲线

DCA(Decision Curve Analysis)临床决策曲线是一种用于评价诊断模型诊断准确性的方法,在2006年由AndrewVickers博士创建,我们通常判断一个疾病喜欢使用ROC曲线的AUC值来判定模型的准确性,但ROC曲线通常是通过特异度和敏感度来评价,…

vue项目报错:internal/modules/cjs/loader.js:892 throw err;

前言: vue项目中无法正常使用git,并报错情况。 报错信息: internal/modules/cjs/loader.js:892throw err;^ Error: Cannot find module D:\project\sd_wh_yth_front\node_modules\yorkie\src\runner.js 报错处理: npm install y…

夏天晚上热,早上凉怎么办?

温差太大容易引起感冒 1.定个大概3点的闹钟,起来盖被子。有些土豪可以开空调,我这个咸鱼没有空调。 2.空调调到合适的温度,比如20几度。

【HarmonyOS4学习笔记】《HarmonyOS4+NEXT星河版入门到企业级实战教程》课程学习笔记(十一)

课程地址: 黑马程序员HarmonyOS4NEXT星河版入门到企业级实战教程,一套精通鸿蒙应用开发 (本篇笔记对应课程第 18 节) P18《17.ArkUI-状态管理Observed 和 ObjectLink》 第一件事:嵌套对象的类型上加上 Observed 装饰器…

基于网络爬虫技术的网络新闻分析(四)

目录 4.2 系统异常处理 4.2.1 爬虫异常总体概况 4.2.2 爬虫访问网页被拒绝 5 软件测试 5.1 白盒测试 5.1.1 爬虫系统测试结果 5.1.2 中文分词系统测试结果 5.1.3 中文文章相似度匹配系统测试结果 5.1.4 相似新闻趋势展示系统测试结果 5.2 黑盒测试 5.2.1 爬虫系统测…

2024电工杯数学建模 - 案例:最短时间生产计划安排

# 前言 2024电工杯(中国电机工程学会杯)数学建模思路解析 最新思路更新(看最新发布的文章即可): https://blog.csdn.net/dc_sinor/article/details/138726153 最短时间生产计划模型 该模型出现在好几个竞赛赛题上,预测2022今年国赛也会与该模型相关。 1 模型描…

CoShNet:使用复数改进神经网络

使用复数改进神经网络 文章目录 一、说明二、了解卷积神经网络三、进入混合神经网络四、令人惊叹的 CoSh 网络五、复杂函数的神奇性质六、相位一致性七、结论 一、说明 本文题为“CoShNet:使用Shearlets的混合复杂值神经网络”,提出了在混合神经网络中使…

深入理解SVM和浅层机器学习算法的训练机制

深入理解SVM和浅层机器学习算法的训练机制支持向量机(SVM)的训练过程SVM的基本概念SVM的损失函数训练方法 浅层机器学习算法的训练机制决策树K-最近邻(K-NN)朴素贝叶斯 结论 深入理解SVM和浅层机器学习算法的训练机制 在探讨浅层…

展现金融科技前沿力量,ATFX于哥伦比亚金融博览会绽放光彩

不到半个月的时间里,高光时刻再度降临ATFX。而这一次,是ATFX不曾拥有的桂冠—“全球最佳在线经纪商”(Best Global Online Broker)。2024年5月15日至16日,拉丁美洲首屈一指的金融盛会—2024年哥伦比亚金融博览会(Money Expo Colombia 2024) 于…