具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参见图1,本发明实施例提供一种高速缓冲存储实现方法,包括:
步骤100:获得应用程序向硬盘发送的文件访问请求,根据该请求获取所访问文件的文件信息;
在现有技术中,由于高速缓冲存储器是位于文件系统之下,其收到的读请求只包括被访问数据块的起始地址及其长度,没有数据块和文件对应关系,本发明实施例将高速缓冲存储器模块置于文件系统之上,因此在应用程序访问某个文件或目录时,高速缓冲存储器就可以接收到应用程序的访问请求,并获取应用程序当前正在访问的文件信息,包括:文件名、文件所在的路径、文件大小等;就可以知道应用程序当前正在访问的文件信息,包括:文件名、文件所在的路径、文件大小等;
步骤101:根据获得的文件信息对应用程序访问的文件进行分片而获得至少一个文件片段;
例如一个文件A,其大小100MB,假设文件分段大小为10MB,那么这个文件首先将被逻辑分为10个片,其中,可预先设定不同的文件类型对应的文件分片大小,例如:媒体文件分片可以以70MB为单位大小,而对彩铃等小文件就不再进行分片;
步骤102:判断获得的文件片段在预置时间段内是否满足将其从硬盘中拷贝至高速缓冲存储器中的条件;
本发明实施例中主要将文件访问频率较高的热点文件片段拷贝至高速缓冲存储器中,由于热点文件片段的确定和统计是时间段有一定关系,例如,上班期间和下班期间的时间段内,视频点播的访问情况有很大区别;节假日期间视频的访问情况相对于平时也会有很大差异,因此,在文件片段访问频率统计时,可根据具体情况设置统计的时间段,如具体统计时间以及统计时间的长短等;
步骤103:当判断结果为是时,则将满足所述条件的文件片段从硬盘中拷贝至高速缓冲存储器中;
其中,由于高速缓冲存储器作用在于在传输速度有较大差异的设备间作为匹配来调节差距,减小CPU与内存之间的速度差异对系统性能带来的影响,因此高速缓冲存储器需要采用读写性能高于存储有应用程序访问的文件的硬盘;
上述实施例的方案中,通过对获取应用程序访问的文件进行文件分片而获得文件片段,设置文件片段从硬盘拷贝至高速缓冲存储器的条件,当满足所述的拷贝条件时将文件片段拷贝至高速缓冲存储器中,与现有技术将这个文件拷贝至高速缓冲存储器的技术方案相比,有效提高高速缓冲存储器的使用效率。
参见图2,本发明实施例还提供另一种高速缓冲存储实现方法,包括:
步骤200:获得应用程序向硬盘发送的文件访问请求,根据该请求获取所访问文件的文件信息;
在现有技术中,由于高速缓冲存储器是位于文件系统之下,其收到的读请求只包括被访问数据块的起始地址及其长度,没有数据块和文件对应关系,本发明实施例将高速缓冲存储器模块置于文件系统之上,因此在应用程序访问某个文件或目录时,高速缓冲存储器就可以接收到应用程序的访问请求,并获取应用程序当前正在访问的文件信息,包括:文件名、文件所在的路径、文件大小等;就可以知道应用程序当前正在访问的文件信息,包括:文件名、文件所在的路径、文件大小等;
步骤201:根据获得的文件信息对应用程序访问的文件进行分片而获得至少一个文件片段;
其中,可预先设定不同的文件类型对应的文件分片大小,例如:媒体文件分片可以以70MB为单位大小,而对彩铃等小文件就不再进行分片;
步骤202:判断所获得的文件片段在预置的时间段内被访问的频率是否超过第一预置阈值;若是,则进入步骤203;若否,则结束流程;
通过判断文件片段被访问的频率是否超过第一预置阈值来确定文件片段是否为热点文件片段,该方案中,为提高判断效率,对热点文件片段的判断可以包括:
判断所述应用程序访问的文件的文件类型是否是热点文件类型,如是,则判断获得的文件片段在预置的时间段内被访问的频率是否超过第一预置阈值;
其中,可以预先设定哪些文件类型为热点文件类型,处理中可通过文件后缀名判断应用程序所需访问的文件是否为热点文件类型,当文件为热点文件类型时,则进一步判断所属的文件片段是否为热点文件片段,从而提高处理效率,例如对于网络电视服务中,除了媒体文件类型外,还包括一些辅助文件类型,高速缓冲存储器可不对这些属于辅助文件类型的文件进行处理;
其中,由于热点文件片段的确定和统计是时间段有一定关系,例如,上班期间和下班期间的时间段内,视频点播的访问情况有很大区别;节假日期间视频的访问情况相对于平时也会有很大差异,因此,在文件片段访问频率统计时,可根据具体情况设置统计的时间段,如具体统计时间以及统计时间的长短等;
另外,在预置时间段内文件片段被访问的频率的获得还可以通过在预置的时间段内设定统计次数,将预置时间段内多次统计得到的访问频率进行综合分析来获得在该统计时间段内文件片段的访问频率;其中,每次获得的统计结果可以通过加权平均计算得到文件片段在该统计时间内的访问频率;
其中,对第一预置阈值作为热点文件片段访问频率的阈值,其设定和文件类型相关,对不同的文件类型可以设定不同的与访问频率对应的第一预置阈值;
步骤203:判断是否满足预置的文件片段拷贝时机,若是,则进入步骤204,若否,则结束流程;
因为将硬盘中的数据拷贝至高速缓冲存储器中,需要消耗CPU、内存及硬盘带宽等资源,为尽量减少拷贝时所带来的新资源需求对当前访问所需资源的影响,在判断得到在预置的时间段内所获得的文件片段被访问的频率是超过第一预置阈值的情况下,判断是否满足预置的拷贝时机,其中,预置的拷贝时机可以包括:CPU占有率、硬盘使用率或内存的使用率满足预置条件的情况;
优选的,满足拷贝时机可以是CPU占有率、硬盘使用率和内存的使用率等系统资源使用参数同时都满足预置条件的情况;其中,系统资源使用的参数达到多少值才满足预置条件可以由用户来设置,但系统也可以分别给出一个经验值,例如硬盘使用率达到80%;
需要说明的是,所述的步骤203为优选步骤,也可以在步骤202判断结果为是的情况下,直接进入步骤204;
步骤204:将满足条件的文件片段从硬盘拷贝至高速缓冲存储器中;
为进一步提高高速缓冲存储器的利用率,优选的,该方法还可以包括:
步骤205:当获得应用程序文件访问请求时,判断所述高速缓冲存储器中是否存储有请求访问的文件片段,若是,则从所述高速缓冲存储器中读取文件片段数据返回给所述应用程序;
步骤206:当所述高速缓冲存储器中所存储的文件片段被访问时,更新该文件片段的访问频率;
步骤207:当所述高速缓冲存储器容量的使用率超过第二预置阈值时,将所述高速缓冲存储器中访问频率不超过第三预置阈值的文件片段删除。
上述实施例的方案中,通过获取应用程序访问的文件片段,通过判断文件片段的访问频率来判断热点文件片段,并结合计算机系统资源利用的情况决定是否将存储单元中的热点文件片段拷贝至高速缓冲存储器中,与现有技术将整个文件拷贝至高速缓冲存储器的技术方案相比,有效提高了高速缓冲存储器的使用效率。
参见图3,结合具体应用场景,本发明实施例还提供一种高速缓冲存储实现方法,包括:
步骤301:接收应用程序向硬盘下发的文件访问请求,根据该请求获取所访问文件的文件信息;
步骤302:判断所述高速缓冲存储器中是否存储有请求访问文件的文件片段,若是,则进入步骤309,若否,则进入步骤303;
步骤303:判断被访问文件的文件类型是否为热点文件类型,若是,则进入步骤304,若否则进入步骤308;
其中,可以预先设定哪些文件类型为热点文件类型,所述热点文件类型可以是被访问频率较高的文件类型,也可以由管理员根据具体需求设置热点文件类型;可以通过文件后缀名判断所需访问的文件片段是否为热点文件的文件类型,例如对于网络电视服务中,除了媒体文件类型外,还包括一些辅助文件类型,高速缓冲存储器可不对这些属于辅助文件类型的文件进行处理,以提高处理效率;
步骤304:对该文件进行分段形成文件片段,统计该文件的各文件片段的被访问频率;
其中,本发明实施例将高速缓冲存储器模块置于文件系统之上,因此在应用程序访问某个文件或目录时,高速缓冲存储器就可以知道应用程序当前正在访问文件的文件信息,包括:文件名、文件所在的路径、文件大小等;
步骤305:判断各文件片段的被访问频率是否超过第一预置阈值,若是,则进入步骤306,若否,则进入步骤308;
其中,对第一预置阈值的设定和文件类型相关,不同文件类型可设定不同的与访问频率对应的第一预置阈值;
步骤306:判断是否满足预置的文件片段拷贝时机,若是,则进入步骤307,若否,则进入步骤308;
其中,预置的拷贝时机可以包括:CPU占有率、硬盘使用率或内存的使用率等系统资源使用参数满足预置条件的情况;优选的,满足拷贝时机可以是CPU占有率、硬盘使用率和内存的使用率等系统资源使用参数同时都满足预置条件的情况;其中,系统资源使用的参数达到多少值才满足预置条件可以由用户来设置,但系统也可以分别给出一个经验值;例如:在一个IP视频点播服务系统,支持1200路并发访问时,系统已经比较繁忙,假设当前的CPU占用率已达到90%,这时,如果对热点文件片段从硬盘拷贝到高速缓冲存储器中,很可能导致CPU占用率进一步提升,有可能导致出现在拷贝过程中系统无法应付1200路并发流的访问;因此,为尽量减少拷贝时所带来的新资源需求对当前访问所需资源的影响,在判断得到在预置的时间段内所获得的文件片段被访问的频率是超过第一预置阈值的情况下,优选的,进一步考虑拷贝时机;
步骤307:将满足条件的文件片段从硬盘中拷贝至高速缓冲存储器中;
其中,高速缓冲存储器可以有固态硬盘构成,设置有多个不同接口,例如传统接口及高速外设组件互连标准(Peripheral Component Interconnect-Express,PCIE)接口,根据接口的不同特点,将文件片段拷贝至高速缓冲存储器中时可选择不同的拷贝策略,例如,对于大的输入输出应用,如视频处理,可选择PCIE接口将视频文件片段拷贝至高速缓冲存储器中;
其中,所述高速缓冲存储器包括由固态硬盘构成的存储介质。
步骤308:从硬盘中读取数据返回给应用程序,结束流程;
步骤309:从所述高速缓冲存储器中读取所请求访问的文件片段数据返回给所述应用程序,更新所述文件片段的访问频率。
本发明实施例通过对获取应用程序访问的文件进行文件分片而获得文件片段,设置文件片段从硬盘拷贝至高速缓冲存储器的条件,但存储单元中满足所述的拷贝条件时将文件片段拷贝至高速缓冲存储器中,与现有技术将这个文件拷贝至高速缓冲存储器的技术方案相比,有效提高高速缓冲存储器的使用效率。
参见图4,本发明实施例提供一种高速缓冲存储器,包括:
文件信息获取单元41,用于获得应用程序向硬盘发送的文件访问请求,根据该请求获取所访问文件的文件信息;
本发明实施例将高速缓冲存储器模块置于文件系统之上,因此在应用程序访问某个文件或目录时,高速缓冲存储器就可以接收到应用程序的访问请求,并获取应用程序当前正在访问的文件信息,包括:文件名、文件所在的路径、文件大小等;
文件分片单元42,用于根据获得的文件信息对应用程序访问的文件进行分片而获得至少一个文件片段;
其中,可预先设定不同的文件类型对应的文件分片大小;
存储处理单元43,用于判断获得的文件片段在预置时间段内是否满足将其从硬盘中拷贝至高速缓冲存储器中的条件,若是,则将满足拷贝条件的文件片段从硬盘中拷贝至高速缓冲存储器中;
其中,由于高速缓冲存储器作用在于在传输速度有较大差异的设备间作为匹配来调节差距,减小CPU与内存之间的速度差异对系统性能带来的影响,因此高速缓冲存储器需要采用读写性能高于存储有应用程序访问的文件的硬盘;
上述实施例的方案中,高速缓冲存储器通过对获取应用程序访问的文件进行文件分片而获得文件片段,对文件片段做热定判断,有效提高高速缓冲存储器的使用效率。
上述实施例中,优选的,存储处理单元43可以包括:
判断子单元431,用于判断所获得的文件片段在预置的时间段内被访问的频率是否超过第一预置阈值,或,判断所获得的文件片段在预置的时间段内被访问的频率是否超过第一预置阈值且是否满足根据系统资源使用情况而预置的拷贝时机;
其中,对第一预置阈值作为热点文件片段访问频率的阈值,其设定和文件类型相关,对不同的文件类型可以设定不同的与访问频率对应的第一预置阈值;
其中,为提高处理效率,高速缓冲存储器可以只对热定的文件类型文件进行处理,因此,优选的,判断子单元431具体用于:判断所述应用程序访问的文件的文件类型是否是热点文件类型,如是,判断所获得的文件片段在预置的时间段内被访问的频率是否超过第一预置阈值或判断所获得的文件片段在预置的时间段内被访问的频率是否超过第一预置阈值且是否满足根据系统资源使用情况而预置的拷贝时机;
其中,可以预先设定哪些文件类型为热点文件类型,当文件为热点文件类型时,则进一步判断所属的文件片段是否为热点文件片段,从而提高处理效率;
处理子单元432,用于当判断子单元的判断结果为是时,将满足拷贝条件的文件片段从硬盘中拷贝至高速缓冲存储器中。
参见图5,本发明实施例还提供一种高速缓冲存储器,包括:
文件信息获取单元51,用于获得应用程序向硬盘发送的文件访问请求,根据该请求获取所访问文件的文件信息;
本发明实施例将高速缓冲存储器模块置于文件系统之上,因此在应用程序访问某个文件或目录时,高速缓冲存储器就可以接收到应用程序的访问请求,并获取应用程序当前正在访问的文件信息,包括:文件名、文件所在的路径、文件大小等;
文件分片单元52,用于根据获得的文件信息对应用程序访问的文件进行分片而获得至少一个文件片段;
其中,可预先设定不同的文件类型对应的文件分片大小;
存储处理单元53,用于判断获得的文件片段在预置时间段内是否满足将其从硬盘中拷贝至高速缓冲存储器中的条件,若是,则将满足拷贝条件的文件片段从硬盘中拷贝至高速缓冲存储器中;
数据读取单元54,用于当获得应用程序文件访问请求时,判断所述高速缓冲存储器中是否存储有请求访问文件的文件片段,若是,则从所述高速缓冲存储器中读取所请求访问的文件片段数据返回给所述应用程序;
本实施例增加了以数据读取单元,在接收到文件访问请求时,如果高速缓冲存储器中已经保存了该文件的文件片段,直接从高速存储器中读取该文件片段返回给应用程序,由于高速缓冲存储器的读取速度比硬盘快,因此有效提高了数据读取效率;
由于高速缓冲存储器的读写速度高于普通存储器,因此成本相对较高,为有效利用高速缓冲存储器中的存储空间,优选的,高速缓冲存储器还包括:
更新单元55,用于当所述高速缓冲存储器中所存储的文件片段被访问时,更新所述文件片段的访问频率;
释放单元56,用于当所述高速缓冲存储器容量的使用率超过第二预置阈值时,将所述高速缓冲存储器中访问频率不超过第三预置阈值的文件片段删除。
上述实施例的方案中,通过获取应用程序访问的文件片段,通过判断文件片段的访问频率来判断热点文件片段,并结合计算机系统资源利用的情况决定是否将存储单元中的热点文件片段拷贝至高速缓冲存储器中,与现有技术将整个文件拷贝至高速缓冲存储器的技术方案相比,有效提高了高速缓冲存储器的使用效率。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的硬件平台的方式来实现,当然也可以全部通过硬件来实施,但很多情况下前者是更佳的实施方式。本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
以上对本发明进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。