[发明专利]在用户空间文件系统上实现聚合写文件脏页的方法和装置有效
申请号: | 201110302148.7 | 申请日: | 2011-09-28 |
公开(公告)号: | CN102360369A | 公开(公告)日: | 2012-02-22 |
发明(设计)人: | 何抗洪;程宁;朱鹏 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京派特恩知识产权代理事务所(普通合伙) 11270 | 代理人: | 张颖玲;程立民 |
地址: | 518057 广东省深圳市南山*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用户 空间 文件系统 实现 聚合 文件 方法 装置 | ||
1.一种在用户空间文件系统(fuse)上实现聚合写文件脏页的方法,其特 征在于,该方法包括:
fuse获取脏页数组;检查脏页数组中连续的脏页,将连续的脏页通过一个 fuse消息传递给用户态文件系统的守护进程。
2.根据权利要求1所述的方法,其特征在于,所述fuse获取脏页数组为:
定义原型为页写函数(writepages)的函数fuse_writepages,函数 fuse_writepages根据输入参数,确定文件写的起始页号和结束页号;清除文件 写完成标识,调用查找函数(pagevec_lookup_tag),并输入起始页号和结束页 号,将带有脏页标志PAGEE_TAG_DCACHIRTY的页,按页号从小到大的顺序 组成脏页数组存储在脏页存储数组(pvec)中。
3.根据权利要求2所述的方法,其特征在于,所述检查脏页数组中连续的 脏页,将连续的脏页通过一个fuse消息传递给用户态文件系统的守护进程为: fuse依次检查脏页数组中的每一页,根据脏页数组中第一个脏页的页号设置连 续号变量,并在将第一个脏页的页地址加入到fuse消息的页数组中之后,通过 连续号变量确定与第一个脏页连续的脏页,将确定的连续的脏页也加入到所述 fuse消息的页数组中,通过所述fuse消息将所述页数组传递给用户态文件系统 的守护进程。
4.根据权利要求3所述的方法,其特征在于,该方法进一步包括:预先设 置最大脏页数,当fuse消息的页数组中脏页页数达到最大脏页数时,不再继续 确定连续脏页,将该fuse消息传递给用户态文件系统的守护进程。
5.一种在fuse上实现聚合写文件脏页的装置,其特征在于,该装置包括: 获取模块、检查模块、传递模块;其中,
获取模块,用于获取脏页数组;
检查模块,用于检查脏页数组中连续的脏页,将连续的脏页发送到传递模 块;
传递模块,用于将连续的脏页通过一个fuse消息传递给用户态文件系统的 守护进程。
6.根据权利要求5所述的装置,其特征在于,所述获取模块,具体用于定 义原型为writepages的函数fuse_writepages,函数fuse_writepages根据输入参数 wbc,确定文件写的起始页号和结束页号;清除文件写完成标识,调用 pagevec_lookup_tag函数,并输入起始页号和结束页号,将带有脏页标志 PAGEE_TAG_DCACHIRTY的页,按页号从小到大的顺序组成脏页数组存储在 pvec中。
7.根据权利要求6所述的装置,其特征在于,所述检查模块,具体用于依 次检查脏页数组中的每一页,根据脏页数组中第一个脏页的页号设置连续号变 量,并将第一个脏页的页地址通知传递模块,通过连续号变量确定与第一个脏 页连续的脏页,将确定的连续的脏页的页地址通知传递模块。
8.根据权利要求7所述的装置,其特征在于,所述传递模块,具体用于将 所述检查模块通知的脏页的页地址加入到fuse消息的页数组中,通过所述fuse 消息将所述页数组传递给用户态文件系统的守护进程。
9.根据权利要求8所述的装置,其特征在于,所述传递模块,进一步用于 设置最大脏页数,当fuse消息的页数组中脏页页数达到最大脏页数时,通知检 查模块不再继续确定连续脏页,将所述fuse消息传递给用户态文件系统的守护 进程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110302148.7/1.html,转载请声明来源钻瓜专利网。
- 上一篇:离心压缩机壳体
- 下一篇:现浇混凝土梁模板的支撑结构