本申请公开了一种文件内、文件间聚合方法及系统,应用于分布式文件系统中的用户终端,包括:接收并存储写入的数据至终端缓存进行缓存,直至写入完成,在终端缓存聚合全部写入的数据,在终端缓存中得到目标文件;下刷目标文件至存储服务器;本申请在目标文件写入期间不会触发I/O下刷行为,而是利用终端缓存,将写入目标文件的数据在终端缓存中缓存,在整个目标文件的数据写入完之前,不触发目标文件下刷至存储服务器的行为,避免未写完文件却已经下刷,导致写入方式变更为修改写造成,写入效率降低的问题,实现了文件内部的聚合,将整个文件的所有数据聚合为一个文件再进行下刷操作,提高文件写入效率。
A method and system of aggregation within and between files
【技术实现步骤摘要】
一种文件内、文件间聚合方法及系统
本专利技术涉及分布式文件存储领域,特别涉及一种文件内、文件间聚合方法及系统。
技术介绍
对于分布式文件系统,目前小文件聚合按照固定对象(一般是4M)大小先进行缓存聚合,但是在并发场景下,客户端并发写会造成很多文件未写完,就下刷的现象,导致文件下刷后,小文件与大文件的数据映射已经形成,后续再向小文件写入数据,将由写入形式变为修改写形式,而修改写本身不适合聚合场景,处理逻辑复杂,写入速度慢,造成整体写入效率降低。为此,需要一种更为高效的文件聚合方法。
技术实现思路
有鉴于此,本专利技术的目的在于提供一种文件内、文件间聚合方法及系统。其具体方案如下:一种文件内聚合方法,应用于分布式文件系统中的用户终端,包括:接收并存储写入的数据至终端缓存进行缓存,直至写入完成,在所述终端缓存聚合全部写入的数据,在所述终端缓存中得到目标文件;下刷所述目标文件至存储服务器。可选的,所述接收并存储写入的数据至终端缓存进行缓存,直至写入完成,在所述终端缓存聚合全部写入的数据,在所述终端缓存中得到目标文件的过程,包括:接收并存储写入的数据至AggMgr聚合处理模块进行缓存,直至接收到写入完成指令,在所述AggMgr聚合处理模块中聚合全部写入的数据得到所述目标文件。可选的,所述接收并存储写入的数据至AggMgr聚合处理模块进行缓存,直至接收到写入完成指令,在所述AggMgr聚合处理模块中聚合全部写入的数据得到所述目标文件的过程,包括:接收并存储与初始目标文件的文件标识对应的写入的数据至在所述AggMgr聚合处理模块中预先缓存的初始目标文件;直至接收到写入完成指令,根据包括全部写入的数据的所述初始目标文件,在所述AggMgr聚合处理模块中进行聚合得到所述目标文件。本专利技术还公开了一种文件间聚合方法,应用于分布式文件系统中的存储服务器,包括:接收用户终端从终端缓存中发送的目标文件;判断所述目标文件是否为小文件;若是,则将所述目标文件以大文件追加写的形式下刷至缓存层中预设的聚合子文件中;以大文件追加写的形式下刷聚合子文件至磁盘中预设的聚合大文件中;其中,所述聚合大文件为预设的包括1个或多个依次聚合的聚合子文件的文件;聚合子文件为包括1个或多个依次紧密聚合的小文件的文件;所述目标文件为在所述终端缓存中聚合全部写入的数据后的文件。可选的,所述判断所述目标文件是否为小文件的过程,包括:判断所述目标文件的大小是否小于预设的阈值。可选的,所述将所述目标文件以大文件追加写的形式下刷至缓存层中预设的聚合子文件中的过程,包括:将所述目标文件以大文件追加写的形式下刷至ObjectCacher缓存层中预设的Object中。可选的,所述以大文件追加写的形式下刷聚合子文件至磁盘中预设的聚合大文件中的过程,包括:当所述ObjectCacher缓存层缓存写满或预设的时间阈值内无新的写入,则下刷所述Object至磁盘中预设的聚合大文件中。可选的,所述以大文件追加写的形式下刷聚合子文件至磁盘中预设的聚合大文件中之前,还包括:在所述目标文件中存储所述目标文件在所述聚合大文件中位置的数据映射关系;发送所述数据映射关系至元数据服务器。本专利技术还公开了一种文件内聚合系统,应用于分布式文件系统中的用户终端,包括:内部聚合模块,用于接收并存储写入的数据至终端缓存进行缓存,直至写入完成,在所述终端缓存聚合全部写入的数据,在所述终端缓存中得到目标文件;文件发送模块,用于下刷所述目标文件至存储服务器。本专利技术还公开了一种文件间聚合系统,应用于分布式文件系统中的存储服务器,包括:文件接收模块,用于接收用户终端从终端缓存中发送的目标文件;文件筛选模块,用于判断所述目标文件是否为小文件;第一聚合模块,用于若所述文件筛选模块判定所述目标文件为小文件,则将所述目标文件以大文件追加写的形式下刷至缓存层中预设的聚合子文件中;第二聚合模块,用于以大文件追加写的形式下刷聚合子文件至磁盘中预设的聚合大文件中;其中,所述聚合大文件为预设的包括1个或多个依次聚合的聚合子文件的文件;聚合子文件为包括1个或多个依次紧密聚合的小文件的文件;所述目标文件为在所述终端缓存中聚合全部写入的数据后的文件。本专利技术中,文件内聚合方法,应用于分布式文件系统中的用户终端,包括:接收并存储写入的数据至终端缓存进行缓存,直至写入完成,在终端缓存聚合全部写入的数据,在终端缓存中得到目标文件;下刷目标文件至存储服务器。本专利技术在目标文件写入期间不会触发I/O下刷行为,而是利用终端缓存,将写入目标文件的数据在终端缓存中缓存,在整个目标文件的数据写入完之前,不触发目标文件下刷至存储服务器的行为,避免未写完文件却已经下刷,导致写入方式变更为修改写造成,写入效率降低的问题,实现了文件内部的聚合,将整个文件的所有数据聚合为一个文件再进行下刷操作,提高文件写入效率。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本专利技术实施例公开的一种文件内聚合方法流程示意图;图2为本专利技术实施例公开的另一种文件内聚合方法流程示意图;图3为本专利技术实施例公开的一种文件间聚合方法流程示意图;图4为本专利技术实施例公开的一种大文件结构示意图;图5为本专利技术实施例公开的一种文件内聚合系统结构示意图;图6为本专利技术实施例公开的一种文件间聚合系统结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术实施例公开了一种文件内聚合方法,参见图1所示,应用于分布式文件系统中的用户终端,该方法包括:S11:接收并存储写入的数据至终端缓存进行缓存,直至写入完成,在终端缓存聚合全部写入的数据,在终端缓存中得到目标文件。具体的,在接收用户以写入的方式写入目标文件的数据时,先将整个目标文件及写入的数据在终端缓存中进行缓存,直至用户完成对整个目标文件的写入,在终端缓存聚合全部写入的数据,这样在终端缓存中就会一次性得到一份完整的目标文件,在此期间,用户终端不会将未完成写入全过程的目标文件下刷至存储服务器,进行I/O(Input/Output,输入/输出)下刷操作,从根本上避免了未写完文件却已经下刷,导致写入方式变更为修改写造成,写入效率降低的问题。S12:下刷目标文件至本文档来自技高网...
【技术保护点】
1.一种文件内聚合方法,其特征在于,应用于分布式文件系统中的用户终端,包括:/n接收并存储写入的数据至终端缓存进行缓存,直至写入完成,在所述终端缓存聚合全部写入的数据,在所述终端缓存中得到目标文件;/n下刷所述目标文件至存储服务器。/n
【技术特征摘要】
1.一种文件内聚合方法,其特征在于,应用于分布式文件系统中的用户终端,包括:
接收并存储写入的数据至终端缓存进行缓存,直至写入完成,在所述终端缓存聚合全部写入的数据,在所述终端缓存中得到目标文件;
下刷所述目标文件至存储服务器。
2.根据权利要求1所述的文件内聚合方法,其特征在于,所述接收并存储写入的数据至终端缓存进行缓存,直至写入完成,在所述终端缓存聚合全部写入的数据,在所述终端缓存中得到目标文件的过程,包括:
接收并存储写入的数据至AggMgr聚合处理模块进行缓存,直至接收到写入完成指令,在所述AggMgr聚合处理模块中聚合全部写入的数据得到所述目标文件。
3.根据权利要求2所述的文件内聚合方法,其特征在于,所述接收并存储写入的数据至AggMgr聚合处理模块进行缓存,直至接收到写入完成指令,在所述AggMgr聚合处理模块中聚合全部写入的数据得到所述目标文件的过程,包括:
接收并存储与初始目标文件的文件标识对应的写入的数据至在所述AggMgr聚合处理模块中预先缓存的初始目标文件;
直至接收到写入完成指令,根据包括全部写入的数据的所述初始目标文件,在所述AggMgr聚合处理模块中进行聚合得到所述目标文件。
4.一种文件间聚合方法,其特征在于,应用于分布式文件系统中的存储服务器,包括:
接收用户终端从终端缓存中发送的目标文件;
判断所述目标文件是否为小文件;
若是,则将所述目标文件以大文件追加写的形式下刷至缓存层中预设的聚合子文件中;
以大文件追加写的形式下刷聚合子文件至磁盘中预设的聚合大文件中;
其中,所述聚合大文件为预设的包括1个或多个依次聚合的聚合子文件的文件;聚合子文件为包括1个或多个依次紧密聚合的小文件的文件;所述目标文件为在所述终端缓存中聚合全部写入的数据后的文件。
5.根据权利要求4所述的文件间聚合方法,其特征在于,所述判断所述目标文件是否为小文件的过程,包括:
判断所述目标文件的大小是否...
【专利技术属性】
技术研发人员:王帅阳,李文鹏,张端,
申请(专利权)人:苏州浪潮智能科技有限公司,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。