CN105630688A - 聚集文件的存储方法和系统以及聚集文件压缩方法和系统 - Google Patents
聚集文件的存储方法和系统以及聚集文件压缩方法和系统 Download PDFInfo
- Publication number
- CN105630688A CN105630688A CN201410601667.7A CN201410601667A CN105630688A CN 105630688 A CN105630688 A CN 105630688A CN 201410601667 A CN201410601667 A CN 201410601667A CN 105630688 A CN105630688 A CN 105630688A
- Authority
- CN
- China
- Prior art keywords
- file
- assembling
- gathering
- deletion
- new
- 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.)
- Pending
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/17—Details of further file system functions
- G06F16/1727—Details of free space management performed by the file system
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)
Abstract
本发明公开了一种存储聚集文件的方法以及压缩聚集文件的方法,包括:获取待压缩的聚集文件;基于与所获取的聚集文件对应的删除文件中所存储的被删除对象的元数据,将所获取的聚集文件中的剩余的对象复制到新的聚集文件中;以及移除所获取的聚集文件。
Description
技术领域
本公开涉及聚集文件的存储方法和系统以及用于聚集文件压缩方法和系统,更具体地,涉及一种对聚集文件进行压缩以回收存储空间的方法和系统。
背景技术
随着数字技术的发展,尤其是互联网的广泛应用,数字文件每天都在爆发性地增长。如何存储和管理这些每天产生的数据文件正日益成为人们需要面对的问题。为此,人们将一些小文件,例如大约0-上百KB的文件,聚集起来存放,形成一个聚集文件(aggregatedfile)。这种聚集文件采用只追加方法(append-onlymethod)来存储这些小文件。也就是说,通过一个文件紧接着一个文件的方式存储文件,直到该聚集文件的空间被填满为止。采用这种方式来存储多个小文件,能够将常见的文件写入过程从“随机磁盘输入”改变成“顺序磁盘输入”;能够将一些小文件的索引保持在内存中从而在读取一个小文件内容时只需要一次磁盘读取操作,从而显著减少文件系统的文件元信息数据(inode)使用。
但是聚集文件中的一些小文件会被不断更新、删除。由于聚集文件的填充方式采用“只追加方式”,因此,随着时间推移,一个被填充满的聚集文件会由于小文件的不断被更新或删除而留下很多“未使用空间”或“删除空间”。这会导致存储空间的浪费。为此,人们期望有能够回收这些“未使用空间”或“删除空间”,从而降低存储成本;降低存储空间的浪费,从而提高存储空间的利用率。
发明内容
根据本公开的一个方面,提供了一种压缩聚集文件的方法,包括:获取待压缩聚集文件;基于与所获取的聚集文件对应的删除文件中所存储的被删除对象的元数据,将所获取的聚集文件中的剩余的对象复制到新的聚集文件中;以及移除所获取的聚集文件。
根据本公开的另一个方面,提供了一种用于压缩聚集文件的计算机系统,包括:一个或多个处理器、一个或多个计算机可读内存、一个或多个计算机可读有形存储器件以及存储在所述一个或多个存储器件中的至少一个上用于经由所述一个或多个计算机可读内存的至少一个由所述由所述一个或多个处理器的至少一个执行的程序指令,其中所述计算机系统能够执行一种方法,该方法包括:获取待压缩聚集文件;基于与所获取的聚集文件对应的删除文件中所存储的被删除对象的元数据,将所获取的聚集文件中的剩余的对象复制到新的聚集文件中;以及移除所获取的聚集文件。
本公开的另一个方面,还提供了一种聚集文件存储系统,包括:一个或多个聚集文件区段,每个聚集文件区段按照只追加方式顺序存储多个对象;一个或多个内存索引区段,每个存储有在与聚集文件对应的对象对应的元数据;以及一个或多个专用删除文件区段,每个存储与从相应的聚集文件中的被删除的对象对应的元数据。
本公开使用了专用删除文件来保存删除信息,使得在利用这种专用删除文件确定对象不存在的访问时对磁盘操作的数量不会大于采用现有技术确定对象不存在的访问时的磁盘操作的数量。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了适于用来实现本公开实施方式的示例性计算机系统/服务器12的框图。
图2所示的是一种聚集文件的常规结构示意图。
图3所示的是根据本公开的实施例的聚集文件构成示意图。
图4所示的是根据本公开的实施例的复制压缩聚集文件的总体流程图。
图5所示的是根据本公开的实施例的用于压缩聚集文件的系统的基本框图。
图6所示的是根据本公开的实施例的执行复制压缩处理流程图。
图7所示的是根据本公开的实施例的选择所要复制压缩的聚集文件的流程图。
图8所示是根据本公开的实施例的对聚集文件执行复制压缩处理的流程示意图。
图9所示的根据本公开的实施例的对聚集文件执行复制和压缩的存储系统的具体示意图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
图1示出了适于用来实现本公开实施方式的示例性计算机系统/服务器12的框图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本公开各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本公开所描述的实施例中的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
根据本公开一个实施例的图2所示,聚集文件100中存储有多个小文件。其中每一个分格表示一个小文件,诸如100a-100p。
聚集文件通常是预先创建的。聚集文件通常而言是一个存储器盘或者一个存储器盘上的一部分存储区域,其通常有预定存储空间,例如为1GB到100GB不等,也可以更小或更大。聚集文件也可以通过预先确定要存储的小文件的数量来创建,预先确定要存储的小文件的数量例如为100,000-1,000,000个。该数量也可以更少或更多一些。聚集文件内存储的小文件采用“只追加方式”进行存储。也就是说,新存储的文件只能存储在最后存储的小文件的之后紧接着的位置,既不能存储到之前被删除文件的空置位置,也不能随机存储到聚集文件中的剩余空间的其它任何位置。无论聚集文件是采用固定空间大小的方式还是采用固定对象数量的方式创建,一旦聚集文件通过只追加方式在首次被充满之后,该聚集文件都将不能再存储任何对象。如果要继续存储其它小文件,则需要重新创建一个聚集文件,无论现有的聚集文件中是否存在某些小文件被删除后留下所谓的“删除空间”。因此,在存在多个聚集文件的情况下,只有最后一个聚集文件在其没有被充满的情况下能够继续采用只追加方式在其中存储小文件。因此,聚集文件的存储方式就是在一个聚集文件被充满的情况下,新的小文件就只能被存储到下一个新创建的聚集文件中。
如图2所示,采用大写字母(例如B、D)代表的部分表示被删除的小文件,例如100b以及100d。每一分格分界上的数字表示各个小文件在聚集文件中的位置偏移量。所有这些聚集文件都面对这样的问题:在将小文件从聚集文件中删除时,会在聚集文件中留下一些“删除间隙”或“删除漏洞”。通常,为了对聚集文件进行压缩从而回收这些删除间隙,就将聚集文件中剩余的小文件复制到新的聚集文件中。为此,就需要识别这些被删除的小文件和剩余的小文件。如何有效标记这些小文件已经被删除以及如何压缩所述聚集文件从而回收对象被删除后留下的空间的通常的方式是,在小文件中使用一种“标志”,对该标志赋予“0”或“1”来表示该小文件是否还存在。在对聚集文件进行压缩时,将跳过那些标志被赋予“0”的被删除小文件。很显然,要确定一个聚集文件中的所删除的小文件,需要很多次的磁盘操作,这会显著降低对聚集文件进行压缩的效率。
图3所示的是根据本公开的一个实施例的聚集文件构成示意图。如图3所示,与现有技术中的通过每个文件的“标志”的值的不同来代表文件是否被删除不同,本公开的存储在聚集文件区段201内的聚集文件采用一个存储在“删除文件区段202”内的专门“删除文件”来记录聚集文件中的哪个小文件被删除。在所述的删除文件中,记录有每个被删除文件的元数据,例如哈希值,诸如文件名、偏移值以及文件大小。每个聚集文件还对应存储在内存索引区段203内的一个内存索引(in-memoryindex)。在该内存索引中同样保存有聚集文件中剩余的小文件的哈希值。以下将每个小文件以及其对应哈希值统称为“对象”。
所述对象通常包括文件内容和一些元数据,诸如文件名、在聚集文件中的偏移量、文件大小等等。有很多方案和产品使用这种类型的聚集文件。
对于本公开的聚集文件,用户可以对其执行常规的追加存储、检索、读取、复制以及删除操作。在进行检索操作时,通过访问核实与聚集文件对应的内存索引。如果内存索引中存在所要检索的文件或对象相关联的元数据,诸如文件名、偏移量以及尺寸,则仅仅通过一次磁盘操作就可以根据所述元数据从聚集文件中读取相对应的对象。
根据本公开,在聚集文件中执行对象删除操作时,聚集文件中的对象在被删除之时,同时删除内存索引203中的哈希值或元数据,并将该对象的对应元数据存储到所述删除文件Del.idx202中。通过删除文件记录哪些对象被删除、被删除对象在聚集文件中的曾经的位置以及被删除对象的大小。通过这种方式,本申请“删除操作”与“创建(只追加存储)操作”和“检索操作”分开。
图4所示的是根据本公开一个实施例的复制压缩聚集文件的总体流程图。一般情况下,在存储空间充足的情况下,是不需要对聚集文件进行压缩来回收空间的。当存储空间不足时,需要对聚集文件进行压缩。此时只压缩那些仅接收检索和删除操作的聚集文件,而不会压缩最后一个正在写入的聚集文件。
如图4所示,在步骤S310处,接收来自用户的复制压缩指令,开始执行聚集文件的复制压缩处理。随后S320处,聚集文件创建单元710(将在后面描述)基于所述复制压缩指令创建新聚集文件,同时,删除文件创建单元720(将在后面描述)也基于复制压缩指令创建与新聚集文件201对应的过渡删除文件(在复制结束之后,被重新命名为新删除文件。以下为表述方便,称之为“新删除文件”)。与此同时,重命名单元760也基于复制压缩指令,把被压缩的聚集文件对应的删除文件重新命名为旧删除文件202。在步骤S330处,执行压缩处理的聚集文件复制单元740(将在后面描述)执行一次磁盘操作读取旧删除文件202,获取将被压缩的聚集文件中哪些文件被删除而不能被执行复制操作,相应地获取待压缩聚集文件中的剩余对象,并将剩余的对象以追加存储的方式复制到新聚集文件中。最后,在步骤S340处,切换单元(将在后面描述)将针对旧聚集文件201的所有控制操作切换到新聚集文件201,同时,移除单元(将在后面描述)移除旧聚集文件201,从而实现对聚集文件的压缩,由此回收旧聚集文件中的不能被使用的删除空间。
图5所示的事根据本发明实施例的用于压缩聚集文件的系统的基本框图。如图5所示,聚集文件压缩系统500包括:聚集文件选择单元780根据用户需要选择要复制压缩的聚集文件;聚集文件复制单元740,基于所述删除文件中的元数据,将所选取的聚集文件中的剩余的对象复制到新的聚集文件中;以及移除单元750,在复制结束之后,移除所选取的聚集文件。
图6所示的是根据本公开一个实施例的执行复制压缩处理流程图。如图6所示,在步骤S3310处,删除文件创建单元720创建一个过渡删除文件,例如DeltaDel.idx。随后,在步骤S3320处,所述执行压缩处理的聚集文件复制单元740确定是否有针对正在被复制的旧聚集文件的删除操作。如果有,则进入步骤S3330。在步骤S3330处,在执行对旧聚集文件中的被请求对象进行删除的同时,聚集文件复制单元740将被删除对象中的元数据存储在所述过渡删除文件DeltaDel.idx中。随后,在步骤S3340处,由聚集文件复制单元继续执行复制处理。如果在S3320确定没有针对正在被复制的旧聚集文件的删除操作,则直接进入步骤S3340。随后,在步骤S3350处,判断是否被聚集文件中的所有剩余对象都已经复制完成。如果还没有完成所有剩余对象的复制,则返回到步骤S3320。如果已经完成所有剩余对象的复制,则进入步骤S3360。在步骤S3360处,查询更新单元770基于所述过渡删除文件的元数据查询新聚集文件的内存索引内的元数据并基于查询结果更新过渡删除文件202中的元数据,并由删除单元对应地删除新聚集文件202中的相应的对象,使得过渡删除文件的元数据与新聚集文件的对象一致。由此结束在复制压缩处理过程中存在删除操作的处理。在执行复制压缩处理过程中,对相关对象的检索和删除操作依然针对旧聚集文件。
尽管此处涉及到了在复制压缩过程中对删除操作的处理,但是这种处理并不是实现本公开所必需的。为了简便起见,本申请所述的复制压缩方法可以在复制压缩期间禁止对被执行复制压缩的聚集文件执行删除操作,而仅仅执行其中的步骤S3340,从而简化处理流程。
图7所示的是根据本公开一个实施例的选择所要复制压缩的聚集文件的流程图。在执行聚集文件的复制压缩处理之前,聚集文件选择单元780根据用户需要选择要复制压缩的聚集文件。通常在一个盘中可能会存在多个聚集文件。其中会有很多聚集文件存在需要回收的删除空间。因此,当这些聚集文件的所在盘的存储空间紧张时,用户就需要压缩这些聚集文件或其中一个文件以满足其对存储空间的需要。如图7所示,首先,在步骤S510处,聚集文件选择单元780读取所述盘中多个聚集文件201对应的多个删除文件202,获取每个聚集文件201中被删除对象的元数据。随后在步骤S520处,针对每个聚集文件,累加元数据中记录的每个被删除的对象的大小,从而获得每个聚集文件中存在总的删除空间。之后在步骤S530处,比较各个聚集文件的总删除空间,并进行排序。最后,在步骤S540处,基于用户所需存储空间的需要,选择总删除空间最大的一个或几个聚集文件用于将要执行的复制压缩处理。
图8所示是根据本公开一个实施例的对聚集文件执行复制压缩处理的流程示意图。如图8所示,旧聚集文件中存在被删除的对象2。在旧聚集文件被执行复制压缩处理时,与其对应的删除文件Del.idx被重新命名为旧删除文件OldDel.idx。在执行复制压缩处理时,读取旧删除文件中的哈希值,确定旧聚集文件中的剩余对象以及其偏移位置,将剩余对象复制到新聚集文件中。当在复制压缩执行过程中存在对旧聚集文件中对象的删除操作时,执行删除操作,并将被删除对象的元数据存储到一个过渡删除文件DelDel.idx中。在删除操作结束后,被删除的对象在被删除前已经被复制到新聚集文件中,因此,新聚集文件对应的内存索引内记录的被删除的对象偏移量是其在新聚集文件内的偏移量,而在过渡删除文件DelDel.idx中记录的被删除文件对象的偏移量为其在旧聚集文件内的偏移量,因此,需要对过渡删除文件DelDel.idx中记录的被删除文件对象的偏移量进行修正。为此,基于过渡删除文件核实与新聚集文件对应的新的内存索引,可以获得新的偏移(在新聚集文件内的偏移量)并基于该新的偏移量更新DelDel.idx中记录的被删除文件对象的偏移量,并且随后获得新的Del.idx,使得新删除文件可以与新聚集文件一致。
图9所示的根据本公开一个实施例的对聚集文件执行复制和压缩的系统的示意图。如图9所示,所述复制和压缩的系统700包括:创建预定大小的聚集文件的聚集文件创建单元710;创建与聚集文件对应的删除文件的删除文件创建单元720;删除文件更新单元730,在删除聚集文件中的对象时,将与被删除对象对应的元数据存储在与聚集文件对应的删除文件中;聚集文件复制单元740,基于所述删除文件中的元数据,将聚集文件中的剩余的对象复制到新的聚集文件中;以及移除单元750,移除被复制的聚集文件。所述压缩聚集文件的系统还包括重命名单元760,基于来自用户的复制聚集文件的指令,对被复制的聚集文件对应的删除文件重新命名为旧删除文件,并且其中所述聚集文件创建单元710基于所述复制聚集文件的指令创建新聚集文件以及所述删除文件创建单元730同时创建对应的过渡删除文件;查询更新单元770,基于所述过渡删除文件的元数据查询新聚集文件的内存索引内的元数据,从而更新与新聚集文件对应的过渡删除文件中的元数据,同时,删除单元810对应地删除新聚集文件中的相应的对象,使得过渡删除文件与新聚集文件的对象对应;以及聚集文件选择单元780,其在执行聚集文件的复制之前,基于多个删除文件中所记载的元数据,计算各个聚集文件中的总删除空间,并选择具有最大的总删除空间的聚集文件作为被复制的聚集文件;切换单元790,在复制执行完成之后,将针对旧聚集文件的操作切换到针对所复制的新聚集文件的操作;以及锁定单元795,在执行对聚集文件的切换时,锁定针对新聚集文件以及旧聚集文件中的对象的删除操作。
根据上述对本申请的描述,本申请提供了另一种对被删除对象进行标记并回收在对象被删除后留下的存储空间的方法和系统。在本公开的方法中,没有在聚集文件所包含的对象中使用现有技术所采用的标志,而是使用了专用删除文件来保存删除信息。具体而言,就是将聚集文件中所删除的对象的相关元数据存储成一个单独的文件。通过这样处理,在确定对象不存在的访问时,本申请的这种专用删除文件的方式所需要的磁盘操作的数量不会大于现有技术的磁盘操作的数量。
本申请可以采用另外的磁盘来存储所述专用删除文件。当聚集文件与对应的删除文件存储在不同盘中时,对专用删除文件的访问就不会对聚集文件的顺序磁盘写入造成负面影响。这意味着其性能要优于现有的采用对象标志的方式。
由于专用删除文件记载了被删除对象的偏移量以及尺寸,因此,采用本申请的方法的复制压缩方法能够通过该专用删除文件容易地获知被复制压缩聚集文件中所有被删除对象的总空间以及被删除对象在旧聚集文件中的位置。由此可以通过计算每个聚集文件对应的删除文件获得每个聚集文件中的总的删除空间。这有助于聚集文件的所有者选择哪个聚集文件来进行压缩。当回收到足够多的空间时,就停止压缩处理。
在现有技术中,由于被删除对象采用各自的标志来进行表达,因此,很难一次确定哪些剩余对象是连续存在的,需要对每个剩余对象确定其标志。因此,对现有技术中通常在对象中设置标志的情况而言,在进行压缩时,用户通常不能知晓所述删除空间在哪里。因此需要一个一个对象地进行读取,通过判断该对象的标志来进行复制或是跳跃(skip)。因此,压缩的速度会比较慢。而本申请通过采用专用删除文件,可以获知哪些剩下的对象是连续存在的,因此在压缩过程中,可以对大块的连续对象执行大块连续磁盘读取。这就加快对剩余对象的复制速度。而且,采用专用删除文件,尽管压缩会花费很长时间但是使用被压缩文件的切换时间会非常短。此外,所述删除文件与对应聚集文件可以存储在不同的盘中。
如果系统被写入操作的次数很多而被读取操作的次数很少,本申请可以保持顺序磁盘写入,因为仅有一个聚集文件被写入。对于一些对象而言,顺序磁盘写入意味着更好的性能和响应时间。
对于现有技术在对象中标记删除的方式,每次删除操作需要一次磁盘操作。在本申请的方法中,在删除操作时,如果需要同时对一个聚集文件进行多个删除操作,可以将多个逻辑删除磁盘操作合并为一个物理磁盘操作,最差也是每个删除操作进行一次磁盘操作,因为当删除文件存储在另一个盘中,不会出现磁头需要来回跳跃的情况。
在本公开中,在进行切换时,需要进行锁定,以防止新的删除操作。由于采用本公开复制压缩聚集文件后进行切换所需的时间极短,因此这种锁定对聚集文件的使用带来的影响极小。切换到使用新聚集文件,内存索引以及删除文件。
本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (20)
1.一种用于压缩聚集文件的方法,包括:
获取待压缩的聚集文件;
基于与所获取的聚集文件对应的删除文件中所存储的被删除对象的元数据,将所获取的聚集文件中的剩余的对象复制到新的聚集文件中;以及
移除所获取的聚集文件。
2.根据权利要求1所述的用于压缩聚集文件的方法,其中所述将所获取的聚集文件中的剩余的对象复制到新的聚集文件中包括:创建过渡删除文件,所述过渡删除文件不同于所获取的聚集文件对应的删除文件。
3.根据权利要求2所述的用于压缩聚集文件的方法,其中响应于在将所获取的聚集文件中的剩余的对象复制到新的聚集文件过程中有新的删除操作,在所获取的聚集文件中执行该新的删除操作,并将被删除对象的元数据记录在过渡删除文件中。
4.根据权利要求3所述的用于压缩聚集文件的方法,还包括:
利用所述过渡删除文件的元数据查询新的聚集文件的元数据,以更新过渡删除文件中的元数据;以及
删除新的聚集文件中的相应的对象,使得过渡删除文件与新的聚集文件的对象对应。
5.根据权利要求4所述的用于压缩聚集文件的方法,还包括:将过渡删除文件作为与新的聚集文件对应的新删除文件。
6.根据权利要求1所述的用于压缩聚集文件的方法,其中所述元数据包括下列至少之一:对象的文件名、在聚集文件中的偏移量以及文件的大小。
7.根据权利要求1所述的用于压缩聚集文件的方法,所述获取待压缩聚集文件包括:
计算各个聚集文件中的总删除空间;以及
选择具有最大的总删除空间的聚集文件作为被压缩的聚集文件。
8.根据权利要求1所述的压缩聚集文件的方法,其中所述将所述聚集文件中的剩余的对象复制到新的聚集文件中包括:基于所获取的聚集文件对应的删除文件,确定被删除对象的位置,从而通过顺序读取包含多个未删除对象的大块来复制聚集文件。
9.一种用于压缩聚集文件的系统,包括:
被配置为获取待压缩的聚集文件的装置;
被配置为基于与所获取的聚集文件对应的删除文件中所存储的被删除对象的元数据,将所获取的聚集文件中的剩余的对象复制到新的聚集文件中的装置;以及
被配置为移除所获取的聚集文件的装置。
10.根据权利要求9所述的用于压缩聚集文件的系统,还包括:被配置为在将所获取的聚集文件中的剩余的对象复制到新的聚集文件过程中,创建过渡删除文件的装置,所述过渡删除文件不同于所获取的聚集文件对应的删除文件。
11.根据权利要求10所述的用于压缩聚集文件的系统,还包括:被配置为响应于在将所获取的聚集文件中的剩余的对象复制到新的聚集文件过程中有新的删除操作,在所获取的聚集文件中执行该新的删除操作,并将被删除对象的元数据记录在过渡删除文件中的装置。
12.根据权利要求11所述的用于压缩聚集文件的系统,还包括:
被配置为利用所述过渡删除文件的元数据查询新的聚集文件的元数据,以更新过渡删除文件中的元数据的装置;以及
被配置为删除新的聚集文件中的相应的对象,使得过渡删除文件与新的聚集文件的对象对应的装置。
13.根据权利要求12所述的用于压缩聚集文件的系统,还包括:被配置为将过渡删除文件作为与新的聚集文件对应的新删除文件的装置。
14.根据权利要求9所述的用于压缩聚集文件的系统,其中所述元数据包括下列至少之一:对象的文件名、在聚集文件中的偏移量以及文件的大小。
15.根据权利要求9所述的用于压缩聚集文件的系统,所述被配置为获取待压缩的聚集文件的装置包括:
被配置为计算各个聚集文件中的总删除空间的装置;以及
被配置为选择具有最大的总删除空间的聚集文件作为被压缩的聚集文件的装置。
16.根据权利要求9所述的用于压缩聚集文件的系统,其中所述被配置为将所述聚集文件中的剩余的对象复制到新的聚集文件中的装置包括:被配置为基于所述删除文件,确定被删除对象的位置,从而通过顺序读取包含多个未删除对象的大块来复制聚集文件的装置。
17.一种聚集文件存储方法,包括:
将多个对象按照只追加方式顺序存储在聚集文件中;
在与聚集文件对应的内存索引中存储与聚集文件的对象对应的元数据;以及
将与从聚集文件中的被删除的对象对应的元数据存储在专用删除文件中。
18.如权利要求17所述的聚集文件存储方法,其中所述元数据包括文件名、文件在聚集文件中的偏移量以及文件大小至少之一。
19.一种聚集文件存储系统,包括:
一个或多个聚集文件区段,每个聚集文件区段按照只追加方式顺序存储多个对象;
一个或多个内存索引区段,每个存储有在与聚集文件对应的对象对应的元数据;以及
一个或多个专用删除文件区段,每个存储与从相应的聚集文件中的被删除的对象对应的元数据。
20.如权利要求19所述的聚集文件存储系统,其中所述元数据包括文件名、文件在聚集文件中的偏移量以及文件大小之一。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410601667.7A CN105630688A (zh) | 2014-10-30 | 2014-10-30 | 聚集文件的存储方法和系统以及聚集文件压缩方法和系统 |
US14/926,355 US10423580B2 (en) | 2014-10-30 | 2015-10-29 | Storage and compression of an aggregation file |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410601667.7A CN105630688A (zh) | 2014-10-30 | 2014-10-30 | 聚集文件的存储方法和系统以及聚集文件压缩方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105630688A true CN105630688A (zh) | 2016-06-01 |
Family
ID=55852869
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410601667.7A Pending CN105630688A (zh) | 2014-10-30 | 2014-10-30 | 聚集文件的存储方法和系统以及聚集文件压缩方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10423580B2 (zh) |
CN (1) | CN105630688A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106776783A (zh) * | 2016-11-24 | 2017-05-31 | 福建亿榕信息技术有限公司 | 非结构化数据存储管理方法、服务器和系统 |
CN109101639A (zh) * | 2018-08-21 | 2018-12-28 | 赛凡信息科技(厦门)有限公司 | 一种提高文件系统性能的聚合模式 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10296250B2 (en) * | 2016-06-08 | 2019-05-21 | Intel Corporation | Method and apparatus for improving performance of sequential logging in a storage device |
CN111104063A (zh) * | 2019-12-06 | 2020-05-05 | 浪潮电子信息产业股份有限公司 | 一种数据存储方法、装置及电子设备和存储介质 |
CN113110801A (zh) * | 2021-04-15 | 2021-07-13 | 山东英信计算机技术有限公司 | 一种加快小文件读取速度的方法、系统、设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6112211A (en) * | 1997-11-25 | 2000-08-29 | International Business Machines Corporation | Reconfiguration an aggregate file including delete-file space for optimal compression |
US7660834B2 (en) * | 2005-08-17 | 2010-02-09 | International Business Machines Corporation | Maintaining an aggregate including active files in a storage pool |
CN102024017A (zh) * | 2010-11-04 | 2011-04-20 | 天津曙光计算机产业有限公司 | 一种无重复无遗漏遍历分布式文件系统目录项的方法 |
US20110106806A1 (en) * | 2009-11-02 | 2011-05-05 | Stg Interactive | Process for optimizing file storage systems |
CN102708107A (zh) * | 2011-12-13 | 2012-10-03 | 北京安天电子设备有限公司 | 一种追加式文件存储的方法及系统 |
CN103077166A (zh) * | 2011-10-25 | 2013-05-01 | 深圳市快播科技有限公司 | 小文件存储的空间复用方法和装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6021415A (en) | 1997-10-29 | 2000-02-01 | International Business Machines Corporation | Storage management system with file aggregation and space reclamation within aggregated files |
US7418646B2 (en) | 2004-03-02 | 2008-08-26 | Intel Corporation | Integrated circuit using wireless communication to store and/or retrieve data and/or check data |
US20070043608A1 (en) * | 2005-08-22 | 2007-02-22 | Recordant, Inc. | Recorded customer interactions and training system, method and computer program product |
US7818801B2 (en) * | 2006-09-26 | 2010-10-19 | ScriptLogic Corportation | File system event tracking |
-
2014
- 2014-10-30 CN CN201410601667.7A patent/CN105630688A/zh active Pending
-
2015
- 2015-10-29 US US14/926,355 patent/US10423580B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6112211A (en) * | 1997-11-25 | 2000-08-29 | International Business Machines Corporation | Reconfiguration an aggregate file including delete-file space for optimal compression |
US7660834B2 (en) * | 2005-08-17 | 2010-02-09 | International Business Machines Corporation | Maintaining an aggregate including active files in a storage pool |
US20110106806A1 (en) * | 2009-11-02 | 2011-05-05 | Stg Interactive | Process for optimizing file storage systems |
CN102024017A (zh) * | 2010-11-04 | 2011-04-20 | 天津曙光计算机产业有限公司 | 一种无重复无遗漏遍历分布式文件系统目录项的方法 |
CN103077166A (zh) * | 2011-10-25 | 2013-05-01 | 深圳市快播科技有限公司 | 小文件存储的空间复用方法和装置 |
CN102708107A (zh) * | 2011-12-13 | 2012-10-03 | 北京安天电子设备有限公司 | 一种追加式文件存储的方法及系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106776783A (zh) * | 2016-11-24 | 2017-05-31 | 福建亿榕信息技术有限公司 | 非结构化数据存储管理方法、服务器和系统 |
CN106776783B (zh) * | 2016-11-24 | 2019-10-01 | 福建亿榕信息技术有限公司 | 非结构化数据存储管理方法和系统 |
CN109101639A (zh) * | 2018-08-21 | 2018-12-28 | 赛凡信息科技(厦门)有限公司 | 一种提高文件系统性能的聚合模式 |
CN109101639B (zh) * | 2018-08-21 | 2021-03-23 | 赛凡信息科技(厦门)有限公司 | 一种提高文件系统性能的聚合模式 |
Also Published As
Publication number | Publication date |
---|---|
US10423580B2 (en) | 2019-09-24 |
US20160124984A1 (en) | 2016-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106407040B (zh) | 一种远程数据复制方法及系统 | |
US10248356B2 (en) | Using scratch extents to facilitate copying operations in an append-only storage system | |
CN101404567B (zh) | 用于访问备份数据的方法和计算机系统 | |
CN108319602B (zh) | 数据库管理方法及数据库系统 | |
US10248556B2 (en) | Forward-only paged data storage management where virtual cursor moves in only one direction from header of a session to data field of the session | |
US10303363B2 (en) | System and method for data storage using log-structured merge trees | |
CN105630688A (zh) | 聚集文件的存储方法和系统以及聚集文件压缩方法和系统 | |
US20080172426A1 (en) | Storage system format for transaction safe file system | |
CN105740303A (zh) | 改进的对象存储的方法及装置 | |
CN105740266A (zh) | 用于数据去重的方法和设备 | |
CN107003935A (zh) | 优化数据库去重 | |
CN105493043A (zh) | 用于虚拟机转换的系统和方法 | |
CN105474200A (zh) | 具有占位符的水合和脱水 | |
CN109313538A (zh) | 内联去重 | |
CN102323930B (zh) | 对数据库系统中的数据变更进行镜像 | |
KR20150122533A (ko) | 세컨더리 인덱스 생성 방법 및 세컨더리 인덱스 저장 장치 | |
AU2013210018A1 (en) | Location independent files | |
CN110515543B (zh) | 基于对象存储桶的快照方法、装置和系统 | |
US9619322B2 (en) | Erasure-coding extents in an append-only storage system | |
CN103049539A (zh) | 一种文件系统中文件数据的存储方法及其装置 | |
US10359964B2 (en) | Reducing time to read many files from tape | |
CN107203574A (zh) | 数据管理和数据分析的聚合 | |
KR20210058118A (ko) | CaseDB: 엣지컴퓨팅을 위한 저비용 Put-Intensive 키-벨류 저장장치 | |
CN103339615B (zh) | 存储系统和信息处理方法 | |
CN107798063B (zh) | 快照处理方法和快照处理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160601 |