CN110188080A - 基于客户端高效缓存的远程文件数据访问性能优化方法 - Google Patents
基于客户端高效缓存的远程文件数据访问性能优化方法 Download PDFInfo
- Publication number
- CN110188080A CN110188080A CN201910412033.XA CN201910412033A CN110188080A CN 110188080 A CN110188080 A CN 110188080A CN 201910412033 A CN201910412033 A CN 201910412033A CN 110188080 A CN110188080 A CN 110188080A
- Authority
- CN
- China
- Prior art keywords
- data
- file
- cache
- client
- caching
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提出一种基于客户端高效缓存的远程文件数据访问性能优化方法,在客户端基于局部性原理对全局元数据和文件数据进行缓存;采用基于数据块和文件为粒度的混合缓存策略对文件数据进行缓存;根据计算资源的使用状态对缓存进行自适应压缩;对频繁访问的数据在本地生成副本文件;基于应用的IO负载特征对缓存的大小进行动态调整;对过期的缓存数据进行细粒度更新;基于用户的访问特征及应用的负载特征挖掘出相关联文件,并将相关联文件的索引节点聚合成一个大索引节点在客户端并进行缓存。该方法可以显著提升远程文件数据访问性能。
Description
技术领域:
本发明公开了一种基于客户端高效缓存的远程文件数据访问性能优化方法,涉及广域高性能计算面临的挑战,属于计算机技术领域。
背景技术:
在广域高性能计算环境中,访问远程文件数据时需通过客户端向远程服务器发送数据请求并进行访问。客户端缓存是远程文件数据访问中常见的用于提升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.6)若远程的存储集群上存在相应的数据空间,则访问相应的文件获取数据并返回到客户端;
步骤(1.7)若远程的存储集群上不存在相应的数据空间,说明缓存已经过期,则向广域文件系统管理节点请求全局元数据信息,访问远程存储集群获取文件数据并更新全局元数据缓存。
其中,步骤2)包括以下步骤:
步骤(2.1)在系统启动时,客户端默认采用基于数据块粒度的数据缓存策略对文件数据进行缓存;
步骤(2.2)在广域文件系统客户端设置变量A以文件粒度来统计访问频率,当客户端被访问一个文件时,变量A自增1;
步骤(2.3)当A超过设定的阈值时,则客户端采用基于数据块和文件为粒度的混合缓存策略;
步骤(2.4)当在设定的时间内,文件为粒度被访问的次数为0,则A自减1;
步骤(2.5)当A小于设定的阈值时,则客户端采用基于数据块为粒度的缓存策略。
其中,步骤3)包括以下步骤:
步骤(3.1)建立一级缓存对最近被频繁访问的文件数据进行缓存,一级不对数据进行压缩以实现快速存取,若缓存大小达到设定的阈值则采用LRU算法替换缓存;
步骤(3.2)建立二级缓存,当CPU的利用率低于阈值时,对一级缓存中替换出的数据进行压缩并缓存,二级缓存容量大且对数据进行压缩能够缓存大量数据。
其中,步骤4)包括以下步骤:
步骤(4.1)记录缓存中每个文件数据的命中次数,为数据替换出缓存时是否需要建立本地副本提供依据;
步骤(4.2)当数据从一级缓存中换出时,若CPU利用率高于阈值,则计算缓存中数据被访问的平均次数M,若缓存中被替换出的数据访问次数大于M,则将该数据写入到本地持久存储中形成数据副本;否则直接删除换出的数据;
步骤(4.3)当数据从二级缓存中换出时,采用步骤(4.2)中的方式来判定是否需要建立本地副本。
其中,步骤5)包括以下步骤:
步骤(5.1)访问文件数据时,若缓存命中,则需判断命中数据的新鲜度,若缓存数据的最后更新时间和远程文件的最后更新时间相一致,则直接返回缓存的数据,若命中的数据位于二级缓存则将其移动到一级缓存;若最后更新时间不一致,则到远程存储集群访问文件数据并将文件数据缓存到客户端的一级缓存;
步骤(5.2)访问缓存中的文件数据时,若缓存未命中,则到远程存储集群访问文件数据并将文件数据缓存到客户端的一级缓存;
步骤(5.3)为减少访问缓存中的文件数据时验证缓存数据新鲜度的开销,在客户端开启守护进程周期性地向远程存储集群发送文件最后更新时间请求,判断缓存数据是否过期,若守护进程验证一个缓存数据未过期,在一个周期内该缓存数据被访问,则直接返回缓存数据而不需要到远程验证数据的新鲜度;若守护进程验证一个缓存数据已经过期,则需要到远程存储集群访问最新的数据并进行缓存。
其中,步骤6)包括以下步骤:
步骤(6.1)周期性对应用使用的内存进行统计,计算内存的利用率为二级缓存大小的调整提供依据;
步骤(6.2)为客户端的内存利用率设定多个阈值,对这些阈值进行升序排序,为每个阈值设定相应的二级缓存容量大小,当内存利用率到达某一个阈值时,则设置二级缓存的容量为相应的大小,采用这一方式使得二级缓存中的数据有更多的缓冲时间写入到本地持久存储中形成副本。
其中,步骤7)包括以下步骤:
步骤(7.1)对缓存的数据块或者文件进行分块,得到k块数据块,为每一块数据块计算指纹;
步骤(7.2)客户端聚合多个指纹信息并向服务端进行传输,多个指纹信息聚合能够减少网络传输次数,提升网络带宽利用率,节省网络带宽;
步骤(7.3)服务端接收客户端发送的指纹信息,读取相应的数据块并计算出指纹,若计算出的指纹与客户端传递过来的指纹不匹配则需要向客户端返回该数据块,为了减少网络传输次数提升网络带宽利用率服务端对多个传输的数据块进行聚合传输;
步骤(7.4)客户端接收服务端返回的数据块并更新缓存。
其中,步骤8)包括以下步骤:
步骤(8.1)访问一个文件的索引节点时,挖掘出与当前文件相关联的文件,在服务端聚合多个相关联文件的索引节点形成一个大的索引节点并返回到客户端。由于访问多个索引节点所需时间要远大于访问一个聚合多索引节点形成的大索引节点所需的时间,因此聚合多个索引节点能够减少远程访问文件索引节点次数,同时相关联的有很多重复的属性信息(例如types,permissions,timestamps),因此能够减少网络传输数据量;
步骤(8.2)基于用户的访问特征对文件索引节点进行聚合,在服务端对一个目录下所有文件的索引节点进行聚合形成一个大的索引节点,这一聚合方法能够捕捉到用户加入的自然组织;
步骤(8.3)基于应用的访问特征对文件索引节点进行聚合,根据文件的访问序列分析文件之间的关联关系,如果一个访问序列出现的次数大于设定的阈值则该序列中文件的索引节点需要被聚合;
步骤(8.4)客户端接收服务端返回的聚合索引节点并进行缓存,多个索引节点被视为一个整体进行缓存替换可避免LRU队列中相关联文件的索引节点被其他文件的索引节点隔离。
本发明的优点包括:
本发明所提出的基于客户端高效缓存的远程文件数据访问性能优化方法,与现有技术相比,其主要优点是:
所提出的全局元数据和数据的客户端缓存方法,减少了全局元数据和数据的远程实际传输量,避免全局元数据成为热点并提升远程数据访问性能;能够根据应用访问特征动态调整缓存策略,基于数据块和文件的混合缓存策略有效提升了小文件的远程访问性能,能够有效提升缓存利用率并避免与应用竞争计算资源;基于应用的IO负载特征对缓存的大小进行动态调整能够充分提升缓存利用率;细粒度更新过期缓存文件数据,减少了远程数据访问量;远程访问文件时,基于用户的访问特征及应用的负载特征挖掘出相关联的文件,聚合相关联文件的索引节点并在客户端缓存,减少了远程IO的次数,提升了远程文件数据的访问性能。
附图说明:
图1为基于客户端高效缓存的远程文件数据访问性能优化方法实施流程图。
图2为广域文件系统架构图。
图3为全局元数据在客户端的缓存流程图。
图4为文件数据在客户端的缓存流程图。
具体实施方式:
以下结合附图对本发明作进一步详细的说明。
如图1所示,是本发明的实施流程图。基于客户端高效缓存的远程文件数据访问性能优化方法,包括以下步骤:
1)在访问文件数据时,客户端首先访问广域文件系统的管理节点获取全局元数据(包含用户的数据空间信息,例如空间名称、位置等),根据空间局部性缓存全局元数据,根据远程访问的反馈信息动态更新全局元数据缓存;
2)对应用的IO负载特征进行动态识别,自适应选择合理的数据缓存策略;
3)设置两层级缓存,基于空间局部性缓存远程文件数据,一级缓存不压缩数据,二级缓存压缩数据,一级缓存换出数据时,若CPU的利用率低于阈值,则对数据进行压缩并写入二级缓存;否则不写入二级缓存;
4)计算缓存中数据被访问的平均次数M,若缓存中被替换出的数据访问次数大于M,则将该数据写入到本地持久存储中形成数据副本;
5)访问缓存中的文件数据时,根据文件的最后更新时间判断缓存数据是否新鲜,若不新鲜则需要远程访问数据并缓存数据,缓存命中时,需要动态调整缓存数据的缓存位置;
6)基于应用的IO负载特征对二级缓存的大小进行动态调整;
7)更新缓存数据时,将缓存的数据块或者缓存的文件平均分割成多个小数据块,为每个小数据块计算指纹,将指纹信息发送到远程存储集群,只访问指纹不一致的数据块;
8)远程访问文件时,基于用户的访问特征及应用的负载特征挖掘出相关联的文件,然后将这些相关联文件的索引节点聚合成一个大索引节点从服务端返回到客户端并进行缓存。
广域文件系统架构如图2所示,客户机节点通过客户端访问远程文件,客户端首先通过管理节点中的空间管理模块获取全局元数据信息(包含用户的数据空间信息,例如空间名称、位置等),客户端将本地文件路径和数据空间信息拼接成实际的物理路径并发送到文件所在数据中心的文件访问服务节点利用IO代理模块接收文件路径并调用存储集群客户端模块访问文件,并将文件数据返回。
全局元数据在客户端的缓存流程如图3所示,客户端在第一次请求全局元数据时,首先检索缓存是否包含所需的数据,由于缓存中未检索到相应数据,因此客户端访问管理节点获取全局元数据;其次根据获取到的全局元数据信息访问相应的数据空间同时缓存全局元数据;最后将全局元数据信息缓存在客户端的内存中,当缓存空间不够时,利用LRU算法替换出缓存数据。客户端再次请求全局元数据时,首先检索缓存数据,并从缓存中获取所需数据;其次通过检索缓存获取所需的数据,此时需要判断相应的数据空间是否存在,客户端根据缓存获取到的全局元数据信息直接访问数据空间,若访问成功,则说明缓存正确,不需要更新缓存,若未成功查找到相应数据空间,则说明缓存失效,客户端需要访问管理节点获取全局元数据;最后根据获取到的全局元数据信息访问相应的数据空间同时更新缓存的全局元数据。在大规模文件并发访问过程中对全局元数据的访问是持续性的,且全局元数据的更新频率较低,因此能够获得较高的缓存命中率,从而避免频繁访问管理节点获取全局元数据,提升全局元数据访问性能。
文件数据在客户端的缓存流程如图4所示,在客户端设置本地缓存用于缓存远程文件数据,减少网络传输开销,设置两种不同的缓存策略:基于数据块粒度的数据缓存策略、基于数据块和文件为粒度的混合缓存策略,对应用的IO负载特征进行动态识别,动态选择合理的数据缓存策略。在初始阶段,客户端采用基于数据块粒度的数据缓存策略对数据进行缓存,然后在客户端设置变量A以统计文件为粒度被访问的次数,当客户端已文件的粒度被访问一个文件时,变量A自增1,当A超过设定的阈值时,则客户端采用基于数据块和文件为粒度的混合缓存策略。
为客户端设置两层级的缓存,一级缓存不对数据进行压缩,缓存最近被频繁访问的数据;二级缓存对数据进行压缩,缓存一级缓存中替换出来的数据。对缓存中所有数据的访问次数进行统计,对本地缓存的大小设定阈值,当缓存大小达到阈值时,利用LRU算法替换缓存,一级缓存换出数据时,若CPU的利用率低于阈值,则对数据进行压缩并写入二级缓存;否则计算出缓存中数据被访问的平均次数M。若被替换出的缓存数据访问次数大于M,则将该数据写入到本地持久存储中形成数据副本;否则直接删除替换出的数据。二级缓存换出数据时执行同样的操作生成数据副本或删除替换的数据。
客户端访问文件数据时,从一级缓存开始查找,若一级缓存命中,则返回数据;否则到二级缓存中查找。若二级缓存命中,则对数据进行解压,访问数据并迁移到一级缓存中;否则到本地持久存储中查找。若本地持久存储命中,则访问数据,并更新一级缓存,如果数据已经被压缩则首先对数据进行解压;否则到远程存储集群中访问数据并写入到一级缓存。
步骤5)包括以下步骤:
步骤(5.1)访问文件数据时,若缓存命中,则需判断命中数据的新鲜度,若缓存数据的最后更新时间和远程文件的最后更新时间相一致,则直接返回缓存的数据,若命中的数据位于二级缓存则将其移动到一级缓存;若最后更新时间不一致,则到远程存储集群访问文件数据并将文件数据缓存到客户端的一级缓存;
步骤(5.2)访问缓存中的文件数据时,若缓存未命中,则到远程存储集群访问文件数据并将文件数据缓存到客户端的一级缓存;
步骤(5.3)为减少访问缓存中的文件数据时验证缓存数据新鲜度的开销,在客户端开启守护进程周期性地向远程存储集群发送文件最后更新时间请求,判断缓存数据是否过期,若守护进程验证一个缓存数据未过期,在一个周期内该缓存数据被访问,则直接返回缓存数据而不需要到远程验证数据的新鲜度;若守护进程验证一个缓存数据已经过期,则需要到远程存储集群访问最新的数据并进行缓存。
步骤6)包括以下步骤:
步骤(6.1)周期性对应用使用的内存进行统计,计算内存的利用率为二级缓存大小的调整提供依据;
步骤(6.2)为客户端的内存利用率设定多个阈值,对这些阈值进行升序排序,为每个阈值设定相应的二级缓存容量大小,当内存利用率到达某一个阈值时,则设置二级缓存的容量为相应的大小,采用这一方式使得二级缓存中的数据有更多的缓冲时间写入到本地持久存储中形成副本。
步骤7)包括以下步骤:
步骤(7.1)对缓存的数据块或者文件进行分块,得到k块数据块,为每一块数据块计算指纹;
步骤(7.2)客户端聚合多个指纹信息并向服务端进行传输,多个指纹信息聚合能够减少网络传输次数,提升网络带宽利用率,节省网络带宽;
步骤(7.3)服务端接收客户端发送的指纹信息,读取相应的数据块并计算出指纹,若计算出的指纹与客户端传递过来的指纹不匹配则需要向客户端返回该数据块,为了减少网络传输次数提升网络带宽利用率服务端对多个传输的数据块进行聚合传输;
步骤(7.4)客户端接收服务端返回的数据块并更新缓存。
步骤8)包括以下步骤:
步骤(8.1)访问一个文件的索引节点时,挖掘出与当前文件相关联的文件,在服务端聚合多个相关联文件的索引节点形成一个大的索引节点并返回到客户端。由于访问多个索引节点所需时间要远大于访问一个聚合多索引节点形成的大索引节点所需的时间,因此聚合多个索引节点能够减少远程访问文件索引节点次数,同时相关联的有很多重复的属性信息(例如types,permissions,timestamps),因此能够减少网络传输数据量;
步骤(8.2)基于用户的访问特征对文件索引节点进行聚合,在服务端对一个目录下所有文件的索引节点进行聚合形成一个大的索引节点,这一聚合方法能够捕捉到用户加入的自然组织;
步骤(8.3)基于应用的访问特征对文件索引节点进行聚合,根据文件的访问序列分析文件之间的关联关系,如果一个访问序列出现的次数大于设定的阈值则该序列中文件的索引节点需要被聚合;
步骤(8.4)客户端接收服务端返回的聚合索引节点并进行缓存,多个索引节点被视为一个整体进行缓存替换可避免LRU队列中相关联文件的索引节点被其他文件的索引节点隔离。
最后所应说明的是:本发明还可有其它多种应用场景,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明的保护范围。
Claims (10)
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的利用率低于阈值时,对一级缓存中替换出的数据进行压缩并缓存,二级缓存容量大且对数据进行压缩能够缓存大量数据。
6.根据权利要求2所述的方法,其特征在于,所述步骤4)包括以下步骤:
步骤(4.1)记录缓存中每个文件数据的命中次数,为数据替换出缓存时是否需要建立本地副本提供依据;
步骤(4.2)当数据从一级缓存中换出时,若CPU利用率高于阈值,则计算缓存中数据被访问的平均次数M,若缓存中被替换出的数据访问次数大于M,则将该数据写入到本地持久存储中形成数据副本;否则直接删除换出的数据;
步骤(4.3)当数据从二级缓存中换出时,采用步骤(4.2)中的方式来判定是否需要建立本地副本。
7.根据权利要求2所述的方法,其特征在于,所述步骤5)包括以下步骤:
步骤(5.1)访问文件数据时,若缓存命中,则需判断命中数据的新鲜度,若缓存数据的最后更新时间和远程文件的最后更新时间相一致,则直接返回缓存的数据,若命中的数据位于二级缓存则将其移动到一级缓存;若最后更新时间不一致,则到远程存储集群访问文件数据并将文件数据缓存到客户端的一级缓存;
步骤(5.2)访问缓存中的文件数据时,若缓存未命中,则到远程存储集群访问文件数据并将文件数据缓存到客户端的一级缓存;
步骤(5.3)为减少访问缓存中的文件数据时验证缓存数据新鲜度的开销,在客户端开启守护进程周期性地向远程存储集群发送文件最后更新时间请求,判断缓存数据是否过期,若守护进程验证一个缓存数据未过期,在一个周期内该缓存数据被访问,则直接返回缓存数据而不需要到远程验证数据的新鲜度;若守护进程验证一个缓存数据已经过期,则需要到远程存储集群访问最新的数据并进行缓存。
8.根据权利要求2所述的方法,其特征在于,所述步骤6)包括以下步骤:
步骤(6.1)周期性对应用使用的内存进行统计,计算内存的利用率为二级缓存大小的调整提供依据;
步骤(6.2)为客户端的内存利用率设定多个阈值,对这些阈值进行升序排序,为每个阈值设定相应的二级缓存容量大小,当内存利用率到达某一个阈值时,则设置二级缓存的容量为相应的大小,采用这一方式使得二级缓存中的数据有更多的缓冲时间写入到本地持久存储中形成副本。
9.根据权利要求2所述的方法,其特征在于,所述步骤7)包括以下步骤:
步骤(7.1)对缓存的数据块或者文件进行分块,得到k块数据块,为每一块数据块计算指纹;
步骤(7.2)客户端聚合多个指纹信息并向服务端进行传输,多个指纹信息聚合能够减少网络传输次数,提升网络带宽利用率,节省网络带宽;
步骤(7.3)服务端接收客户端发送的指纹信息,读取相应的数据块并计算出指纹,若计算出的指纹与客户端传递过来的指纹不匹配则需要向客户端返回该数据块,为了减少网络传输次数提升网络带宽利用率服务端对多个传输的数据块进行聚合传输;
步骤(7.4)客户端接收服务端返回的数据块并更新缓存。
10.根据权利要求2所述的方法,其特征在于,所述步骤8)包括以下步骤:
步骤(8.1)访问一个文件的索引节点时,挖掘出与当前文件相关联的文件,在服务端聚合多个相关联文件的索引节点形成一个大的索引节点并返回到客户端。由于访问多个索引节点所需时间要远大于访问一个聚合多索引节点形成的大索引节点所需的时间,因此聚合多个索引节点能够减少远程访问文件索引节点次数,同时相关联的有很多重复的属性信息(例如types,permissions,timestamps),因此能够减少网络传输数据量;
步骤(8.2)基于用户的访问特征对文件索引节点进行聚合,在服务端对一个目录下所有文件的索引节点进行聚合形成一个大的索引节点,这一聚合方法能够捕捉到用户加入的自然组织;
步骤(8.3)基于应用的访问特征对文件索引节点进行聚合,根据文件的访问序列分析文件之间的关联关系,如果一个访问序列出现的次数大于设定的阈值则该序列中文件的索引节点需要被聚合;
步骤(8.4)客户端接收服务端返回的聚合索引节点并进行缓存,多个索引节点被视为一个整体进行缓存替换可避免LRU队列中相关联文件的索引节点被其他文件的索引节点隔离。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910412033.XA CN110188080B (zh) | 2019-05-17 | 2019-05-17 | 基于客户端高效缓存的远程文件数据访问性能优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910412033.XA CN110188080B (zh) | 2019-05-17 | 2019-05-17 | 基于客户端高效缓存的远程文件数据访问性能优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110188080A true CN110188080A (zh) | 2019-08-30 |
CN110188080B CN110188080B (zh) | 2021-12-17 |
Family
ID=67716646
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910412033.XA Active CN110188080B (zh) | 2019-05-17 | 2019-05-17 | 基于客户端高效缓存的远程文件数据访问性能优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110188080B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110716814A (zh) * | 2019-09-17 | 2020-01-21 | 武汉中海庭数据技术有限公司 | 一种进程间大数据量通讯的性能优化方法和装置 |
CN111352967A (zh) * | 2020-02-27 | 2020-06-30 | 携程旅游网络技术(上海)有限公司 | 滑动窗口算法的频次控制方法、系统、设备及介质 |
CN111782612A (zh) * | 2020-05-14 | 2020-10-16 | 北京航空航天大学 | 跨域虚拟数据空间中文件数据边缘缓存方法 |
CN111858612A (zh) * | 2020-07-28 | 2020-10-30 | 平安科技(深圳)有限公司 | 基于图数据库的数据加速访问方法、装置及存储介质 |
CN112015674A (zh) * | 2020-08-27 | 2020-12-01 | 平安科技(深圳)有限公司 | 基于多层级的缓存资源访问方法、装置和计算机设备 |
CN112286888A (zh) * | 2020-09-22 | 2021-01-29 | 北京航空航天大学 | 面向广域网的分布式文件系统副本因果一致的访问方法 |
CN112445794A (zh) * | 2019-09-05 | 2021-03-05 | 南京工程学院 | 一种大数据系统的缓存方法 |
US10990402B1 (en) | 2019-12-18 | 2021-04-27 | Red Hat, Inc. | Adaptive consumer buffer |
CN113590566A (zh) * | 2021-06-23 | 2021-11-02 | 河海大学 | 基于堆结构的SequenceFile存储优化方法、装置、设备及存储介质 |
CN114546258A (zh) * | 2021-11-30 | 2022-05-27 | 中国科学院深圳先进技术研究院 | 一种人工智能模型传输方法、系统、终端以及存储介质 |
CN117688593A (zh) * | 2024-02-02 | 2024-03-12 | 新汽有限公司 | 一种网络大数据的管理系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103106213A (zh) * | 2011-11-14 | 2013-05-15 | 中国科学院声学研究所 | 一种基于文件和数据块两级粒度的副本替换方法及系统 |
CN103716413A (zh) * | 2014-01-13 | 2014-04-09 | 浪潮(北京)电子信息产业有限公司 | 一种分布式文件系统中海量小文件io操作传输提速方法 |
US8990615B1 (en) * | 2012-09-28 | 2015-03-24 | Emc Corporation | System and method for cache management |
CN104731921A (zh) * | 2015-03-26 | 2015-06-24 | 江苏物联网研究发展中心 | Hadoop分布式文件系统针对日志型小文件的存储和处理方法 |
CN106021381A (zh) * | 2016-05-11 | 2016-10-12 | 北京搜狐新媒体信息技术有限公司 | 一种云存储服务系统的数据访问/存储方法及装置 |
-
2019
- 2019-05-17 CN CN201910412033.XA patent/CN110188080B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103106213A (zh) * | 2011-11-14 | 2013-05-15 | 中国科学院声学研究所 | 一种基于文件和数据块两级粒度的副本替换方法及系统 |
US8990615B1 (en) * | 2012-09-28 | 2015-03-24 | Emc Corporation | System and method for cache management |
CN103716413A (zh) * | 2014-01-13 | 2014-04-09 | 浪潮(北京)电子信息产业有限公司 | 一种分布式文件系统中海量小文件io操作传输提速方法 |
CN104731921A (zh) * | 2015-03-26 | 2015-06-24 | 江苏物联网研究发展中心 | Hadoop分布式文件系统针对日志型小文件的存储和处理方法 |
CN106021381A (zh) * | 2016-05-11 | 2016-10-12 | 北京搜狐新媒体信息技术有限公司 | 一种云存储服务系统的数据访问/存储方法及装置 |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112445794B (zh) * | 2019-09-05 | 2023-08-25 | 南京工程学院 | 一种大数据系统的缓存方法 |
CN112445794A (zh) * | 2019-09-05 | 2021-03-05 | 南京工程学院 | 一种大数据系统的缓存方法 |
CN110716814B (zh) * | 2019-09-17 | 2022-05-13 | 武汉中海庭数据技术有限公司 | 一种进程间大数据量通讯的性能优化方法和装置 |
CN110716814A (zh) * | 2019-09-17 | 2020-01-21 | 武汉中海庭数据技术有限公司 | 一种进程间大数据量通讯的性能优化方法和装置 |
US10990402B1 (en) | 2019-12-18 | 2021-04-27 | Red Hat, Inc. | Adaptive consumer buffer |
CN111352967A (zh) * | 2020-02-27 | 2020-06-30 | 携程旅游网络技术(上海)有限公司 | 滑动窗口算法的频次控制方法、系统、设备及介质 |
CN111352967B (zh) * | 2020-02-27 | 2024-02-06 | 携程旅游网络技术(上海)有限公司 | 滑动窗口算法的频次控制方法、系统、设备及介质 |
CN111782612B (zh) * | 2020-05-14 | 2022-07-26 | 北京航空航天大学 | 跨域虚拟数据空间中文件数据边缘缓存方法 |
CN111782612A (zh) * | 2020-05-14 | 2020-10-16 | 北京航空航天大学 | 跨域虚拟数据空间中文件数据边缘缓存方法 |
CN111858612A (zh) * | 2020-07-28 | 2020-10-30 | 平安科技(深圳)有限公司 | 基于图数据库的数据加速访问方法、装置及存储介质 |
CN111858612B (zh) * | 2020-07-28 | 2023-04-18 | 平安科技(深圳)有限公司 | 基于图数据库的数据加速访问方法、装置及存储介质 |
CN112015674A (zh) * | 2020-08-27 | 2020-12-01 | 平安科技(深圳)有限公司 | 基于多层级的缓存资源访问方法、装置和计算机设备 |
CN112015674B (zh) * | 2020-08-27 | 2023-05-30 | 平安科技(深圳)有限公司 | 基于多层级的缓存资源访问方法、装置和计算机设备 |
CN112286888B (zh) * | 2020-09-22 | 2022-06-14 | 北京航空航天大学 | 面向广域网的分布式文件系统副本因果一致的访问方法 |
CN112286888A (zh) * | 2020-09-22 | 2021-01-29 | 北京航空航天大学 | 面向广域网的分布式文件系统副本因果一致的访问方法 |
CN113590566A (zh) * | 2021-06-23 | 2021-11-02 | 河海大学 | 基于堆结构的SequenceFile存储优化方法、装置、设备及存储介质 |
CN113590566B (zh) * | 2021-06-23 | 2023-10-27 | 河海大学 | 基于堆结构的SequenceFile存储优化方法、装置、设备及存储介质 |
CN114546258A (zh) * | 2021-11-30 | 2022-05-27 | 中国科学院深圳先进技术研究院 | 一种人工智能模型传输方法、系统、终端以及存储介质 |
CN114546258B (zh) * | 2021-11-30 | 2023-08-15 | 中国科学院深圳先进技术研究院 | 一种人工智能模型传输方法、系统、终端以及存储介质 |
CN117688593A (zh) * | 2024-02-02 | 2024-03-12 | 新汽有限公司 | 一种网络大数据的管理系统 |
CN117688593B (zh) * | 2024-02-02 | 2024-04-30 | 新汽有限公司 | 一种网络大数据的管理系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110188080B (zh) | 2021-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110188080A (zh) | 基于客户端高效缓存的远程文件数据访问性能优化方法 | |
CN104899156B (zh) | 一种面向大规模社交网络的图数据存储及查询方法 | |
CN105872040B (zh) | 一种利用网关节点缓存优化分布式块存储写性能的方法 | |
CN102521406B (zh) | 海量结构化数据复杂查询任务的分布式查询方法和系统 | |
CN102523285B (zh) | 一种基于对象分布式文件系统的存储缓存方法 | |
CN102521405B (zh) | 支持高速加载的海量结构化数据存储、查询方法和系统 | |
CN103366016B (zh) | 基于hdfs的电子文件集中存储及优化方法 | |
CN102819586B (zh) | 一种基于高速缓存的url分类方法和设备 | |
Yoon et al. | Mutant: Balancing storage cost and latency in lsm-tree data stores | |
CN107368608A (zh) | 基于arc替换算法的hdfs小文件缓存管理方法 | |
CN111782612B (zh) | 跨域虚拟数据空间中文件数据边缘缓存方法 | |
CN106155934B (zh) | 一种云环境下基于重复数据的缓存方法 | |
CN108462736B (zh) | 一种面向QoS的云存储数据副本存储方法 | |
CN103198361B (zh) | 基于多种优化机制的xacml策略评估引擎系统 | |
CN106354805A (zh) | 一种分布式存储系统NoSQL搜索缓存的优化方法和系统 | |
CN109446222A (zh) | 一种双缓存的数据存储方法、装置及存储介质 | |
CN107480072A (zh) | 基于关联模式的透明计算服务端缓存优化方法及系统 | |
CN111159176A (zh) | 一种海量流数据的存储和读取的方法和系统 | |
CN107066505A (zh) | 一种性能优化的小文件存储访问的系统及方法 | |
CN114817195A (zh) | 一种分布式存储缓存管理的方法、系统、存储介质及设备 | |
Yang et al. | Tombolo: Performance enhancements for cloud storage gateways | |
CN116204130A (zh) | 一种键值存储系统和键值存储系统的管理方法 | |
CN117539915B (zh) | 一种数据处理方法及相关装置 | |
CN109844723B (zh) | 使用基于服务的统计信息进行主控建立的方法和系统 | |
CN109582233A (zh) | 一种数据的缓存方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |