Optimizing Every Operation in a Write-optimized File System——论文泛读

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

问题

使用写优化字典(WOD)(LSM-trees [24],Bε tree [6])的文件系统可以比传统文件系统快几个数量级地执行随机写入、元数据更新、递归目录遍历。

然而,现有基于WOD的文件系统需要牺牲其他操作(如文件删除、文件或目录重命名、顺序写入)性能的情况下获得这些性能提升。例如,TokuFS[7]和BetrFS[12]的文件删除、重命名和顺序文件写入速度较慢。KVFS[30]和TableFS[25]中的目录遍历较慢。TableFS将大文件存储在底层的ext4文件系统中,因此不会为随机文件写入提供任何性能增益。

本文方法

通过三种技术,即延迟绑定日志、分区和范围删除,表明在写优化中不需要权衡。可以保留写性能,同时在其他操作上与传统的文件系统相匹配。

  • 使用延迟绑定日志以磁盘带宽执行大型顺序写入,同时保持完整数据日志的恢复语义。BetrFS 0.1提供完整的数据日志记录,但所有数据至少写入两次,因此大型写入的系统吞吐量减半。本文采用了无覆盖文件系统使用的方法,如zfs[4]和btrfs[26],只将数据写入空闲空间一次。将此技术应用于Bε树的挑战是平衡数据的崩溃一致性与足够的I/O调度灵活性,以避免在Bε树消息刷新中重新引入大型重复写入。

  • 引入了称为分区的可调目录树划分技术,平衡了快速递归目录遍历和快速文件、目录重命名。快速递归遍历需要将相关项目放在磁盘上的同一位置,但为了维护此位置,重命名必须物理移动数据。快速重命名可以通过更新元数据指针来实现,但这可能会将目录的内容分散在磁盘上。分区带来了这两种设计的大部分好处,在每个分区内有序,以接近磁盘带宽的速度遍历目录;不迁移数据,只修改元数据索引,与基于inode的系统相当的速度重命名。

  • 提供新的范围删除WOD操作,加速取消链接、顺序写入、重命名、分区。使用范围删除来告诉WOD何时不再需要大量数据,可以实现进一步的优化,例如避免读取和合并过时的数据。

实现在了BetrFS 0.2中,执行目录扫描的速度快2.2倍,小型随机写入的速度快两个数量级,在重命名、删除和顺序I/O方面与传统文件系统的性能相匹配。在许多应用程序(如rsync、git-diff和tar)上也优于传统文件系统,与BetrFS 0.1相比,git-clone性能提高了35%,性能与其他文件系统相当。

总结

对利用写优化结构(LSM-trees,Bε tree)的文件系统进行优化,提出BetrFS 0.2,包括3个优化点。(1)使用延迟绑定日志以磁盘带宽执行大型顺序写入,同时保持完整数据日志的恢复语义。只将数据写入空闲空间一次,同时平衡数据的崩溃一致性和I/O调度灵活性。(2)引入了称为分区的目录树划分技术,平衡递归目录遍历和重命名。在每个分区内有序,以接近磁盘带宽的速度遍历目录;重命名不迁移数据,只修改元数据索引,与基于inode的系统相当的速度重命名。(3)提供范围删除操作,加速取消链接、顺序写入、重命名、分区。使用范围删除来优化写优化结构,同时避免读取和合并过时的数据。

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

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

相关文章

猎头告诉你正确的“离职流程”

往期热门文章: 1,史上最全猎头技能资料,独家最新放送 2,互联网大厂java面试题知识库(100万字) 3,一线互联网大数据面试题知识库(100万字) 4,中国猎头公司排行…

SQL优化详解

目录 插入数据 insert的优化(少量数据) 批量插入 手动事务提交 主键顺序插入 插入大量数据 主键优化 数据组织方式: 页分裂: 主键顺序插入的方式: 主键乱序插入: 页合并: 主键设计…

HTML5/CSS3粒子效果进度条 超炫酷进度条动画源码

特效介绍 之前我已经分享了几款效果很不错的CSS3进度条插件,比如CSS3 Loading进度条加载动画特效、CSS3 3D进度条按钮 18款精美样式。今天我再来分享一款很有特色的HTML5/CSS3进度条应用。这款进度条插件在播放进度过程中出现粒子效果,就像一些小颗粒从…

二本生如何从大一准备考研!?保姆级全攻略

如果是二本大学,那考研确实是一个很好的机会 如果大家就有考研的打算,那就好好学习,好好学习英语,数学(理工科)和专业课,这些课程在考研的时候是肯定会考的 特别是英语和数学(理工…

每日Attention学习5——Multi-Scale Channel Attention Module

模块出处 [link] [code] [WACV 21] Attentional Feature Fusion 模块名称 Multi-Scale Channel Attention Module (MS-CAM) 模块作用 通道注意力 模块结构 模块代码 import torch import torch.nn as nnclass MS_CAM(nn.Module):def __init__(self, channels64, r4):super(…

五一开始内卷前端,如何迅速的一个月内找到工作!

写在前面 五一过了代表新的一年不知不觉过了半年了,各位工作找到怎么样,有没有在工作中遇到解决不了的问题,这些问题后面怎么处理了呢? hello大家好,我又又又来了,今天纯干货,上班的朋友适当摸…

【SAP ME 39】SAP ME WebService超时时间设置

禁止废话,直接上图!!! SAP技术官方说明

Dark Reader:夜间模式,启动!

名人说:一点浩然气,千里快哉风。 ——苏轼 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、介绍二、下载安装1、Chrome应用商店(需科学)2、第三方直链下载 三、使…

深入探索数据链路层:网络通信的基石

⭐小白苦学IT的博客主页⭐ ⭐初学者必看:Linux操作系统入门⭐ ⭐代码仓库:Linux代码仓库⭐ ❤关注我一起讨论和学习Linux系统❤ 前言 在网络通信的宏伟世界中,数据链路层扮演着至关重要的角色。它位于物理层和网络层之间,不仅直接…

HuggingFace烧钱做了一大批实验,揭示多模态大模型哪些trick真正有效

构建多模态大模型时有很多有效的trick,如采用交叉注意力机制融合图像信息到语言模型中,或直接将图像隐藏状态序列与文本嵌入序列结合输入至语言模型。 但是这些trick为什么有效,其计算效率如何,往往解释得很粗略或者或者缺乏充分…

C++ Builder XE EnumWindowsProc遍历所有窗口的名称

BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam) { // 这里可以添加你的处理逻辑 // 例如,将句柄添加到列表中或者其他操作 // 这里我们仅仅输出到调试窗口 OutputDebugString(L"枚举窗口句柄: "); char windowHandle[10];…

ROS 2边学边练(45)-- 构建一个能动的机器人模型

前言 在上篇中我们搭建了一个机器人模型(其由各个关节(joint)和连杆(link)组成),此篇我们会通过设置关节类型来实现机器人的活动。 在ROS中,关节一般有无限旋转(continuous),有限旋转…

【每日力扣】98. 验证二叉搜索树 与 108. 将有序数组转换为二叉搜索树

🔥 个人主页: 黑洞晓威 😀你不必等到非常厉害,才敢开始,你需要开始,才会变的非常厉害 98. 验证二叉搜索树 给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下&a…

【优选算法】——双指针——15. 三数之和

目录 1.题目 2.解法(排序双指针): 算法思路: 3.代码实现 1.题目 15. 三数之和 提示 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足…

【LLM第三篇】名词解释:RLHF——chatgpt的功臣

RLHF (Reinforcement Learning from Human Feedback) ,直译为:“来自人类反馈的强化学习”。RLHF是一种结合了强化学习和人类反馈的机器学习方法,主要用于训练大模型以执行复杂的任务,尤其是当这些任务难以通过传统的奖励函数来精…

重学java 33.API 4.日期相关类

任何事,必作于细,也必成于实 —— 24.5.9 一、Date日期类 1.Date类的介绍 1.概述: 表示特定的瞬间,精确到亳秒 2.常识: a.1000毫秒 1秒 b.时间原点:1970年1月1日 0时0分0秒(UNIX系统起始时间),叫做格林威治时间,在0时区上 c.时区:北京位于东八区,一个时区…

Linux 操作系统线程1

目录 一、线程 1.1线程的基本概念 1.2 线程相关的API函数 1.2.1 线程的创建 1.2.2 线程退出 1.2.3 线程等待函数 1.2.4 获取线程ID 1.2.5 线程取消 1.2.6 线程的清理函数 一、线程 1.1线程的基本概念 线程是属于进程;一个进程可以有多个线程&#xff…

salmon使用体验

文章目录 salmon转录本定量brief模式一:fastq作为输入文件需要特别注意得地方 模式二: bam文件作为输入 salmon转录本定量 brief 第一点是,通常说的转录组分析其中有一项是转录本定量,这是一个很trick的说话,说成定量…

深度学习——前馈全连接神经网络(鸢尾花)

前馈全连接神经网络对鸢尾花数据集进行分类 1.导入所需要的包2.打印训练集和测试集二维数组3.定义模型4.打印模型信息5.权重和偏执6.编译网络和训练网络7.打印二维数据表格8.绘制图像9.查看准确率 1.鸢尾花数据集可以用 from sklearn.datasets import load_iris 方式获取&#…

医院预约挂号|基于Springboot+vue的医院预约挂号系统小程序的设计与实现(源码+数据库+文档)

医院预约挂号系统小程序 目录 基于Springboot+vue的医院预约挂号系统小程序设计与实现 一、前言 二、系统设计 三、系统功能设计 1小程序端 后台功能模块 4.2.1管理员功能 4.2.2医生功能 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选…
最新文章