基于客户端高效缓存的远程文件数据访问性能优化方法技术

技术编号:21999981 阅读:29 留言:0更新日期:2019-08-31 05:20
本发明专利技术提出一种基于客户端高效缓存的远程文件数据访问性能优化方法,在客户端基于局部性原理对全局元数据和文件数据进行缓存;采用基于数据块和文件为粒度的混合缓存策略对文件数据进行缓存;根据计算资源的使用状态对缓存进行自适应压缩;对频繁访问的数据在本地生成副本文件;基于应用的IO负载特征对缓存的大小进行动态调整;对过期的缓存数据进行细粒度更新;基于用户的访问特征及应用的负载特征挖掘出相关联文件,并将相关联文件的索引节点聚合成一个大索引节点在客户端并进行缓存。该方法可以显著提升远程文件数据访问性能。

Performance optimization method of remote file data access based on client efficient caching

【技术实现步骤摘要】
基于客户端高效缓存的远程文件数据访问性能优化方法
:本专利技术公开了一种基于客户端高效缓存的远程文件数据访问性能优化方法,涉及广域高性能计算面临的挑战,属于计算机

技术介绍
:在广域高性能计算环境中,访问远程文件数据时需通过客户端向远程服务器发送数据请求并进行访问。客户端缓存是远程文件数据访问中常见的用于提升IO性能的方法,主要思想是基于数据局部性原理在客户端缓存最近被访问的数据,当缓存数据被再次访问时,能够避免网络传输从而提升访问性能。大多数研究主要从缓存数据的组织结构和缓存的数据管理两个方面对缓存性能进行优化。在缓存数据的组织结构方面,客户端通常采用基于数据块索引的缓存组织结构来对文件数据进行缓存。Bradley针对IO密集型负载导致客户端缓存的数据频繁换出的问题,研究了一种渐进式的页面缓存方法,当一个页面的部分内容被更新时,并不立刻替换整个页面,而记录页面中仍然有效的部分,从而实现对缓存页面的细粒度控制,避免了因部分数据更新而造成整个页面的替换,该方法显著减少了缓存数据的换出频率,但是为了实现页面的细粒度控制引入了一定的时间和空间开销。Tara等人提出了基于机器学习在应用程序运行时动态选择缓存策略的方法,在程序执行前通过对应用的IO负载进行学习并建模,并基于所建立的模型在程序运行中动态选择合适的缓存策略,该方法有效提升了缓存的性能,但是预先建模的方法不适用于高性能计算环境中多类型IO负载对缓存的性能要求。Michael等人提出了虚拟缓存的概念,为每个应用建立一个虚拟缓存和虚拟缓存到物理缓存的映射表,在每次应用访问数据时记录虚拟缓存中的每个页面的访问次数,并在物理缓存中优先为虚拟缓存中具有较高访问频率的页面开辟实际的存储空间,从而在缓存变小的情况下仍能够获取高命中率。Matthew等人提出了一种在内存资源共享架构上的缓存分区方法,该方法为并发应用分配相互隔离的缓存空间,并根据应用的负载特征动态调整每个缓存分区的大小,避免了多个应用间的性能干扰,确保了每个应用的缓存性能。Murali等人提出了一种包含本地缓存和全局缓存的两层级缓存机制,其中全局缓存构建于多个存储服务器内存之上,应用在访问数据时首先在本地缓存中查找数据,若未命中则到全局缓存中查找,若未命中再到存储磁盘中查找,该方法充分利用了存储服务器集群的内存资源,提升了系统的整体性能。在上述相关研究中,客户端通常采用基于数据块的结构对缓存进行组织与管理,然而随着新兴应用的不断出现,当前基于数据块的缓存结构难以应付来自应用越来越密集的IO负载,导致缓存性能无法充分发挥。在缓存的数据管理方面,通常采用数据压缩和数据去重等方法对缓存的数据进行管理,数据压缩方法通常在内存中设置压缩区,在缓存压缩区采用压缩算法对缓存块进行压缩以提升缓存利用率。Irina等人基于应用的IO负载特征和访问局部性原理对缓存压缩区的大小进行动态调整,提升了缓存的整体性能。Rodrigo等人基于应用的IO负载判断是否对换出的页面进行压缩并自适应调整压缩区的大小,提升了缓存的性能。数据去重方法通常为每个页面计算页面指纹,并删除具有相同指纹的页面从而达到去重效果。Andrea等人通过为缓存页计算出页面指纹,并周期性扫描缓存区删除缓存中具有相同页面指纹的页面,从而提升了缓存的利用率,但当扫描的页面数量巨大时该方法会耗费大量时间,导致系统整体性能降低。Diwaker等人通过对缓存页面共享并去重,有效减少了多个应用间的重复数据,并对缓存页面进行压缩,有效减少了页面和外存交换的次数,提升了系统的整体性能。当前基于缓存页面压缩和去重的方式有效提升了缓存的利用率,但是缓存的压缩和去重需要耗费大量计算资源,随着密集型计算越来越多,应用计算和缓存管理之间会竞争计算资源,导致系统性能降低。传统的客户端缓存方法存在的问题主要为:客户端采用基于数据块的结构对缓存进行组织与管理难以应付来自应用越来越密集的IO负载,LRU队列中小文件的不同数据块被其他文件的数据块隔离,缓存中采用压缩和去重提升空间利用率的方式导致应用和缓存系统竞争计算资源。
技术实现思路
:本专利技术的主要目的是提供一种基于客户端高效缓存的远程文件数据访问性能优化方法,针对客户端采用基于数据块的结构对缓存进行组织与管理难以应付来自应用越来越密集的IO负载,它实现了基于数据块和文件为粒度的混合缓存策略对文件数据进行缓存,避免LRU队列中小文件的不同数据块被其他文件的数据块隔离;针对缓存中采用压缩和去重提升空间利用率的方式导致应用和缓存系统竞争计算资源,它根据计算资源的使用状态对缓存进行自适应压缩避免缓存系统和大型应用竞争计算资源,提升缓存的性能和效率,从而提升远程数据的访问性能。本专利技术的技术方案是:一种基于客户端高效缓存的远程文件数据访问性能优化方法,其特征在于,在客户端基于局部性原理对全局元数据和文件数据进行缓存;采用基于数据块和文件为粒度的混合缓存策略对文件数据进行缓存;根据计算资源的使用状态对缓存进行自适应压缩;对频繁访问的数据在本地生成副本文件;基于应用的IO负载特征对缓存的大小进行动态调整;对过期的缓存数据进行细粒度更新;基于用户的访问特征及应用的负载特征挖掘出相关联文件,并将相关联文件的索引节点聚合成一个大索引节点在客户端并进行缓存。该方法可以显著提升远程文件数据访问性能。包括以下步骤,具体如下:1)在访问文件数据时,客户端首先访问广域文件系统的管理节点获取全局元数据(包含用户的数据空间信息,例如空间名称、位置等),根据空间局部性缓存全局元数据,根据远程访问的反馈信息动态更新全局元数据缓存;2)对应用的IO负载特征进行动态识别,自适应选择合理的数据缓存策略;3)设置两层级缓存,基于空间局部性缓存远程文件数据,一级缓存不压缩数据,二级缓存压缩数据,一级缓存换出数据时,若CPU的利用率低于阈值,则对数据进行压缩并写入二级缓存;否则不写入二级缓存;4)计算缓存中数据被访问的平均次数M,若缓存中被替换出的数据访问次数大于M,则将该数据写入到本地持久存储中形成数据副本;5)访问缓存中的文件数据时,根据文件的最后更新时间判断缓存数据是否新鲜,若不新鲜则需要远程访问数据并缓存数据,缓存命中时,需要动态调整缓存数据的缓存位置;6)基于应用的IO负载特征对二级缓存的大小进行动态调整;7)更新缓存数据时,将缓存的数据块或者缓存的文件平均分割成多个小数据块,为每个小数据块计算指纹,将指纹信息发送到远程存储集群,只访问指纹不一致的数据块;8)远程访问文件时,基于用户的访问特征及应用的负载特征挖掘出相关联的文件,然后将这些相关联文件的索引节点聚合成一个大索引节点从服务端返回到客户端并进行缓存。其中,步骤1)包括全局元数据的缓存和更新的步骤:步骤(1.1)客户端向广域文件系统管理节点请求全局元数据;步骤(1.2)客户端判断本地是否缓存有全局元数据;步骤(1.3)若本地未缓存全局元数据,则客户端向广域文件系统管理节点请求全局元数据信息,并将返回的全局元数据进行缓存,若缓存大小达到设定的阈值则采用LRU算法替换缓存;步骤(1.4)若本地缓存全局元数据,则客户端访问缓存的全局元数据获取数据空间所在的位置,并向远程的存储集群发送文件数据请求;步骤(1.5)判断本文档来自技高网
...

【技术保护点】
1.一种基于客户端高效缓存的远程文件数据访问性能优化方法,其特征在于,在客户端基于局部性原理对全局元数据和文件数据进行缓存;采用基于数据块和文件为粒度的混合缓存策略对文件数据进行缓存;根据计算资源的使用状态对缓存进行自适应压缩;对频繁访问的数据在本地生成副本文件减少远程访问;基于应用的IO负载特征对缓存的大小进行动态调整;对过期的缓存数据进行细粒度更新;基于用户的访问特征及应用的负载特征挖掘出相关联文件,并将相关联文件的索引节点聚合成一个大索引节点在客户端并进行缓存。

【技术特征摘要】
1.一种基于客户端高效缓存的远程文件数据访问性能优化方法,其特征在于,在客户端基于局部性原理对全局元数据和文件数据进行缓存;采用基于数据块和文件为粒度的混合缓存策略对文件数据进行缓存;根据计算资源的使用状态对缓存进行自适应压缩;对频繁访问的数据在本地生成副本文件减少远程访问;基于应用的IO负载特征对缓存的大小进行动态调整;对过期的缓存数据进行细粒度更新;基于用户的访问特征及应用的负载特征挖掘出相关联文件,并将相关联文件的索引节点聚合成一个大索引节点在客户端并进行缓存。2.根据权利要求1所述的方法,其特征在于,包括以下步骤:1)在访问文件数据时,客户端首先访问广域文件系统的管理节点获取全局元数据,包含用户的数据空间信息,例如空间名称、位置,根据空间局部性缓存全局元数据,根据远程访问的反馈信息动态更新全局元数据缓存;2)对应用的IO负载特征进行动态识别,自适应选择合理的数据缓存策略;3)设置两层级缓存,基于空间局部性缓存远程文件数据,一级缓存不压缩数据,二级缓存压缩数据,一级缓存换出数据时,若CPU的利用率低于阈值,则对数据进行压缩并写入二级缓存;否则不写入二级缓存;4)计算缓存中数据被访问的平均次数M,若缓存中被替换出的数据访问次数大于M,则将该数据写入到本地持久存储中形成数据副本;5)访问缓存中的文件数据时,根据文件的最后更新时间判断缓存数据是否新鲜,若不新鲜则需要远程访问数据并缓存数据,缓存命中时,需要动态调整缓存数据的缓存位置;6)基于应用的IO负载特征对二级缓存的大小进行动态调整;7)更新缓存数据时,将缓存的数据块或者缓存的文件平均分割成多个小数据块,为每个小数据块计算指纹,将指纹信息发送到远程存储集群,只访问指纹不一致的数据块;8)远程访问文件时,基于用户的访问特征及应用的负载特征挖掘出相关联的文件,然后将这些相关联文件的索引节点聚合成一个大索引节点从服务端返回到客户端并进行缓存。3.根据权利要求2所述的方法,其特征在于,所述步骤1)包括全局元数据的缓存和更新的步骤:步骤(1.1)客户端向请求全局元数据;步骤(1.2)客户端判断本地是否缓存有全局元数据;步骤(1.3)若本地未缓存全局元数据,则客户端向广域文件系统管理节点请求全局元数据信息,并将返回的全局元数据进行缓存,若缓存大小达到设定的阈值则采用LRU算法替换缓存;步骤(1.4)若本地缓存全局元数据,则客户端访问缓存的全局元数据获取数据空间所在的位置,并向远程的存储集群发送文件数据请求;步骤(1.5)判断远程的存储集群上是否存在相应的数据空间;步骤(1.6)若远程的存储集群上存在相应的数据空间,则访问相应的文件获取数据并返回到客户端;步骤(1.7)若远程的存储集群上不存在相应的数据空间,说明缓存已经过期,则向广域文件系统管理节点请求全局元数据信息,访问远程存储集群获取文件数据并更新全局元数据缓存。4.根据权利要求2所述的方法,其特征在于,所述步骤2)包括以下步骤:步骤(2.1)在系统启动时,客户端默认采用基于数据块粒度的数据缓存策略对文件数据进行缓存;步骤(2.2)在广域文件系统客户端设置变量A以统计文件为粒度被访问的次数,当客户端已文件的粒度被访问一个文件时,变量A自增1;步骤(2.3)当A超过设定的阈值时,则客户端采用基于数据块和文件为粒度的混合缓存策略;步骤(2.4)当在设定的时间内,文件为粒度被访问的次数为0,则A自减1;步骤(2.5)当A小于设定的阈值时,则客户端采用基于数据块为粒度的缓存策略。5.根据权利要求2所述的方法,其特征在于,所述步骤3)包括以下步骤:步骤(3.1)建立一级缓存对最近被频繁访问的文件数据进行缓存,一级不对数据进行压缩以实现快速存取,若缓存大小达到设定的阈值则采用LRU算法替换缓存;步骤(3.2)建立二级缓存,当CPU的利用率低于阈值时,对一级缓存中替换出的数据进行压缩并缓存,二级缓存容量大且对数据进...

【专利技术属性】
技术研发人员:肖利民韦冰秦广军霍志胜宋尧周汉杰
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:北京,11

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

1