高速缓冲区的用户态实现:高速缓冲区理论上也是比较好理解的一个数据结构,他的好处是减少对于慢速IO的高频率访问,从单机的内核态来说,慢速和快速主要是内存和磁盘之间的IO瓶颈,对于多机的分布式文件系统来说,主要是磁盘和网络传输之间的IO差异(因为磁盘和内存内核已经有了),比较可行的方式是将文件块建立一个本地的磁盘缓存,这个缓存可以利用高速缓冲的算法,每当有新的没有缓存的文件块下载过来的时候,从磁盘上找一块空闲的区域,将其存储进去,而删除磁盘原来维护的hash表中的对应字段,表示旧的块没有了。每次要获取新的文件块的时候,从磁盘的hash表中先去判断一下是不是有了,有了直接获取,没有的话,再从远程去下载(类似于高速缓冲在磁盘上面的实现)。比如可以分配500g的空间,其中一部分用来存储空闲表文件和hash表文件(metadata),剩下的部分用来存储文件块,至于偏移量等位置信息可以通过文件名称的方式来划分,比如每个文件块20kb,那么就可以按照20kb建立索引,这种基于文件块的缓存相比直接基于文件的缓存,在分布式文件系统场景,可以做成按照内容存储,如果存储过了,就没有必要重复存储,可以直接建立一个硬链接,这样更加容易命中,传输量也小很多,总之,高速缓冲也是完全可以用在多计算机的文件系统上面的缓存技术。
[LINUX]高速缓冲区的用户态实现
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
CentOS 安装 SVN1.7.7
dreamZhf
2020-07-08 12:36:10
ubuntu 常用设置
吉祥衰宝
2020-07-08 03:52:09
centos 下安装iptraf流量监控软件
ufocode
2020-07-08 00:31:35
【Linux】使用Ubuntu过程中遇到的问题
睿智的河水
2020-07-07 22:03:13
ubuntu 安装 ibus-sunpinyin
亦木丶
2020-07-07 19:36:03
K8S结合NFS配置持久化存储PV和PVC
ccagy
2020-07-07 18:04:23
Linux磁盘扩容分区根目录
[root@host-172-16-13-33 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 1024M
ccagy
2020-07-07 18:04:23
如何对K8S的PV 和PVC扩容
ccagy
2020-07-07 18:04:23
http协议里面session的管理
wzbob
2020-07-07 14:44:02
Linux CentOS7 下搭建Java Web服务器环境
theUncle
2020-07-07 12:53:00
弄ROS可以不用装双系统或者买一台电脑啥的, 可以直接U盘启动
诗筱涵
2020-07-07 10:46:43
查看Linux系统当前时间的命令
hanchuang213
2020-07-07 06:03:39
运行firefox时提示“libGL error: unable to load driver: swrast_dri.so”有卡顿
运维自动化&云计算
2020-07-07 03:29:32