发明名称 一种对象文件系统的预取方法
摘要 本发明公开了一种对象文件系统的预取方法,包括:对对象文件系统的数据结构和变量进行初始化,判断服务器是否接收来自客户端的读对象请求,如果是则解析读对象请求,并根据读对象请求确定当前对象及其Oid,判断读对象请求是否命中缓存,如果没有则判断是否存在计时值大于或等于时间阈值T_MAX,如果不存在,则根据当前对象的Oid查询预取属性表,以获取当前对象的预取属性,并根据预取属性执行读磁盘和预取操作,根据全局访问顺序数组对预取属性表的单步预取信息进行修改,根据全局访问顺序数组对预取属性表的多步预取信息进行修改。本发明实现了预取范围自适应调节、预取准确率维持在设定阈值附近、单步预取和多步预取兼顾、以及资源占用可控。
申请公布号 CN103902260B 申请公布日期 2016.08.31
申请号 CN201210570438.4 申请日期 2012.12.25
申请人 华中科技大学 发明人 王芳;冯丹;李洁琼;闫阳
分类号 G06F9/44(2006.01)I 主分类号 G06F9/44(2006.01)I
代理机构 华中科技大学专利中心 42201 代理人 朱仁玲
主权项 一种对象文件系统的预取方法,其特征在于,包括以下步骤:(1)对对象文件系统的数据结构和变量进行初始化;具体而言,初始化内存池且将表示内存池使用率的全局变量Urate置0,创建并初始化一个具有Bucket_Num个哈希桶的哈希表,申请并初始化一个全局访问顺序数组Access_Order[M+1],其中M表示多步预测的最大步长,数组中的每个元素用于存放对象的Oid,Access_Order[M]为当前访问对象的Oid,将计时值T_Clock设置为0,且系统每隔一秒T_Clock值加1;(2)判断服务器是否接收来自客户端的读对象请求,如果是则进入步骤(3),否则过程结束;(3)解析读对象请求,并根据读对象请求确定当前对象及其Oid;(4)判断读对象请求是否命中缓存,如果是进入步骤(5),否则进入步骤(6);(5)根据当前对象的Oid在内存池中查找对应的缓存空间,并从缓存空间中直接读取当前对象,然后进入步骤(10);(6)判断是否存在计时值T_Clock大于或等于时间阈值T_MAX,如果存在,则表示时间窗口已到,并进入步骤(7),否则进入步骤(9);(7)初始化预取属性表,并将计时值T_Clock置0;(8)从磁盘中读取读对象请求的对象,然后进入步骤(10);(9)根据当前对象的Oid查询预取属性表,以获取当前对象的预取属性,并根据预取属性执行读磁盘和预取操作;(10)根据全局访问顺序数组Access_Order[M+1]对预取属性表的单步预取信息进行修改;(11)根据全局访问顺序数组Access_Order[M+1]对预取属性表的多步预取信息进行修改。
地址 430074 湖北省武汉市洪山区珞喻路1037号