一种小文件更新的方法及装置与流程

文档序号:11285655阅读:276来源:国知局
一种小文件更新的方法及装置与流程

本发明涉及文件系统领域,特别是涉及一种小文件更新的方法及装置。



背景技术:

随着文件系统技术的发展,分布式存储文件系统的应用也越来越广泛。

分布式存储文件系统中,文件存储过程可以通过将每个文件写入对应的obj对象中,即无论文件的大小,都会将文件存储至一个固定大小的obj对象内,也即一个obj对象内存储一个文件,继而将obj对象内的存储对象写入磁盘中。

相应地,文件更新时,可以将单个更新文件存储到对应的obj对象后,再写入磁盘。面向海量小文件存储场景时,由于一个obj对象存储一个小文件,即每次只将一个小文件写入磁盘,这样会增加文件写入磁盘的次数,降低磁盘的使用率,增加磁盘的运算压力,进而导致文件写性能较低。



技术实现要素:

本发明的目的是提供一种小文件更新的方法及装置,目的在于解决现有技术中的海量小文件存储场景下的文件写性能较低的问题。

为解决上述技术问题,本发明提供一种小文件更新的方法,该方法包括:

将多个待更新源文件存储至聚合文件,所述聚合文件包含用于存储源文件的多个obj对象,所述obj对象包含多个所述待更新源文件;

当所述obj对象的剩余存储空间等于或小于预设数值时,将所述obj对象内的多个所述待更新源文件批量写入磁盘。

可选地,所述将多个待更新源文件存储至聚合文件包括:

将所述多个所述待更新源文件存储至第一obj对象;

当多个所述待更新源文件大于所述第一obj对象的存储容量时,将超出所述第一obj对象的存储容量的所述待更新源文件存储至第二obj对象。

可选地,所述当所述obj对象的剩余存储空间等于或小于预设数值时,将所述obj对象内的多个所述待更新源文件批量写入磁盘包括:

当所述obj对象的所述剩余存储空间等于或小于存储空间的十分之一时,将所述obj对象内的多个所述待更新源文件批量写入磁盘。

此外,本发明还提供了一种小文件更新的装置,该装置包括:

存储模块,用于将多个待更新源文件存储至聚合文件,所述聚合文件包含用于存储源文件的多个obj对象,所述obj对象包含多个所述待更新源文件;

批量写入模块,用于当所述obj对象的剩余存储空间等于或小于预设数值时,将所述obj对象内的多个所述待更新源文件批量写入磁盘。

可选地,所述存储模块包括:

第一存储单元,用于将所述多个所述待更新源文件存储至第一obj对象;

第二存储单元,用于当多个所述待更新源文件大于所述第一obj对象的存储容量时,将超出所述第一obj对象的存储容量的所述待更新源文件存储至第二obj对象。

可选地,所述批量写入模块包括:

批量写入单元,用于当所述obj对象的所述剩余存储空间等于或小于存储空间的十分之一时,将所述obj对象内的多个所述待更新源文件批量写入磁盘。

本发明所提供的一种小文件更新的方法及装置,通过将多个待更新源文件存储至聚合文件,所述聚合文件包含用于存储源文件的多个obj对象,所述obj对象包含多个所述待更新源文件;当所述obj对象的剩余存储空间等于或小于预设数值时,将所述obj对象内的多个所述待更新源文件批量写入磁盘。本申请将多个待更新源文件存储到同一个obj对象,提高了磁盘的使用率;当obj对象内所存储的待更新源文件大小达到预期条件时,将obj对象内存储的多个待更新源文件批量写入磁盘,即一次更新多个源文件,这样可以减少写入磁盘的次数,减轻磁盘的压力,进而使得文件写性能较高。可见,本申请有利于提高文件写性能。

附图说明

为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例所提供的小文件更新方法的一种具体实施方式的流程示意图;

图2为本发明实施例所提供的小文件更新装置的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参见图1,图1为本发明实施例所提供的小文件更新方法的一种具体实施方式的流程示意图,该方法包括以下步骤:

步骤101:将多个待更新源文件存储至聚合文件,所述聚合文件包含用于存储源文件的多个obj对象,所述obj对象包含多个所述待更新源文件;

需要说明的是,基于海量小文件存储的场景,上述待更新源文件可以是指小文件,且各个待更新源文件的大小可以相同,也可以不同。上述聚合文件可以包括多个obj对象,且每个obj对象内可以存储多个小文件,此时,聚合文件可以有n个obj对象,每个obj对象可以存储m个源文件。且上述obj对象的存储空间是固定的,例如为4mb。

当所要存储的待更新源文件的大小大于一个obj对象的存储空间时,可以将导致超出obj对象的存储空间的待更新源文件存储至下一个obj对象。

作为一种具体实施方式,上述将多个待更新源文件存储至聚合文件的过程可以具体为:将所述多个所述待更新源文件存储至第一obj对象;当多个所述待更新源文件大于所述第一obj对象的存储容量时,将超出所述第一obj对象的存储容量的所述待更新源文件存储至第二obj对象。

可以理解的是,上述第二obj对象可以是指不同于第一obj对象的obj对象。例如,当需要存储n个待更新源文件至聚合文件,而当前obj对象的存储空间只能存储其中的n-1个,则可以将其中一个待更新源文件存储至同一聚合文件的另一个obj对象内。

步骤102:当所述obj对象的剩余存储空间等于或小于预设数值时,将所述obj对象内的多个所述待更新源文件批量写入磁盘。

需要说明的是,上述预设数值可以是0,也可以是其它数值,在此不再限定。

具体地,当obj对象在被写满或将近被写满时,可以将该obj对象内的所有待更新源文件统一写入至磁盘,即批量写入磁盘,实现批量更新源文件的目的。

当然,上述预设数值可以根据实际需要进行设定,例如,可以将预设数值大小设定为该obj对象总存储空间的十分之一大小。

作为一种具体实施方式,上述当所述obj对象的剩余存储空间等于或小于预设数值时,将所述obj对象内的多个所述待更新源文件批量写入磁盘的过程可以具体为:当所述obj对象的所述剩余存储空间等于或小于存储空间的十分之一时,将所述obj对象内的多个所述待更新源文件批量写入磁盘。

可以理解的是,当上述obj对象的总存储空间为4m时,则预设数值为0.4m,此时,当obj对象的剩余存储空间小于或等于0.4m时,则可以将该obj对象内的文件批量写入磁盘中。

本发明实施例所提供的小文件更新方法,通过将多个待更新源文件存储至聚合文件,上述聚合文件包含用于存储源文件的多个obj对象,上述obj对象包含多个待更新源文件;当obj对象的剩余存储空间等于或小于预设数值时,将obj对象内的多个待更新源文件批量写入磁盘。该方法将多个待更新源文件存储到同一个obj对象,提高了磁盘的使用率;当obj对象内所存储的待更新源文件大小达到预期条件时,将obj对象内存储的多个待更新源文件批量写入磁盘,这样可以减少写入磁盘的次数,减轻磁盘的压力,进而使得文件写性能较高。

下面对本发明实施例提供的小文件更新装置进行介绍,下文描述的小文件更新装置与上文描述的小文件更新方法可相互对应参照。

图2为本发明实施例所提供的小文件更新装置的结构框图,参照图2小文件更新装置可以包括:

存储模块21用于将多个待更新源文件存储至聚合文件,上述聚合文件包含用于存储源文件的多个obj对象,上述obj对象包含多个待更新源文件;

批量写入模块22,用于当obj对象的剩余存储空间等于或小于预设数值时,将obj对象内的多个待更新源文件批量写入磁盘。

可选地,上述存储模块包括:

第一存储单元,用于将多个待更新源文件存储至第一obj对象;

第二存储单元,用于当多个待更新源文件大于第一obj对象的存储容量时,将超出第一obj对象的存储容量的待更新源文件存储至第二obj对象。

可选地,上述批量写入模块包括:

批量写入单元,用于当obj对象的剩余存储空间等于或小于存储空间的十分之一时,将obj对象内的多个待更新源文件批量写入磁盘。

本发明实施例所提供的小文件更新装置,通过将多个待更新源文件存储至聚合文件,聚合文件包含用于存储源文件的多个obj对象,obj对象包含多个所述待更新源文件;当obj对象的剩余存储空间等于或小于预设数值时,将obj对象内的多个待更新源文件批量写入磁盘。该装置将多个待更新源文件存储到同一个obj对象,提高了磁盘的使用率;当obj对象内所存储的待更新源文件大小达到预期条件时,将obj对象内存储的多个待更新源文件批量写入磁盘,这样可以减少写入磁盘的次数,减轻磁盘的压力,进而使得文件写性能较高。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上对本发明所提供的小文件更新的方法及装置进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1