一种数据缓存方法、装置和系统的制作方法

文档序号:9708012阅读:274来源:国知局
一种数据缓存方法、装置和系统的制作方法
【技术领域】
[0001]本发明涉及数据处理技术领域,特别是涉及一种数据缓存方法、装置和系统。
【背景技术】
[0002]缓存机制广泛应用于各种文件系统之中。当应用程序对磁盘中数据进行读取时,缓存模块将会将向磁盘发送预读取请求,将需读取数据相对应的缓存数据全部从磁盘中读出并存储,那么,当应用程序对缓存数据进行读取时,便直接读取缓存模块中的缓存数据而不是磁盘中的缓存数据,从而提升数据访问速度。
[0003]而且,由于缓存模块对预读请求的处理都是采用“先来先服务”的原则,当系统被多类应用程序同时使用时,这些应用程序会顺序读取文件系统中的不同文件,在访问的数据,即应用程序发送的数据读取请求较多时,缓存模块将会向后端磁盘发送大量的预读取请求,这些预读取请求按照“先来先服务”的方式被处理,将会出现一些较为不重要的任务耗费了大量的资源,而导致一些较为重要的业务无法及时读取得到其所需要的数据的现象发生。

【发明内容】

[0004]有鉴于此,本发明实施例提供一种数据缓存方法、装置和系统,以解决现有技术中当应用程序发送的数据读取请求较多时,缓存模块将会向后端磁盘发送大量的预读取请求,这些预读取请求按照“先来先服务”的方式被处理,将会出现一些较为不重要的任务耗费了大量的资源,而导致一些较为重要的业务无法及时读取得到其所需要的数据的现象发生的问题。
[0005]为实现上述目的,本发明实施例提供如下技术方案:
[0006]—种数据缓存方法,用于数据缓存系统,所述数据缓存系统包括缓存模块、QoS模块和磁盘,所述数据缓存方法包括:
[0007]QoS模块接收缓存模块发送的预读取请求,每个所述预读取请求均由所述缓存模块接收各应用程序发送的文件读取请求后发送给所述QoS模块;
[0008]确定各所述预读取请求相对应的缓存数据,并根据各所述缓存数据预设的优先级标识确定各所述预读取请求的优先级,根据各所述预读取请求的优先级将各所述预读取请求置于具有不同优先级的优先级队列中;
[0009]遍历所有优先级队列,根据各所述优先级队列的优先级按照预设百分比从各所述优先级队列中获取预读取请求,将获取的预读取请求发送给磁盘得到各获取的预读取请求相对应的缓存数据,将各所述缓存数据发送给所述缓存模块进行存储。
[0010]其中,所述QoS模块接收缓存模块发送的预读取请求前还包括:
[0011 ]缓存模块接收各应用程序发送的数据读取请求;
[0012]将各所述数据读取请求相对应的预读取请求发送给所述QoS模块。
[0013]其中,所述缓存模块接收各应用程序发送的数据读取请求后还包括:
[0014]确定各所述数据读取请求相对应的缓存数据;
[0015]判断各所述缓存数据是否存储在所述缓存模块中,确定缓存数据未存储在所述缓存模块中的待处理数据读取请求;
[0016]将各所述待处理数据读取请求相对应的预读取请求发送给所述QoS模块。
[0017]其中,所述缓存模块接收各应用程序发送的数据读取请求后还包括:
[0018]确定接收的数据读取请求的第一总数目;
[0019]判断所述第一总数目是否大于预设数值;
[0020]若不大于,则将各所述数据读取请求相对应的预读取请求发送给磁盘,从所述磁盘中得到各所述预读取请求相对应的缓存数据;
[0021]若大于,则将各所述数据读取请求相对应的预读取请求发送给所述QoS模块。
[0022]其中,所述遍历所有优先级队列,根据各所述优先级队列的优先级按照预设百分比从各所述优先级队列中获取预读取请求包括:
[0023]遍历所有当前优先级队列,确定预设每次获取预读取请求的第二总数目,并确定各所述优先级队列的预设百分比;
[0024]根据所述第二总数据和所述预设百分比,采用去尾法、进一法或四舍五入法计算得到从各所述优先级队列中获取预读取请求的数目;
[0025]从各所述优先级队列中分别获取各所述优先级队列相对应数目的预读取请求,遍历所有下一优先级队列。
[0026]其中,所述将所述缓存数据发送给所述缓存模块进行存储后还包括:
[0027]缓存模块将各所述缓存数据发送给各所述缓存数据相对应的应用程序。
[0028]—种数据缓存装置,包括:请求接收单元、请求分配单元和数据获取单元;其中,
[0029]所述请求接收单元,用于接收缓存模块发送的预读取请求,每个所述预读取请求均由所述缓存模块接收各应用程序发送的数据读取请求后发送给所述QoS模块;
[0030]所述请求分配单元,用于确定各所述预读取请求相对应的缓存数据,并根据各所述缓存数据预设的优先级标识确定各所述预读取请求的优先级,根据各所述预读取请求的优先级将各所述预读取请求置于具有不同优先级的优先级队列中;
[0031]所述数据获取单元,用于遍历所有优先级队列,根据各所述优先级队列的优先级按照预设百分比从各所述优先级队列中获取预读取请求,将获取的预读取请求发送给磁盘得到各获取的预读取请求相对应的缓存数据,将各所述缓存发送给所述缓存模块进行存储。
[0032]其中,所述数据获取单元包括:遍历子单元、计算子单元和请求获取子单元;其中,
[0033]所述遍历子单元,用于遍历所有当前优先级队列,确定预设每次获取预读取请求的第二总数目,并确定各所述优先级队列的预设百分比,并在所述请求获取子单元从各所述优先级队列中分别获取各所述优先级队列相对应数目的预读取请求后,遍历所有下一优先级队列;
[0034]所述计算子单元,用于根据所述第二总数据和所述预设百分比,采用去尾法、进一法或四舍五入法计算得到从各所述优先级队列中获取预读取请求的数目;
[0035]所述请求获取子单元,用于从各所述优先级队列中分别获取各所述优先级队列相对应数目的预读取请求,遍历所有下一优先级队列。
[0036]—种数据缓存系统,包括:缓存模块、QoS模块和磁盘;其中,
[0037]所述缓存模块,用于接收各应用程序发送的数据读取请求,将各所述数据读取请求相对应的预读取请求发送给所述QoS模块,并在接收所述QoS模块发送的各缓存数据后对各所述缓存数据进行存储。
[0038]所述QoS模块,用于接收缓存模块发送的预读取请求,每个所述预读取请求均由所述缓存模块接收各应用程序发送的数据读取请求后发送给所述QoS模块;确定各所述预读取请求相对应的缓存数据,并根据各所述缓存数据预设的优先级标识确定各所述预读取请求的优先级,根据各所述预读取请求的优先级将各所述预读取请求置于具有不同优先级的优先级队列中;遍历所有优先级队列,根据各队列的优先级按照预设百分比从各所述优先级队列中获取预读取请求,将获取的预读取请求发送给磁盘得到各获取的预读取请求相对应的缓存数据,将各所述缓存数据发送给所述缓存模块进行存储;
[0039]所述磁盘,用于接收所述QoS模块发送的各预读取请求,将各所述预读取请求相对应的缓存数据发送给所述QoS模块。
[0040]其中,所述缓存模块包括:接收单元、第一发送单元和存储单元;其中,
[0041 ]所述接收单元,用于接收各应用程序发送的数据读取请求;
[0042]所述第一发送单元,用于将各所述数据读取请求相对应的预读取请求发送给所述QoS模块;
[0043]所述存储单元,用于在接收所述QoS模块发送的各缓存数据后对各所述缓存数据进行存储;
[0044]所述缓存模块还包括:第二发送单元,用于将各所述缓存数据发送给各所述缓存数据相对应的应用程序。
[0045]基于上述技术方案,本发明实施例提供的数据缓存方法、装置和系统,其中,数据缓存系统包括缓存模块、QoS模块和磁盘,缓存模块接收各应用程序发送的数据读取请求,并在接收各应用程序发送的各数据读取请求后将各数据读取请求相对应的
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1