垃圾数据的回收处理方法、装置及电子设备与流程

文档序号:20029549发布日期:2020-02-28 10:13阅读:304来源:国知局
垃圾数据的回收处理方法、装置及电子设备与流程

本申请涉及一种垃圾数据的回收处理方法、装置及电子设备,属于计算机技术领域。



背景技术:

在当前的存储产品中,在写入数据时基本上都不采用覆盖写(overwrite)的方式,而是把新的数据存储在新的位置。这样带来的好处就是写入的性能会更好,写入的可用性更高,也不容易出现数据错误。但是,这种写入方式会带来一个额外的负担就是,对老旧数据的垃圾回收。当存在共享重复数据的情况时,垃圾数据的识别和回收就更加复杂了。



技术实现要素:

本发明实施例提供一种垃圾数据的回收处理方法、装置及电子设备,以解决存在数据文件被共享的情况下的垃圾回收。

为了实现上述目的,本发明实施例提供了一种垃圾数据的回收处理方法,包括:

获取设备段中处于共享状态的至少一个第一数据文件;

获取所述第一数据文件对应的第一索引文件以及与所述第一数据文件具有共享关系的至少一个第二数据文件对应的第二索引文件;

根据所述第一索引文件和所述第二索引文件,确定所述第一数据文件中的垃圾数据块,并执行第一垃圾回收处理。

本发明实施例还提供了一种垃圾数据的回收处理方法,包括:

获取设备段中的至少一个已有数据文件中的至少一个有效数据块,使用所述有效数据块生成至少一个新数据文件,所述有效数据块为所述数据文件中垃圾数据块以外的数据块;

根据所述已有数据文件对应的已有索引文件和所述新数据文件,生成与该新数据文件对应的新索引文件;

使用所述新数据文件和所述新索引文件替换所述已有数据文件和已有索引文件。

本发明实施例还提供了一种垃圾数据的回收处理装置,包括:

第一获取模块,用于获取设备段中处于共享状态的至少一个第一数据文件;

第二获取模块,用于获取所述第一数据文件对应的第一索引文件以及与所述第一数据文件具有共享关系的至少一个第二数据文件对应的第二索引文件;

第一垃圾数据块确定模块,用于根据所述第一索引文件和所述第二索引文件,确定所述第一数据文件中的垃圾数据块;

第一垃圾回收处理模块,用于执行第一垃圾回收处理。

本发明实施例又提供了一种垃圾数据的回收处理装置,包括:

数据文件生成模块,用于获取设备段中的至少一个已有数据文件中的至少一个有效数据块,使用所述有效数据块生成至少一个新数据文件,所述有效数据块为所述数据文件中垃圾数据块以外的数据块;

索引文件生成模块,用于根据所述已有数据文件对应的已有索引文件和所述新数据文件,生成与该新数据文件对应的新索引文件;

文件替换模块,用于使用所述新数据文件和所述新索引文件替换所述已有数据文件和已有索引文件。

本发明实施例还提供了一种电子设备,包括:

存储器,用于存储程序;

处理器,耦合至所述存储器,用于执行所述程序,以用于如下处理:

获取设备段中处于共享状态的至少一个第一数据文件;

获取所述第一数据文件对应的第一索引文件以及与所述第一数据文件具有共享关系的至少一个第二数据文件对应的第二索引文件;

根据所述第一索引文件和所述第二索引文件,确定所述第一数据文件中的垃圾数据块,并执行第一垃圾回收处理。

本发明实施例还提供了又一种电子设备,包括:

存储器,用于存储程序;

处理器,耦合至所述存储器,用于执行所述程序,以用于如下处理:

获取设备段中的至少一个已有数据文件中的至少一个有效数据块,使用所述有效数据块生成至少一个新数据文件,所述有效数据块为所述数据文件中垃圾数据块以外的数据块;

根据所述已有数据文件对应的已有索引文件和所述新数据文件,生成与该新数据文件对应的新索引文件;

使用所述新数据文件和所述新索引文件替换所述已有数据文件和已有索引文件。

本发明实施例的垃圾数据的回收处理的技术方案,能够实现在数据共享状态下的垃圾回收,在确定垃圾数据块的过程中,充分考虑共享数据块的直接和间接的数据引用关系,以准确地确定出垃圾数据块,并进一步执行垃圾回收处理。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

图1为本发明实施例的lsbd的设备的数据结构示意图。

图2为本发明实施例的lsbd设备的快照设备结构示意图。

图3为本发明实施例的lsbd设备的克隆设备结构示意图

图4为本发明实施例的垃圾数据块的示意图之一。

图5为本发明实施例的垃圾数据块的示意图之二。

图6为本发明实施例的垃圾数据块的示意图之三。

图7为本发明实施例的垃圾回收处理的过程示意图之一。

图8为本发明实施例的垃圾回收处理的过程示意图之二。

图9为本发明实施例的垃圾回收处理的过程示意图之三。

图10为本发明实施例的垃圾数据的回收处理方法的流程示意图之一。

图11为本发明实施例的垃圾数据的回收处理方法的流程示意图之二。

图12为本发明实施例的垃圾数据的回收处理方法的流程示意图之三。

图13为本发明实施例的垃圾数据的回收处理方法的流程示意图之四。

图14为本发明实施例的垃圾数据的回收处理方法的流程示意图之五。

图15为本发明实施例的垃圾数据的回收处理装置的结构示意图之一。

图16为本发明实施例的垃圾数据的回收处理装置的结构示意图之二。

图17为本发明实施例的垃圾数据的回收处理装置的结构示意图之三。

图18为本发明实施例的电子设备的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

本发明实施例的整体描述

关于垃圾数据的说明

在lsbd架构下,采用日志文件(logfile)来构建虚拟机磁盘设备,日志文件是一种只能被追加写而不能覆盖写的一种的分布式系统文件,日志结构块结构设备是一种虚拟块设备,该设备也是基于日志文件而构造的。正因为日志文件是只能被追加写而不能覆盖写,所以才会产生较多的垃圾文件。例如,当数据更新时,新的数据会写在另一个地方,并调整逻辑地址与物理地址的对应关系,指向新的数据,而原来的数据就成了垃圾数据。

如图1所示,其为本发明实施例的lsbd的设备的数据结构示意图,在lsbd设备中,设备被切分成多个设备段(devicesegment),每个设备段由indexfile(索引文件)、datafile(数据文件)和txnfile(修改事务日志文件,图中未示出)组成,这些文件都采用的是分布式文件的日志文件(logfile)格式,即只能追加写,不能覆盖写。下面分别介绍一下各个文件的主要内容:

索引文件:负责记录devicelbarange(设备逻辑地址区间)和datafile的物理地址区间的对应关系。

数据文件:负责存储设备段的数据,即数据文件中记录的是实际的内容数据。数据文件进一步被划分为多个数据块(block)。

修改事务日志文件:记录修改设备段的transactionlog(事务日志)。

在lsbd架构中,多个设备一般采用通过硬链接的方式来共享重复数据。常见的出现共享数据的场景是对设备进行快照(snapshot)或者克隆(clone)。如图2和图3所示,图2为本发明实施例的lsbd设备的快照设备结构示意图,图3为本发明实施例的lsbd设备的克隆设备结构示意图。

如图2所示,原始设备包含设备段1至设备段n共n个设备段。快照过程是将原始设备中的全部数据文件进行复制,生成快照设备,其中的复制过程可以通过硬链接的共享方式实现,而不需要在存储层复制一份物理数据。以原始设备的设备段1为例,将原始设备的设备段1中的数据文件(数据文件1……数据文件x),通过硬链接的方式在快照设备的设备段1中生成数据文件(数据文件1……数据文件x),然后生成快照设备的设备段1的索引文件,其他设备段的操作一样。

如图3所示,原始设备和图2中所示内容一样,克隆过程实际将原始设备中的全部数据文件和索引文件进行复制,形成克隆设备。其中的复制过程可以通过硬链接的共享方式实现,以原始设备的设备段1为例,把原始设备的设备段1中的索引文件(索引文件1……索引文件x)和数据文件(数据文件1……数据文件x),通过硬链接的方式在lsbd快照设备的设备段1中生成对应的索引文件和数据文件,其他设备段的操作一样。

以图2中的原始设备和快照设备为例,在生成快照设备后,如果原始设备发生了数据更新,根据lsbd架构的特性,会出现新的数据写入,而被更新的数据依然保留的情形。如图4所示,其为本发明实施例的垃圾数据块的示意图之一,图4中同时示出了数据更新前的原始设备的数据状况、数据更新前快照设备的数据状况以及数据更新后的原始设备的数据状况。以原始设备中的一个数据段中的一个数据文件为例(图中仅示出该数据文件),该数据文件包括数据块1~4,原始设备对应的快照设备中也同样包括相应的数据文件,该数据文件包括数据块1’~4’。

对原始设备的数据文件的一个数据块(图中所述的数据块4)进行数据更新,向该数据文件写入了更新后的数据块(图中所示数据块5),并修改了索引文件以指向更新后的数据块(图中所示的数据块5),从用户角度来看,被更新的数据块(图中所示数据块4)在原始设备中相当于被删除了,但是实际上数据块4还是存在于原始设备中。

由于数据更新前的快照设备的存在,数据块4处于共享状态,虽然对于数据更新后的原始设备来说,数据块4应当属于垃圾数据块,但是,该数据块4被快照设备所共享,并且在快照设备中,与该数据块4具有共享关系的数据块4’被索引文件所引用的,因此,数据块4不能被认定为垃圾数据块,也不能作为垃圾数据块被回收。

在图4的数据状态的基础上,再对数据更新后的原始设备进行快照,生成如图5所示的另一个快照设备,并将相关的原始设备和快照设备的数据状态都体现在图5中。如图5所示,其为本发明实施例的垃圾数据块的示意图之二,为了便于说明,将针对数据更新前的原始设备进行快照生成的快照设备称为第一快照设备,将针对数据更新后的原始设备进行快照生成的快照设备称为第二快照设备。对于数据更新后的原始设备和第二快照设备而言,被更新的数据块(数据块4)以及其对应的快照数据块(数据块4″)应当视为垃圾数据块,因为没有索引文件对该数据块进行引用,但是由于第一快照设备以及相应的共享关系的存在,数据块4、数据块4’以及数据块4″都不能被认定为垃圾数据块。

进一步地,如图6所示,其为本发明实施例的垃圾数据块的示意图之三,在图5的基础上,删除了第一快照设备。在这种情况下,虽然数据更新后的原始设备和第二快照设备之间存在共享关系,但是,在这两个设备中,该被更新的数据块(数据块4和数据块4″)没有索引文件被引用,因此,可以确定为垃圾数据块,可以执行垃圾回收处理。

通过以上的图2至图6的示例说明可知,在本发明实施例中,在进行垃圾回收处理时,需要充分考虑数据文件被共享的情形,对于数据文件中的数据块是否是能够被执行垃圾回收的垃圾数据块,需要根据与该数据文件具有共享关系的全部数据文件的引用关系来确定。对于某一个数据块来说,在具有共享关系的数据文件中,只要在一个数据文件中,该数据块被引用文件所引用,该数据块就不能被认定为垃圾数据块,不能被执行垃圾回收。

关于垃圾回收指标

在本发明实施例中,垃圾回收指标是用于判定是否触发垃圾回收处理的条件或者说是阈值。垃圾回收处理是以数据文件为单位的,当数据文件中的垃圾数据比例(数据文件中的垃圾数据块的总量与物理数据总量之比)大于垃圾回收指标时就会触发垃圾回收处理。垃圾回收指标分为共享垃圾回收指标和非共享垃圾回收指标。共享垃圾回收指标用于处于共享状态的数据文件的垃圾回收处理,非共享垃圾回收指标用于处于非共享状态的数据文件的垃圾回收处理。

垃圾回收处理需要消耗大量的cpu和io资源,因此,垃圾回收指标的设定需要充分考虑cpu和io资源的消耗与存储资源的占用之间的平衡。

非共享垃圾回收指标可以根据实际需求或者经验值而预先设定,属于静态指标,例如,可以设定为20%。

共享垃圾回收指标还需要考虑逻辑数据重复率,逻辑数据的重复率是指逻辑数据总量与物理数据总量的比值。需要说明的是,这里所说的逻辑数据总量和物理数据总量,都是针对单个数据文件来说的。物理数据总量是指该数据文件所占用的物理存储空间,包含了该数据文件中有效数据块和垃圾数据块所占用的物理存储空间。逻辑数据总量是该数据文件直接或者间接(被其他设备或者相同设备的其他设备段所共享)被索引文件索引用的数据量的总和,其包含了被相同设备段内的索引文件引用的数据块的数量,也包含了与该数据文件具有共享关系的其他设备段或者其他设备中的数据文件被索引文件引用的数据块的数量。

例如,设备1的设备段1的数据文件a的物理数据总量(包含了垃圾数据块和有效数据块)为:256mb

设备1的设备段1引用该数据文件a中的数据块的总量为:100mb;

设备1的设备段2中基于共享关系,而间接引用该数据文件a中的数据块的总量:150mb;

设备2的设备段3中基于共享关系,而间接引用该数据文件a中的数据块的总量:100mb;

数据文件a的逻辑数据总量为:100mb+150mb+100mb=350mb。

数据文件a的逻辑数据重复率=逻辑数据总量/物理数据总量=350/256=1.37。

计算垃圾数据重复率的目的是为了对非共享垃圾回收指标进行修正,因为共享状态下的垃圾回收处理相比非共享状态下的垃圾回收处理更加耗费cpu和io资源,因此,共享状态下的垃圾回收指标要略高于非共享状态下的垃圾回收指标,具体计算方式可以采用如下公式:

共享垃圾回收指标=非共享垃圾回收指标+(物理数据总量/逻辑数据总量)×非共享垃圾回收指标…………………………式(1)

公式中采用了逻辑数据重复率的倒数和非共享垃圾回收指标的乘积来对非共享垃圾回收指标进行修正,并最终获得共享垃圾回收指标。对于非共享状态下的垃圾回收的触发条件而言,会从两方面考虑是否值得触发垃圾回收。一方面是垃圾数据比例,这个方面和非常共享状态是一样的。另一方面会考虑逻辑数据重复率,逻辑数据重复率越高说明,数据文件之间的共享关联关系越多,垃圾回收处理会更加耗费cpu和io资源,不值得立即进行垃圾回收处理,而是可以等待逻辑数据重复率越高低一些时再进行,例如,某些快照设备或者克隆设备被删除后再进行。

关于垃圾回收的处理过程

前面介绍了垃圾回收的触发机制,下面再介绍一下垃圾回收处理的具体处理过程。本发明实施例中的垃圾回收处理过程是在满足了垃圾回收指标并且已经确定了垃圾数据块的基础上执行的处理,即参与垃圾回收处理的数据文件是满足了垃圾回收指标的数据文件。

在本发明实施例中,将数据文件中垃圾数据块以外的数据块称作有效数据块,也就是说,通过之前的方法确定了垃圾数据块后,实际上就确定了有效数据块。

具体地,本发明实施例中,垃圾回收处理会将已有数据文件中的有效数据块提取出来,然后组成新数据文件,然后再形成新索引文件,并将新数据文件和新索引文件替换已有数据文件和已有索引文件。在本发明实施例中,可以只提取一个已有数据文件中的有效数据块来形成新数据文件,也可以提取多个已有数据文件中的有效数据块来形成新数据文件。如图7所示,其为本发明实施例的垃圾回收处理的过程示意图之一,图中示例示出了将两个已有数据文件a1和a2中的有效数据(其中数据块a11、a12、a23、a24为有效数据,数据块a13、a14、a21、a22为垃圾数据)提取出来而形成了新数据文件的过程,相当于将两个已有数据文件进行了合并生成了新数据文件,相应地,根据已有索引文件的引用关系,再生成新引用文件。

此外,由于对于共享状态下的数据文件和处于非共享状态下的数据文件的垃圾回收指标是不同的,因此,较为优选地,垃圾回收处理过程可以针对处于共享状态下的数据文件和处于非共享状态下的数据文件而分别执行。

其中,针对非共享状态下的数据文件的垃圾回收过程可以参照图7所示的处理方式,将有效数据块进行提取并组合成新数据文件。非共享状态下的数据文件的垃圾回收不涉及其他设备段或者设备。

共享状态下的数据文件的垃圾回收还会关联到其他设备段或者设备上的共享数据文件的处理,而在本发明实施例中,较为常见的共享数据文件的场景是设备快照和设备克隆。如图8和图9所示,其为本发明实施例的垃圾回收处理的过程示意图之二和之三,图8所示的状态为垃圾回收之前的原始设备和快照设备的状态,其中,y原始设备中的数据块a14、a22、a23、a24与快照设备中的数据块a14’、a22’、a23’、a24’通过硬链接的方式共享。其中,数据块a13、a14和数据块a13’、a14’在原始设备和快照设备中都没有被已有索引文件引用,可以确定为垃圾数据块。而数据块a22、a23、a24和数据块a22’、a23’、a24’由于至少在原始设备和快照设备的一方中被已有索引文件所引用,不能认定为是垃圾数据块。在确定了垃圾数据块后,就可以执行垃圾回收处理。如图9所示,其为经过垃圾回收处理后生成的新索引文件和新数据文件的状态。在垃圾回收后的原始设备和快照设备的新数据文件中,原有的硬链接共享关系依然存在。

在共享状态下的数据文件的回收过程中,当对原始设备(被执行快照的设备或者被执行克隆的设备)进行垃圾回收处理完成后,还要对快照设备或者克隆设备进行垃圾回收。由于数据块的重复性较高,因此,可以将对原始设备的垃圾回收生成的新数据文件直接应用于克隆设备或者快照设备上。具体地,可以将生成的新数据文件存入到热点缓存中,待对克隆设备或者快照设备执行垃圾回收处理时,直接使用该新数据文件。

本发明实施例的垃圾数据的回收处理的技术方案,能够实现在数据共享状态下的垃圾回收,在确定垃圾数据块的过程中,充分考虑共享数据块的直接和间接的数据引用关系,以准确地确定出垃圾数据块,并进一步执行垃圾回收处理。另外,在触发垃圾回收处理的垃圾回收指标上,针对共享状态和非共享状态的数据文件进行了区分对待,在共享状态的数据文件的垃圾回收指标中,加入了数据重复率的因素,从而更加合理地确定是否需要执行垃圾回收处理,以合理地使用cpu和io资源。此外,在本发明实施例的垃圾回收处理过程中,将数据文件进行了重组处理,将有效数据提取出来组合成新数据文件,然后再进行数据文件的替换,这种方式不受原有数据文件的限制,并且也符合lsbd设备的日志文件写入规则的基本要求。

下面通过一些具体实施例来进一步说明本发明的技术方案。

实施例一

如图10所示,其为本发明实施例的垃圾数据的回收处理方法的流程示意图之一,该图中示出了,针对设备中的处于共享状态的垃圾数据的处理,其包括:

s101:获取设备段中处于共享状态的至少一个第一数据文件。在lsbd架构中,数据文件的共享一般以硬链接的形式存在,如前面所介绍的,常见的应用场景为设备快照或者设备克隆的情形。

s102:获取第一数据文件对应的第一索引文件以及与第一数据文件具有共享关系的至少一个第二数据文件对应的第二索引文件。这里所说的第一索引文件是与第一数据文件在同一设备段中的索引文件。第二索引文件可以是快照设备或者克隆设备中的索引文件,第二索引文件并非直接指向第一数据文件,而是指向与第一数据文件具有共享关系的第二数据文件。

具体地,获取第二索引文件可以采用如下方式:

s1021:获取第一数据文件的第一文件名称,并根据该第一文件名称获取对应的文件id。基于硬链接(hardlink)机制,具有共享关系的多个数据文件可以拥有各自的文件名称,这些数据文件可以通过文件id来共享存储层中的同一份物理文件,也就是说文件id对应于存储层中的一份物理文件,而上层的数据文件通过各自的用户名与该物理文件对应的文件id相关联,从而建立硬链接的共享关系。

s1022:获取共享该文件id的全部第二数据文件的第二文件名称。基于硬链接(hardlink)的技术原理,通过文件id可以获取到具有共享关系的全部数据文件的文件名。

s1023:根据第二文件名称确定全部第二数据文件所在的一个或多个设备段,并从该一个或多个设备段中获取全部第二数据文件对应的全部第二索引文件。通过文件名进一步定位到所在设备段,这样就可以获取到相应的数据文件了。

s103:根据第一索引文件和第二索引文件,确定第一数据文件中的垃圾数据块。该步骤的处理可以进一步包括:

s1031:根据第一索引文件和第二索引文件,对第一数据文件和全部第二数据文件中的被引用的数据块和没有被引用的数据块进行标记;

s1032:如果在第一数据文件存在没有被引用的第一数据块,并且在全部第二数据文件中与该第一数据块具有共享关系的第二数据块均没有被引用,或者在全部第二数据文件中,不存在与该第一数据块具有共享关系的第二数据块,则将该第一数据块确定为垃圾数据块,否则,确定为非垃圾数据块。

在lsbd设备中,删除数据(可能由一个或多个数据块构成)的操作实际上是删除了针对该数据的引用关系,具体到数据块而言,在同一设备的同一设备段中,可能会通过删除或者修改索引文件,而放弃对某些数据块的引用,从而删除了该数据块,在该设备段中,没有被引用的数据块就称为垃圾数据块。不过,在存在共享关系的情况下,还需要考虑该被删除的数据块是否被其他设备或者其他设备段所共享,如果在被共享的其他设备或者设备段中,存在间接引用关系,则这个被删除的数据块仍然需要保留,不能作为垃圾数据回收。

此外,需要说明的是,lsbd系统中,可能会存在许多快照设备或者克隆设备等,这些快照设备或者克隆设备也会具有自身的生命周期,例如,有些快照设备的生命周期设定为一个月,超过一个月这个快照设备就可以全部删除了,而距离生命周期临近的快照设备被使用的可能性是极低的,因此,对于临近生命周期结束的共享数据文件就可以不参与到垃圾数据块的确认规则中。

举例来说,在对上述的第一数据文件中的数据块进行垃圾数据块的确认过程中,发现该第一数据文件存在10个具有共享关系的数据文件,而这10个数据文件中,有5个来自于生命周期将要结束的快照设备中,针对这种情形,可以只分析生命周期相对较长的5个快照设备中的数据文件对应的索引文件即可,而不用再考虑生命周期将要结束的快照设备中的数据文件,从而能够提高垃圾回收效率也能够节省一定的系统资源。

s104:执行第一垃圾回收处理。这里所说的第一垃圾回收处理是针对共享数据的垃圾回收处理,该垃圾回收处理可以针对一个数据文件也可以是多个数据文件,具体需要根据数据文件中的确定出的垃圾数据块的多少而定。

具体地,第一垃圾回收处理过程可以采用如下处理流程:

获取至少一个第一数据文件中垃圾数据块以外的至少一个有效数据块,使用有效数据块生成至少一个第三数据文件;

根据第一索引文件和第三数据文件,生成第三索引文件;

使用第三数据文件和第三索引文件替换第一数据文件和第一索引文件。具体的替换处理可以在将生成的第三数据文件和第三索引文件向分布式存储系统中导入(import)的过程来执行。

此外,由于共享状态下的数据文件的垃圾回收还会关联到其他设备段或者设备上的共享数据文件的处理,较为常见的共享数据文件的场景是设备快照和设备克隆。因此,在生成了第三数据文件后,还可以包括:

将第三数据文件存入热点缓存中,以用于在对第二数据文件执行垃圾处理时使用。这里的第二数据文件就是与原始的第一数据文件具有共享关系的数据文件,可以是快照设备或者克隆设备中的数据文件,当对快照设备或者克隆设备进行垃圾回收处理时,就不用再重新生成要替换的新数据文件了,可以从热点缓存中读取已有第三数据文件而进行重复利用,从而能够充分节省cpu和io资源。

进一步地,如图11所示,其为本发明实施例的垃圾数据的回收处理方法的流程示意图之二,在执行上述第一垃圾回收处理之前,还可以包括是否触发垃圾回收处理的判定过程,具体可以包括:

s103a:根据垃圾数据块的数据总量和第一数据文件的物理数据总量计算第一垃圾数据比例。需要说明的是这里所说的物理数据总量是针对一个数据文件来说的。

s103b:判断第一垃圾数据比例是否大于共享垃圾回收指标,如果大于,则执行步骤s104,以针对第一数据文件执行第一垃圾回收处理,否则,执行步骤s105:等待下一个垃圾回收处理周期,再次对垃圾数据块进行确定和垃圾回收指标的判定等。

其中,共享垃圾回收指标可以是动态指标,在静态垃圾回收指标(针对非共享状态数据文件的垃圾回收而设定的固定值,也就是前面提到的非共享垃圾回收指标)的基础上进行动态修正而获得,具体可以通过物理数据总量与逻辑数据总量之比来动态修正,因此,上述方法还可以包括确定共享垃圾回收指标的处理过程。具体地,确定共享垃圾回收指标的处理过程如下:

s103c:获取第一数据文件对应的逻辑数据总量。这里所说的逻辑数据总量包含了同一设备段内的索引文件对该第一数据文件中的数据块的引用数据量,也包含了其他设备段或者其他设备中基于共享数据文件而形成的间接引用的数据量。

s103d:根据物理数据总量与逻辑数据总量的比值,对用于非共享数据文件的静态垃圾回收指标进行修正,生成共享垃圾回收指标。具体的计算公式可以采用前面提及的式(1)。

由于计算共享状态下的数据文件的逻辑数据总量(主要是计算基于共享文件而产生的间接引用的逻辑数据量)的会占用较多的cpu以及io资源,为了节省资源使用和提高处理效率,可以在执行快照处理和/或克隆处理和/或垃圾回收处理的这些形成共享关系的过程中,在第一数据文件的属性值中,记录第一数据文件的逻辑数据总量,从而省去了重复计算逻辑数据量的过程。相应地,上述的获取第一数据文件对应的逻辑数据总量的处理可以包括:从第一数据文件的属性值中获取逻辑数据总量。

以上介绍了针对设备中的处于共享状态下的数据文件的垃圾回收处理过程,在设备的设备段中,还会存在非共享状态的数据文件,对于非共享状态的数据文件的垃圾回收处理,不需要考虑基于共享文件的间接引用关系,因此,相比针对共享状态的数据文件的垃圾回收处理要相对简单些。具体地,如图12所示,其为本发明实施例的垃圾数据的回收处理方法的流程示意图之三,针对非共享状态的数据文件垃圾回收处理流程如下:

s201:获取设备段中处于非共享状态的至少一个第四数据文件;

s202:根据与第四数据文件对应的第四索引文件,确定第四数据文件中的垃圾数据块;

s203:执行第二垃圾回收处理。

其中,该第二垃圾回收处理可以具体为:

获取第四数据文件中垃圾数据块以外的至少一个有效数据块,使用有效数据块生成至少一个第五数据文件;

根据与第四数据文件对应的第四索引文件和第五数据文件,生成第五索引文件;

使用第五数据文件和第五索引文件替换第四数据文件和第四索引文件。

此外,如图13所示,其为本发明实施例的垃圾数据的回收处理方法的流程示意图之四,在执行上述第二垃圾回收处理之前,还可以包括是否触发垃圾回收处理的判定过程,具体可以包括:

s202a:根据第四数据文件中的垃圾数据块的数据总量和第四数据文件的物理数据总量计算第二垃圾数据比例;

s202b:判断第二垃圾数据比例是否大于静态垃圾回收指标,如果是,则执行步骤s203,以进行第二垃圾回收处理,否则,执行步骤s204:等待下一个垃圾回收处理周期,再次对垃圾数据块进行确定和垃圾回收指标的判定等。

需要说明的是,上述的针对共享状态的数据文件的垃圾回收处理和针对非共享状态的数据文件的垃圾回收处理可以是并行执行的。

本发明实施例的垃圾数据的回收处理方法,实现了对共享数据文件的垃圾回收,在确定垃圾数据块的过程中,充分考虑共享数据块的直接和间接的数据引用关系,以准确地确定出垃圾数据块,并进一步执行垃圾回收处理。另外,在触发垃圾回收处理的垃圾回收指标上,针对共享状态和非共享状态的数据文件进行了区分对待,在共享状态的数据文件的垃圾回收指标中,加入了数据重复率的因素,从而更加合理地确定是否需要执行垃圾回收处理,以合理地使用cpu和io资源。

实施例二

如图14所示,其为本发明实施例的垃圾数据的回收处理方法的流程示意图之五,在本实施例中,着重说明,在确定了垃圾数据块后,所执行的垃圾回收处理流程。作为一种可实现方式,在本实施例中,垃圾回收的对象可以不区分处于共享状态的数据文件和非共享状态的数据文件,而是在确定了垃圾数据块后,对数据文件中的有效数据块进行提取,重组后形成新数据文件,然后进行替换操作。具体地,如图15所示,该处理流程包括:

s301:获取设备段中的至少一个已有数据文件中的至少一个有效数据块,使用有效数据块生成至少一个新数据文件,有效数据块为数据文件中垃圾数据块以外的数据块;

s302:根据已有数据文件对应的已有索引文件和新数据文件,生成与该新数据文件对应的新索引文件;

s303:使用新数据文件和新索引文件替换已有数据文件和已有索引文件。

在本发明实施例的垃圾回收处理方法,将数据文件进行了重组处理,将有效数据提取出来组合成新数据文件,然后再进行数据文件的替换,这种方式不受原有数据文件的限制,并且也符合lsbd设备的日志文件写入规则的基本要求。

实施例三

如图15所示,其为本发明实施例的垃圾数据的回收处理装置的结构示意图之一,该处理装置包括:

第一获取模块11,用于获取设备段中处于共享状态的至少一个第一数据文件;

第二获取模块12,用于获取第一数据文件对应的第一索引文件以及与第一数据文件具有共享关系的至少一个第二数据文件对应的第二索引文件。其中,该部分处理可以进一步包括:

获取第一数据文件的第一文件名称,并根据该第一文件名称获取对应的文件id;

获取共享该文件id的全部第二数据文件的第二文件名称;

根据第二文件名称确定全部第二数据文件所在的一个或多个设备段,并从该一个或多个设备段中获取全部第二数据文件对应的全部第二索引文件。

第一垃圾数据块确定模块13,用于根据第一索引文件和第二索引文件,确定第一数据文件中的垃圾数据块。其中,该部分处理可以进一步包括:

根据第一索引文件和第二索引文件,对第一数据文件和全部第二数据文件中的被引用的数据块和没有被引用的数据块进行标记;

如果在第一数据文件存在没有被引用的第一数据块,并且在全部第二数据文件中与该第一数据块具有共享关系的第二数据块均没有被引用,或者在全部第二数据文件中,不存在与该第一数据块具有共享关系的第二数据块,则将该第一数据块确定为垃圾数据块,否则,确定为非垃圾数据块。

第一垃圾回收处理模块14,用于执行第一垃圾回收处理。

进一步地,该装置还可以包括:

第一垃圾回收处理执行判定模块15,用于根据垃圾数据块的数据总量和第一数据文件的物理数据总量计算第一垃圾数据比例,并判断第一垃圾数据比例是否大于共享垃圾回收指标,如果大于,则指示第一垃圾回收处理模块,执行第一垃圾回收处理。

此外,还可以还包括:

共享垃圾回收指标确定模块16,用于获取第一数据文件对应的逻辑数据总量;根据物理数据总量与逻辑数据总量的比值,对用于非共享数据文件的静态垃圾回收指标进行修正,生成共享垃圾回收指标。

以上介绍了针对共享状态下的数据文件进行垃圾回收处理的相关模块,下面介绍一下针对非共享状态的数据文件进行垃圾回收处理的相关模块。

如图16所示,其为本发明实施例的垃圾数据的回收处理装置的结构示意图之二,在图15所示的装置的基础上,上述装置还可以包括(图16中未示出图15中的模块):

第三获取模块17,用于获取设备段中处于非共享状态的至少一个第四数据文件;

第二垃圾数据块确定模块18,用于根据与第四数据文件对应的第四索引文件,确定第四数据文件中的垃圾数据块;

第二垃圾回收处理模块19,用于执行第二垃圾回收处理。

进一步地,该装置还可以还包括:

第二垃圾回收处理执行判定模块20:用于根据第四数据文件中的垃圾数据块的数据总量和第四数据文件的物理数据总量计算第二垃圾数据比例;判断第二垃圾数据比例是否大于静态垃圾回收指标,如果是,则指示第二垃圾回收处理模块执行第二垃圾回收处理。

对于上述处理过程具体说明、技术原理详细说明以及技术效果详细分析在前面实施例中进行了详细描述,重复部分在此不再赘述。

实施例四

如图17所示,其为本发明实施例的垃圾数据的回收处理装置的结构示意图之三,该处理装置包括:

数据文件生成模块21,用于获取设备段中的至少一个已有数据文件中的至少一个有效数据块,使用有效数据块生成至少一个新数据文件,有效数据块为数据文件中垃圾数据块以外的数据块;

索引文件生成模块22,用于根据已有数据文件对应的已有索引文件和新数据文件,生成与该新数据文件对应的新索引文件;

文件替换模块23,用于使用新数据文件和新索引文件替换已有数据文件和已有索引文件。

对于上述处理过程具体说明、技术原理详细说明以及技术效果详细分析在前面实施例中进行了详细描述,重复部分在此不再赘述。

实施例四

前面实施例描述了垃圾数据的回收的处理流程及处理装置的结构,上述的方法和装置的功能可借助一种电子设备实现完成,如图18所示,其为本发明实施例的电子设备的结构示意图,具体包括:存储器110和处理器120。

存储器110,用于存储程序。

除上述程序之外,存储器110还可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。

存储器110可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。

处理器120,耦合至存储器110,用于执行存储器110中的程序,以用于执行如下处理:

获取设备段中处于共享状态的至少一个第一数据文件;

获取第一数据文件对应的第一索引文件以及与第一数据文件具有共享关系的至少一个第二数据文件对应的第二索引文件;

根据第一索引文件和第二索引文件,确定第一数据文件中的垃圾数据块,并执行第一垃圾回收处理。

处理还包括:

根据垃圾数据块的数据总量和第一数据文件的物理数据总量计算第一垃圾数据比例;

判断第一垃圾数据比例是否大于共享垃圾回收指标,如果大于,则针对第一数据文件执行第一垃圾回收处理。

其中,处理还可以包括:

获取第一数据文件对应的逻辑数据总量;

根据物理数据总量与逻辑数据总量的比值,对用于非共享数据文件的静态垃圾回收指标进行修正,生成共享垃圾回收指标。

其中,执行第一垃圾回收处理可以包括:

获取至少一个第一数据文件中垃圾数据块以外的至少一个有效数据块,使用有效数据块生成至少一个第三数据文件;

根据第一索引文件和第三数据文件,生成第三索引文件;

使用第三数据文件和第三索引文件替换第一数据文件和第一索引文件。

其中,执行第一垃圾回收处理还可以包括:

将第三数据文件存入热点缓存中,以用于在对第二数据文件执行垃圾处理时使用。

作为另外一种实施例方式,处理器120,耦合至存储器110,用于执行存储器110中的程序,以用于执行如下处理:

获取设备段中的至少一个已有数据文件中的至少一个有效数据块,使用有效数据块生成至少一个新数据文件,有效数据块为数据文件中垃圾数据块以外的数据块;

根据已有数据文件对应的已有索引文件和新数据文件,生成与该新数据文件对应的新索引文件;

使用新数据文件和新索引文件替换已有数据文件和已有索引文件。

对于上述处理过程具体说明、技术原理详细说明以及技术效果详细分析在前面实施例中进行了详细描述,重复部分在此不再赘述。

进一步,如图所示,电子设备还可以包括:通信组件130、电源组件140、音频组件150、显示器160等其它组件。图中仅示意性给出部分组件,并不意味着电子设备只包括图示组件。

通信组件130被配置为便于电子设备和其他设备之间有线或无线方式的通信。电子设备可以接入基于通信标准的无线网络,如wifi,2g或3g,或它们的组合。在一个示例性实施例中,通信组件130经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件130还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。

电源组件140,为电子设备的各种组件提供电力。电源组件140可以包括电源管理系统,一个或多个电源,及其他与为电子设备生成、管理和分配电力相关联的组件。

音频组件150被配置为输出和/或输入音频信号。例如,音频组件150包括一个麦克风(mic),当电子设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器110或经由通信组件130发送。在一些实施例中,音频组件150还包括一个扬声器,用于输出音频信号。

显示器160包括屏幕,其屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

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