一种基于文件预测的分布式缓存模型制造技术

技术编号:10040030 阅读:159 留言:0更新日期:2014-05-14 10:33
本发明专利技术涉及一种基于文件预测的分布式缓存模型,建立在分布式文件系统之上,每个客户端维护本机之上的DLS(double last successor)文件预测数据,每次读请求时,同时预读DLS文件预测模型中预测的读请求目标文件之后的两个文件;服务器端维护两个队列:读请求队列和预读请求队列。DLSDCM(DLS based distributed cache model)的实现分为两部分:客户端的实现和服务器端的实现;每个客户端独立维护一份文件预测数据;服务器端负责客户端的读请求调度和预读请求调度。本发明专利技术模型以客户端文件预测模型为基础进行文件预测,从服务器角度对分布式网络中所有用户请求进行统筹调度,在提高客户端吞吐量和数据访问的同时又不会影响其它客户的数据访问。

【技术实现步骤摘要】

本专利技术涉及一种基于文件预测的分布式缓存模型,属于计算机

技术介绍
随着处理器的高速发展,I/O与处理器之间的鸿沟越来越大,低下的I/O速度严重影响了分布式存储的性能,缓存与预取技术的发展从软件角度提升了I/O性能。预取可改善系统I/O的两个主要性能指标:利用异步预取在程序使用文件之前将文件准备就绪,可对应用程序隐藏磁盘I/O延时;将小粒度读取合并为大粒度读取,可提高磁盘有效利用率和I/O吞吐量。利用大量廉价PC搭起来的分布式存储系统中,同时具备了单机中的磁盘I/O瓶颈和网络带宽的瓶颈,从数据库中查找数据也是一个重要延时因素。典型的分布式缓存系统如Oracle coherence,Memcached,Terracotta,此类分布式缓存对网格中的缓存资源进行统一管理,支持在线扩展以及数据分布均衡等功能,从数据管理方面来讲可认为是从系统层面对时间局部性强的数据进行缓存。缓存也可以从应用程序角度对数据的读取操作进行优化,根据应用程序使用文件的规律,预测将要使用的文件并提前异步读入,在程序使用文件时便可降低访问延时,一种基于用户的LNS文件预测模型、一种识别I_OFeature的文件预测模型就属于此类型缓存策略。数据的访问请求并非完全随机,它是由用户或程序的行为驱动,用户执行某种应用程序去访问数据,连续访问的不同文件之间必然存在一定的关联。可构造一种文件预测模型,通过对数据本体间的内在联系或者历史访问记录进行分析并构造出预测数据库,依预测数据对文件进行异步预读取并缓存,当应用程序使用这些数据时,便可大幅度减少数据的访问延时,同时也减少了网络空闲时间,提升了网络使用效率。
技术实现思路
本专利技术的目的在于提供一种基于文件预测的分布式缓存模型DLSDCM(DLS based distribute cache model),此模型以客户端文件预测模型为基础进行文件预测,从服务器角度对分布式网络中所有用户请求进行统筹调度,在提高客户端吞吐量和数据访问的同时又不会影响其它客户的数据访问。为了实现上述目的,本专利技术的技术方案如下。一种基于文件预测的分布式缓存模型,所述缓存模型建立在分布式文件系统之上,每个客户端维护本机之上的DLS文件预测数据,每次读请求时,同时预读DLS文件预测模型中预测的读请求目标文件之后的两个文件;服务器端维护两个队列:读请求队列和预读请求队列,其中读请求队列的优先级高于预读请求队列,即只要读请求队列不为空,预读请求队列就处于等待状态;DLSDCM的实现分为两部分:客户端的实现和服务器端的实现;每个客户端独立维护一份文件预测数据,预测数据中每个数据节点包括文件名、两个预读文件名以及每个预读文件所命中的次数,每次读请求时都根据文件预测数据节点中预测的文件进行异步预读;服务器端负责客户端的读请求调度和预读请求调度;其中,所述DLSDCM客户端的实现是根据DLS文件预测模型所预测的数据进行文件的预读,并将过大的数据存储于本地磁盘;一次读请求的系统执行过程如下:①读取存储于磁盘的DLS文件预测数据;②申请大小数据一定量(大小视具体软硬件而定,能手动修改)内存作为读请求缓存和预读请求缓存,在磁盘上创建缓存目录;⑧遍历DLS文件预测数据节点:若数据节点中无本次读请求文件对应的数据则向服务器发送读请求,创建数据节点并插入文件预读数据,并将本次读请求文件名写入上一次读请求文件名对应的预测数据节点中,并替换其中命中次数较少的预测文件;若预测数据中存在本次读请求文件,则检查读请求文件是否存在于预读请求缓存或磁盘缓存目录中:A、读请求文件存在于缓存并且数据仍未传输完成,则向服务器发送信号把该文件预读请求改为读请求,终止另一个预读文件的数据传输,并将预测数据中上一次读请求文件对应的预读数据节点中本次读请求文件的命中次数+1操作;B、读请求文件存在于缓存并且文件已传输完毕,则将预测数据中上一次读请求文件对应的预读数据节点中本次读请求文件的命中次数+1操作;C、读请求文件不存在于缓存中且预读文件正在传输,则向服务器发信号中断正在传输的数据,将缓存空间清零并发送本次读请求和预读请求;D、读请求文件不存在于缓存中且预读文件已传输完毕,则将缓存空间清零并发送本次读请求和预读请求;④当预读文件大于内存缓存大小时,将预读文件写入磁盘缓存目录:读请求缓存区和预读请求缓存区在一次读请求结束后会保留一段时间,若长时间无新读请求则回收读请求缓存区和预读请求缓存区;磁盘缓存目录中数据长时间保留,当缓存目录中数据将要达到规定值时采用先存放先回收的策略回收最早存放的数据;所述DLSDCM服务器端的实现过程为:服务器视所有客户端为平等优先级,按照传统的先来先服务策略进行调度,服务器响应读请求和数据传输的执行过程如下:①将读请求加入读请求队列,将预读请求加入预读请求队列;②若读请求队列不为空,则依次传输读请求数据;若读请求队列为空,则传输预读请求数据;③若收到预读请求转读请求的信号,则将对应文件加入读请求队列队尾;若收到预读终止信号则终止数据传输并将对应文件从预读请求对于删除。所述DLSDCM需要进行性能测试,所述DLSDCM的性能测试以HDFS(Hadoop Distributed File System)为例进行测试,首先单独使用HDFS进行文件的读操作,然后使用DLSDCM基于HDFS对同样的目标文件进行重复的读操作,对比二者的访问延时,可得出使用DLSDCM模型后的HDFS是否有I/O性能的提高;所述测试环境如下:①硬件环境:3台PC机搭建而成的后台集群和1台客户端pc机,硬件配置为Pentium E5800双核,3.20GHz主频CPU;2G内存;7200转硬盘;②软件环境:操作系统为ubuntu11.10,hadoop版本为1.0.4;③读操作对象文件:大小介于10K至120k之间总计46434个文件;所述测试过程为:首先单独使用HDFS对文件进行读操作10分钟,计算平均读操作延时,然后使用DLSDCM基于HDFS对文件进行重复读操作一小时(因为DLSDCM是一个针对长期读操作的缓存模型,重复读1小时是为了创造一个已经进行了长期读操作的环境),然后再运行10分钟,计算这10分钟之内的平均读操作延时。该专利技术的有益效果在于:本专利技术技术基于文件预测的分布式缓存模型DLSDCM(DLS based distribute cache model),此模型以客户端文件预测模型为基础进行文件预<本文档来自技高网
...
一种基于文件预测的分布式缓存模型

【技术保护点】
一种基于文件预测的分布式缓存模型,其特征在于:所述缓存模型建立在分布式文件系统之上,每个客户端维护本机之上的DLS文件预测数据,每次读请求时,同时预读DLS文件预测模型中预测的读请求目标文件之后的两个文件;服务器端维护两个队列:读请求队列和预读请求队列,其中读请求队列的优先级高于预读请求队列,即只要读请求队列不为空,预读请求队列就处于等待状态;DLSDCM的实现分为两部分:客户端的实现和服务器端的实现;每个客户端独立维护一份文件预测数据,预测数据中每个数据节点包括文件名、两个预读文件名以及每个预读文件所命中的次数,每个读请求操作同时对文件预测数据节点中预测的文件进行预读操作;服务器端负责客户端的读请求调度和预读请求调度;其中,所述DLSDCM客户端的实现是根据DLS文件预测模型所预测的数据进行文件的预读,并将过大的数据存储于本地磁盘;一次读请求的系统执行过程如下:①读取存储于磁盘的DLS文件预测数据;②申请大小数据一定量(大小视具体软硬件而定,能手动修改)内存作为读请求缓存和预读请求缓存,在磁盘上创建缓存目录;③查询DLS文件预测数据节点:若数据节点中无本次读请求文件对应的数据则向服务器发送读请求,创建本次读请求文件数据节点并写入文件预读数据,将本次读请求文件名写入上一次读请求文件名对应的预测数据节点中,并替换其中命中次数较少的预测文件;若预测数据中存在本次读请求文件,则检查读请求文件是否存在于预读请求缓存或磁盘缓存目录中:A、读请求文件存在于缓存并且数据传输仍未结束,则向服务器发送信号把该文件的预读请求转为读请求,并发送信号终止另一个预读文件的数据传输,同时将预测数据中上一次读请求文件对应的预读数据节点中本次读请求文件的命中次数+1操作;;B、读请求文件存在于缓存并且文件已传输完毕,则将预测数据中上一次读请求文件对应的预读数据节点中本次读请求文件的命中次数+1操作;C、读请求文件不存在于缓存中且预读文件正在传输,则向服务器发送信号中断正在传输的数据,将缓存空间清零并发送本次读请求和预读请求;D、读请求文件不存在于缓存中且预读文件已传输完毕,则将缓存空间清零并发送本次读请求和预读请求;④当预读文件大于内存缓存大小时,将预读文件写入磁盘缓存目录:读请求缓存区和预读请求缓存区在一次读请求结束后会保留一段时间,若长时间无新读请求则回收读请求缓存区和预读请求缓存区;磁盘缓存目录中数据长时间保留,当缓存目录中数据将要达到规定值时采用先存放先回收的策略回收最早存放的数据;所述DLSDCM服务器端的实现过程为:服务器端主要负责响应客户端的请求信号和对读请求队列与预读请求队列的调度;在调度方面,服务器视所有客户端为平等优先级(默认为平等优先级,可对特定客户端优先级进行修改),按照传统的先来先服务策略分别对读请求和预读请求进行调度,预读请求队列每个节点中包含两个文件信息,在被调度传输时同时传输两个文件,并根据相应的比例来分配传输带宽;响应请求信号方面,主要响应客户端的五种请求信号:读请求,预读请求,预读请求转读请求,预读终止以及读终止;对于五种信号的处理如下:①「收到读请求信号,将响应的读请求文件加入读请求队列的队尾,读请求队列为空则直接加入并抢占正在被调度的预读请求的数据传输;②「收到预读请求信号,将预读请求文件加入预读请求队列,并标记两个预读请求文件在传输时占据的带宽比例,队列中两个文件占用一个节点,在被调度时根据比例传输两个文件数据;③「收到预读请求转读请求信号,则将对应文件加入读请求队列队尾;将文件所在的预读请求队列节点删除;④「收到预读终止信号,则终止数据传输,将预读文件所在节点从预读队列中删除;⑤「收到读终止信号,结束文件传输,将文件节点从读请求队列删除。...

【技术特征摘要】
1.一种基于文件预测的分布式缓存模型,其特征在于:所述缓存模型建立在分布
式文件系统之上,每个客户端维护本机之上的DLS文件预测数据,每次读请求时,同时
预读DLS文件预测模型中预测的读请求目标文件之后的两个文件;服务器端维护两个队
列:读请求队列和预读请求队列,其中读请求队列的优先级高于预读请求队列,即只要
读请求队列不为空,预读请求队列就处于等待状态;
DLSDCM的实现分为两部分:客户端的实现和服务器端的实现;每个客户端独立维护
一份文件预测数据,预测数据中每个数据节点包括文件名、两个预读文件名以及每个预
读文件所命中的次数,每个读请求操作同时对文件预测数据节点中预测的文件进行预读
操作;服务器端负责客户端的读请求调度和预读请求调度;
其中,所述DLSDCM客户端的实现是根据DLS文件预测模型所预测的数据进行文件
的预读,并将过大的数据存储于本地磁盘;一次读请求的系统执行过程如下:
①读取存储于磁盘的DLS文件预测数据;
②申请大小数据一定量(大小视具体软硬件而定,能手动修改)内存作为读请求缓
存和预读请求缓存,在磁盘上创建缓存目录;
③查询DLS文件预测数据节点:若数据节点中无本次读请求文件对应的数据则向服
务器发送读请求,创建本次读请求文件数据节点并写入文件预读数据,将本次读请求文
件名写入上一次读请求文件名对应的预测数据节点中,并替换其中命中次数较少的预测
文件;若预测数据中存在本次读请求文件,则检查读请求文件是否存在于预读请求缓存
或磁盘缓存目录中:
A、读请求文件存在于缓存并且数据传输仍未结束,则向服务器发送信号把该文件
的预读请求转为读请求,并发送信号终止另一个预读文件的数据传输,同时将预测数据
中上一次读请求文件对应的预读数据节点中本次读请求文件的命中次数+1操作;;
B、读请求文件存在于缓存并且文件已传输完毕,则将预测数据中上一次读请求文
件对应的预读数据节点中本次读请求文件的命中次数+1操作;
C、读请求文件不存在于缓存中且预读文件正在传输,则向服务器发送信号中断正
在传输的数据,将缓存空间清零并发送本次读请求和预读请求;
D、读请求文件不存在于缓存中且预读文件已传输完毕,则将缓存空间清零并发送
本次读请求和预读请求;
④当预读文件大于内存缓存大小时,将预读文件写入磁盘缓存目录:
读请求缓存区和预读请求缓存区在一次读请求结束后会保留一段时间,若长时间无

\t新读请求则回收读请求缓存区和预读请求缓存区;磁盘缓存目录中数据长时间保留,当
缓存目录中数据将要达到规...

【专利技术属性】
技术研发人员:陈莉君张胜利
申请(专利权)人:西安邮电大学
类型:发明
国别省市:陕西;61

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

1