分布式文件系统的预读方法和装置制造方法及图纸

技术编号:15075000 阅读:89 留言:0更新日期:2017-04-06 19:56
本发明专利技术公开了一种分布式文件系统的预读方法和装置,该方法包括:在客户端接收到对目标数据的读请求后,客户端判断服务端缓存的对应读请求的数据量是否满足第一预定最优缓存量;在服务端缓存的对应读请求的数据量不满足第一预定最优缓存量的情况下,客户端向服务端发起第一预读请求;客户端在客户端缓存中查找对应读请求的目标数据,在查找到目标数据的情况下,从客户端缓存中读取目标数据;客户端判断客户端缓存的对应读请求的数据量是否满足第二预定最优缓存量;在客户端缓存的对应读请求的数据量不满足第二预定最优缓存量的情况下,客户端向服务端发起异步预读请求。

Reading method and device of distributed file system

The invention discloses a method and a device for reading the distributed file system, the method includes: the client receives the request on the target data read after the client to determine whether the corresponding server cache read request data satisfies a first predetermined optimal slow stock; amount of data read request in the corresponding service terminal cache does not satisfy the first the predetermined optimal corrosion under the condition of the stock, the client initiates the first prefetch request to the server; the client to find target data in the client cache corresponding to the read request, in the search to the target data, read the target data from the client cache; the client to determine whether the corresponding client cache read request data to meet the second predetermined optimal corrosion stock; the amount of data read request in the corresponding client cache does not satisfy the second predetermined optimal corrosion under the condition of the stock, guest The client to the server initiated asynchronous prefetch request.

【技术实现步骤摘要】

本专利技术涉及分布式文件系统领域,具体来说,涉及一种分布式文件系统的预读方法和装置
技术介绍
文件系统最初是用来管理本地磁盘,提供用户访问接口。某些数据的集合叫做一个“文件”,并赋予每一个文件一定的属性以标识该数据集合的某些属性。文件按照树结构层次进行管理和检索。分布式文件系统向用户提供和本地文件系统相同的访问接口,却可以让用户访问和管理远程的数据。分布式文件系统中的应用可能来自很多不同的节点,它所管理的数据也可能存储在不同的节点上,同时系统中可能存在多个提供元数据操作的元数据服务器,这些都视具体实现而定。分布式文件系统中有很多设计和实现与本地文件系统存在巨大的差别,也是巨大的挑战,这主要是数据、管理的物理分布和逻辑分布造成的。常见的LinuxVFS文件系统提供读写缓存机制,其预读算法的具体过程是这样的:对于每个文件的第一个读请求,系统读入所请求的页面并读入紧随其后的少数几个页面(不少于一个页面,通常是三个页面),这时的预读称为同步预读。对于第二次读请求,如果所读页面不在缓存(Cache)中,即不在前次预读的组(group)中,则表明文件访问不是顺序访问,系统继续采用同步预读;如果所读页面在Cache中,则表明前次预读命中,操作系统把预读group扩大一倍,并让底层文件系统读入group中剩下尚不在Cache中的文件数据块,这时的预读称为异步预读。无论第二次读请求是否命中,系统都要更新当前预读group的大小。此外,系统中定义了一个window,它包括前一次预读的group和本次预读的group。任何接下来的读请求都会处于两种情况之一:第一种情况是所请求的页面处于预读window中,这时继续进行异步预读并更新相应的window和group;第二种情况是所请求的页面处于预读window之外,这时系统就要进行同步预读并重置相应的window和group。Linux内核中文件Cache替换的具体过程是这样的:刚刚分配的Cache项链入到inactive_list头部,并将其状态设置为active,当内存不够需要回收Cache时,系统首先从尾部开始反向扫描active_list并将状态不是referenced的项链入到inactive_list的头部,然后系统反向扫描inactive_list,如果所扫描的项的处于合适的状态就回收该项,直到回收了足够数目的Cache项。分布式文件系统客户端读取的数据需要经过网络从服务端获取,这时需要的数据可能不在服务端的缓存中,那么就需要从磁盘中读出,而磁盘是延迟非常大的慢速设备,等待时间比较长。对于延迟敏感性应用,这种等待往往无法忍受。而类似Linux文件系统的预读算法,只会根据用户请求的数据从后端取出一部分数据,当系统压力大的时候不可避免地需要等待后端从磁盘上读出数据,这大大延长了用户的读时间。针对相关技术中的上述问题,目前尚未提出有效的解决方案。
技术实现思路
针对相关技术中的上述问题,本专利技术提出一种分布式文件系统的预读方法和装置,能够抵抗网络带来的抖动,缩短用户读取数据的时间。本专利技术的技术方案是这样实现的:根据本专利技术的一个方面,提供了一种分布式文件系统的预读方法。该预读方法包括:在客户端接收到对目标数据的读请求后,客户端判断服务端缓存的对应读请求的数据量是否满足第一预定最优缓存量;在服务端缓存的对应读请求的数据量不满足第一预定最优缓存量的情况下,客户端向服务端发起第一预读请求;客户端在客户端缓存中查找对应读请求的目标数据,在查找到目标数据的情况下,从客户端缓存中读取目标数据;客户端判断客户端缓存的对应读请求的数据量是否满足第二预定最优缓存量;在客户端缓存的对应读请求的数据量不满足第二预定最优缓存量的情况下,客户端向服务端发起异步预读请求。其中,在服务端缓存的对应读请求的数据量不满足第一预定最优缓存量的情况下,客户端向服务端发起第一预读请求时,客户端可通过服务端提供的预读接口发出以服务端缓存的数据量的尾地址为首地址,并按照第一预读长度的预读量的第一预读请求;服务端响应第一预读请求,从磁盘读入数据至服务端缓存;客户端更新服务端缓存的数据量的尾地址。此外,该预读方法进一步包括:在客户端在客户端缓存中未查找对应读请求的目标数据的情况下,所述客户端向所述服务端发起同步预读请求并等待数据的返回。另外,在客户端缓存的对应读请求的数据量不满足第二预定最优缓存量的情况下,客户端向服务端发起异步预读请求时,客户端可向服务端发起以客户端缓存的数据量的尾地址为首地址,并按照第二预读长度的预读量的第二预读请求;服务端响应第二预读请求,从服务端缓存中读取对应第二预读请求的数据并发送至客户端缓存;客户端更新客户端缓存的数据量的尾地址。根据本专利技术的另一方面,提供了一种分布式文件系统的预读装置。该预读装置包括:第一判断模块,用于在客户端接收到对目标数据的读请求后,判断服务端缓存的对应读请求的数据量是否满足第一预定最优缓存量;第一预读模块,用于在服务端缓存的对应读请求的数据量不满足第一预定最优缓存量的情况下,向服务端发起第一预读请求;读取模块,用于在客户端缓存中查找对应读请求的目标数据,在查找到目标数据的情况下,从客户端缓存中读取目标数据;第二判断模块,用于判断客户端缓存的对应读请求的数据量是否满足第二预定最优缓存量;异步预读模块,用于在客户端缓存的对应读请求的数据量不满足第二预定最优缓存量的情况下,向服务端发起异步预读请求。其中,第一预读模块包括:第一预读请求模块,用于通过服务端提供的预读接口发出以服务端缓存的数据量的尾地址为首地址,并按照第一预读长度的预读量的第一预读请求;第一响应读取模块,用于响应第一预读请求,从磁盘读入数据至服务端缓存;第一更新模块,用于更新服务端缓存的数据量的尾地址。此外,该预读装置进一步包括:同步预读模块,用于在客户端缓存中未查找对应读请求的目标数据的情况下,向服务端发起同步预读请求并等待数据的返回。另外,异步预读模块包括:第二预读模块,用于向服务端发起以客户端缓存的数据量的尾地址为首地址,并按照第二预读长度的预读量的第二预读请求;第二响应读取模块,用于响应第二预读请求,从服务端缓存中读取对应第二预读请求的数据并发送至客户端缓存;第二更新模块,用于更新客户端缓存的数据量的尾地址。本专利技术通过两级预读本文档来自技高网
...
分布式文件系统的预读方法和装置

【技术保护点】
一种分布式文件系统的预读方法,其特征在于,包括:在客户端接收到对目标数据的读请求后,客户端判断服务端缓存的对应所述读请求的数据量是否满足第一预定最优缓存量;在所述服务端缓存的对应所述读请求的数据量不满足所述第一预定最优缓存量的情况下,所述客户端向所述服务端发起第一预读请求;所述客户端在客户端缓存中查找对应所述读请求的目标数据,在查找到所述目标数据的情况下,从所述客户端缓存中读取所述目标数据;所述客户端判断客户端缓存的对应所述读请求的数据量是否满足第二预定最优缓存量;在客户端缓存的对应所述读请求的数据量不满足所述第二预定最优缓存量的情况下,所述客户端向所述服务端发起异步预读请求。

【技术特征摘要】
1.一种分布式文件系统的预读方法,其特征在于,包括:
在客户端接收到对目标数据的读请求后,客户端判断服务端缓存的对
应所述读请求的数据量是否满足第一预定最优缓存量;
在所述服务端缓存的对应所述读请求的数据量不满足所述第一预定最
优缓存量的情况下,所述客户端向所述服务端发起第一预读请求;
所述客户端在客户端缓存中查找对应所述读请求的目标数据,在查找
到所述目标数据的情况下,从所述客户端缓存中读取所述目标数据;
所述客户端判断客户端缓存的对应所述读请求的数据量是否满足第二
预定最优缓存量;
在客户端缓存的对应所述读请求的数据量不满足所述第二预定最优缓
存量的情况下,所述客户端向所述服务端发起异步预读请求。
2.根据权利要求1所述的预读方法,其特征在于,在所述服务端缓存
的对应所述读请求的数据量不满足所述第一预定最优缓存量的情况下,所
述客户端向所述服务端发起第一预读请求包括:
所述客户端通过所述服务端提供的预读接口发出以所述服务端缓存的
数据量的尾地址为首地址,并按照第一预读长度的预读量的第一预读请求;
所述服务端响应所述第一预读请求,从磁盘读入数据至服务端缓存;
所述客户端更新所述服务端缓存的数据量的尾地址。
3.根据权利要求1所述的预读方法,其特征在于,进一步包括:
在所述客户端在客户端缓存中未查找对应所述读请求的目标数据的情
况下,所述客户端向所述服务端发起同步预读请求并等待数据的返回。
4.根据权利要求1所述的预读方法,其特征在于,在客户端缓存的对
应所述读请求的数据量不满足所述第二预定最优缓存量的情况下,所述客
户端向所述服务端发起异步预读请求包括:
所述客户端向所述服务端发起以所述客户端缓存的数据量的尾地址为
首地址,并按照第二预读长度的预读量的第二预读请求;
所述服务端响应所述第二预读请求,从服务端缓存中读取对应所述第

\t二预读请求的数据并发送至所述客户端缓存;
所述...

【专利技术属性】
技术研发人员:袁清波
申请(专利权)人:曙光云计算技术有限公司曙光信息产业北京有限公司曙光信息产业股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1