垃圾回收方法及装置与流程

文档序号:11276386阅读:307来源:国知局
垃圾回收方法及装置与流程

本发明属于计算机领域,尤其涉及一种垃圾回收方法及装置。



背景技术:

现有的甲骨文互联网目录垃圾回收系统(oracleinternetdirectorygarbagecollectionframework)中支持对轻型目录访问协议(lightweightdirectoryaccessprotocol,简称ldap)类型的垃圾进行回收。而阿豆比adobeaem的垃圾回收系统针对数据包、临时文件和工作流负责这些类型的垃圾进行回收。再有worldserver的垃圾回收系统主要对数据库中产生的垃圾进行回收。

由上可知,现有的垃圾回收系统基本上都是针对具有相同领域特征的垃圾类型进行回收,对于多样性的异构垃圾回收场景不能通用。



技术实现要素:

本发明提供一种垃圾回收方法及装置,用于解决现有的垃圾回收系统均是针对具有相同领域特征的垃圾类型进行回收,并不能用于对多样性的异构垃圾的回收,通用性较差。

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

获取所有的业务项目所包括的目标业务类型;其中,不同的业务类型对应不同的回收组件;

确定与各目标业务类型所对应的目标回收组件;

利用各目标回收组件对所对应的目标业务类型的垃圾进行回收。

为了实现上述目的,本发明提供了一种垃圾回收装置,包括:

获取模块,用于获取所有的业务项目所包括的目标业务类型;其中,不同的业务类型对应不同的回收组件;

确定模块,用于确定与各目标业务类型所对应的目标回收组件;

回收模块,用于利用各目标回收组件对所对应的目标业务类型的垃圾进行回收。

为了实现上述目的,本发明提供了一种垃圾回收装置,包括:

扫描仪,用于获取所有的业务项目所包括的目标业务类型;其中,不同的业务类型对应不同的回收组件;

调度器,用于确定与各目标业务类型所对应的目标回收组件;

执行器,用于利用各目标回收组件对所对应的目标业务类型的垃圾进行回收。

本发明提供的垃圾回收方法及装置,通过获取所有的业务项目所包括的目标业务类型,确定与每个目标业务类型对应的目标回收组件,利用各目标回收组件对所对应的目标业务类型的垃圾进行回收。本发明中以业务类型为粒度构建的回收组件,为不同的业务类型对应不同的回收组件,基于这些组件进行垃圾回收,可以灵活地对业务类型进行扩展,可以实现对异构的业务类型的回收,通用性较高。

附图说明

图1为本发明实施例一的垃圾回收方法的流程示意图;

图2为本发明实施例二的垃圾回收方法的流程示意图;

图3为本发明实施例二的垃圾回收方法的应用示意图;

图4为本发明实施例三的垃圾回收装置的结构示意图;

图5为本发明实施例四的垃圾回收装置的结构示意图;

图6为本发明实施例五的垃圾回收装置的结构示意图。

具体实施方式

下面结合附图对本发明实施例提供的垃圾回收方法及装置进行详细描述。

实施例一

如图1所示,其为本发明实施例一的垃圾回收方法的流程示意图。 该垃圾回收方法包括以下步骤:

s101、获取所有的业务项目所包括的目标业务类型。

其中,不同的业务类型对应不同的回收组件。

在获取所有的业务项目所包括的目标业务类型之前,为不同的业务类型构建与其对应的回收组件。具体地,为每一个业务类型构建一个对应的回收组件,但是实际应用中,有些业务类型的垃圾回收逻辑是相同,为了节省资源,具有相同垃圾回收逻辑的业务类型可以复用一个回收组件,在这种情况下,为不同业务类型构建对应的回收组件的过程如下:

具体地,为具有相同的垃圾回收逻辑的所有业务类型构建一个与其对应的回收组件;其中具有相同的垃圾回收逻辑所有业务类型复用所述与其对应的回收组件。例如,业务类型a和业务类型b具有相同的垃圾回收逻辑,为业务类型a和业务类型b构建一个与其对应的回收组件1。业务类型a和业务类型b则复用该回收组件1。而业务类型d和业务类型g具有相同的垃圾回收逻辑,则为业务类型d和业务类型g构建一个回收组件5,业务类型d和业务类型g复用该回收组件5。

进一步地,由于除了具有相同的垃圾回收逻辑的所有业务类型之外的其他业务类型之间的垃圾回收逻辑均是不同的,则为每个其他业务类型分别构建与其对应的回收组件。例如,业务类型c、业务类型e、业务类型f称为其他业务类型,业务类型c、业务类型e以及业务类型f三者的垃圾回收逻辑均不同,则分别构建于业务类型c、业务类型e以及业务类型f对应的回收组件2、回收组件3以及回收组件4。

为了满足能够动态地对垃圾类型可扩展的需求,本实施例中,通过回收组件对垃圾回收逻辑进行封装,回收组件具有可热插拔的功能,基于回收组件就可以实现对垃圾类型进行灵活地扩展的目的。

进一步地,为了实现对大量异构的垃圾类型进行回收,本实施例中,针对不同的业务类型构建不同的回收组件,一般情况下,一个业务类型对应至少一个回收组件。本实施例中提供的垃圾回收方法中以业务类型为粒度构建的回收组件,提高了该方法的通用性,能够适用于大数据处理环境。

本实施例中,对所有的业务项目进行扫描,将扫描结果生成业务项目列表。其中,业务项目列表中包括所有的业务项目所包括的目标业务类型。在扫描获取到业务项目列表后,可以将业务项目列表进行存储。本实施例中,可以定时对所有的业务项目进行扫描,从而能自动地触发垃圾回收流程,而且用户可以根据业务场景设定回收周期。例如,用户可以通过前端界面配置定时的时间间隔,可以以每小时/每天/每周/每月等作为时间间隔进行定时,在启动扫描后,则相应地启动垃圾回收流程。可选地,可以通过用户手动操作,在前端界面上进行操作,启动扫描以完成垃圾回收流程。

s102、确定与各目标业务类型所对应的目标回收组件。

在获取到所有业务项目所包括的目标业务类型后,由于每个业务类型对应至少一个回收组件,则根据所包括的目标业务类型,确定与目标业务类型对应的目标回收组件。

s103、利用各目标回收组件对所对应目标业务类型的垃圾进行回收。

在获取到所有的目标回收组件后,利用各目标回收组件对所对应的目标业务类型产生的垃圾进行回收。具体地,将每个业务项目所包括的目标业务类型作为一个任务分配到对应的目标回收组件中,加载所有的目标回收组件,并为各目标回收组件分配所需的线程池,启动所有的目标回收组件使用所分配的线程池执行垃圾回收逻辑,各目标回收组件对所对应的目标业务类型的垃圾进行回收。其中,可以为目标回收组件分配多个线程池,当线程池为多个时,目标回收组件可以并行地执行垃圾回收逻辑对所对应的目标业务类型的垃圾进行回收。

本实施例提供的垃圾回收方法,通过获取所有的业务项目所包括的目标业务类型,确定与目标业务类型对应的目标回收组件,利用目标回收组件对目标业务类型的垃圾进行回收。本实施例中以业务类型为粒度构建的回收组件,为不同的业务类型对应不同的回收组件,基于这些组件进行垃圾回收,可以灵活地对业务类型进行扩展,可以实现对异构的业务类型的回收,通用性较高。

实施例二

如图2所示,其为本发明实施例二的垃圾回收方法的流程示意图。该垃圾回收方法包括以下步骤:

s201、对所有的业务项目进行扫描。

本实施例中,对所有的业务项目进行扫描,将扫描结果生成业务项目列表。其中,业务项目列表中包括所有的业务项目所包括的目标业务类型。在扫描获取到业务项目列表后,可以将业务项目列表进行存储。本实施例中,可以定时对所有的业务项目进行扫描,例如,用户可以通过前端界面配置定时的时间间隔,可以以每小时/每天/每周/每月等作为时间间隔进行定时,在启动扫描后,则相应地启动垃圾回收流程。可选地,可以通过用户手动操作,在前端界面上进行操作,启动扫描以完成垃圾回收流程。

s202、将扫描结果生成业务项目列表。

其中,业务项目列表中包括所有的业务项目所包括的目标业务类型。

将对所有业务项目进行扫描后,经过扫描后,能获取到扫描结果,其中扫描结果为每个业务项目所包括的业务类型,然后将扫描结果生成业务项目列表,也就是说,生成的业务项目列表中包括所有的业务项目所包括的目标业务类型。其中,生成的业务项目列表中包括业务项目的标识、目标业务类型的标识,以及业务项目与所包括的目标业务类型之间的对应关系。

s203、判断业务项目列表中是否存在新的目标业务类型。

具体地,将当前扫描后生成的项目业务列表与上一次扫描后生成的业务项目列表进行比较,以判断当前项目业务类别中是否存在新的目标业务类型,如果判断结果为是,执行步骤204;否则执行步骤205。

s204、获取与所述新的目标业务类型对应的新的目标回收组件。

在获取到新的目标业务类型后,将与该新的目标业务类型对应的新的目标回收组件添加到用于管理回收组件的设备上。其中,新的目标回收组件在添加之前,需要管理人员根据该目标业务类型的垃圾回收逻辑进行构建。

s205、根据业务项目列表中获取每个业务项目已删除的目标业务类 型。

具体地,将当前扫描生成的业务项目列表与上次扫描生成的业务项目列表进行比较,从而能够确定出业务项目列中每个业务项目已删除的目标业务类型。

s206、针对每个业务项目,判断已删除的目标业务类型对应的目标回收组件是否被所述业务项目列表中其他的目标业务类型所复用。

针对每一个业务项目,当确定出已删除的目标业务类型后,需要判断该已删除的目标业务类型对应的目标回收组件是否被业务项目列表中至少一个其他的目标目标业务类型所复用,此处将已删除的目标业务类型对应的目标回收组件称为待删除的目标回收组件。如果待删除的目标回收组件未被其他的业务类型所复用,则表明可以将待删除的目标回收组件进行删除,执行步骤207。

如果待删除的目标回收组件被其他的目标业务类型所复用,则表明当前不能删除该待删除的目标回收组件,继续维持该待删除的目标回收组件,执行步骤208。

s207、将已删除的目标业务类型对应的目标回收组件进行删除。

将已删除的目标业务类型对应的目标回收组件后,继续执行步骤208。

s208、为业务项目列表中其他的目标业务类型确定与其对应的目标回收组件。

进一步地,还需要为业务项目列表中除该新的目标业务类型和已删除的目标业务类型之外的其他的每个目标业务类型确定与其对应的目标回收组件。关于为目标业务类型确定与其对应的目标回收组件的相关内容,可参见上述实施例中相关内容的记载,此次不再赘述。

s209、利用各目标回收组件对所对应的目标业务类型的垃圾进行回收。

在为所有的目标业务类型确定了对应的目标回收组件后,利用各目标回收组件对所对应的目标业务类型的垃圾进行回收,具体过程,可参见上述实施例中相关内容的记载,此次不再赘述。

本实施例中,基于回收组件对垃圾进行回收,能适应现有大数据开放处理平台中对大量异构类型垃圾回收的要求,基于回收组件具有的热插拔功能,具有很强的动态扩展性,能够对产生的新业务类型的垃圾有效支持,从而适用于大数据处理环境。

s210、在利用各目标回收组件对所对应的目标业务类型的垃圾进行回收的同时监控垃圾回收进度,并将监控到的垃圾回收进度作为一个检查点。

s211、在垃圾回收的过程中出现断点后,利用与断点时间最近的所述检查点进行断点恢复。

本实施例中,为垃圾回收方法设置有快照功能,该快照功能定时触发。在利用回收组件回收各业务类型的垃圾的过程中,需要对垃圾回收进度进行监控,在触发了快照功能后,就可以记录当时时刻的垃圾回收进度,并将监控到的垃圾回收进度记为一个检查点,并将该检查点存储在磁盘中。当在垃圾回收的过程中,如果出现异常情况,导致垃圾回收的过程被中断,可以根据最近的检查点进行断点恢复。

本实施例提供的垃圾回收方法可以由图3所示的垃圾回收系统来完成。如图3所示,该垃圾回收系统包括:前端、管理器(manager)和处理器(processor)。其中,该垃圾回收系统的前端可以为人机交互模块,用于提供人机交互界面,用户可以基于该界面对该垃圾回收系统进行设置。例如,开始、关闭或者定时等。manager中包括扫描模块(scanner)、调度模块(scheduler)和故障转移模块(failover)。processor中包括多个节点(worker),每个worker上设置回收组件。其中,scanner对所有的业务项目进行扫描,能够得到业务项目列表。scheduler负责任务调度,可以获取scanner扫描的结果即业务项目列表,并将各业务项目中包括的业务类型作为任务分发给处理器中的对应的worker,scheduler还可以监控垃圾回收系统的运行状态,并能够获取垃圾回收的结果。

processor中的worker在被分配到与回收组件相应的业务类型后,worker可以执行设置的回收组件的具体回收逻辑。worker可以为回收组件分配多个线程池,当线程池为多个时,可以并行地执行回收组件的回 收逻辑,提高垃圾回收效率。

在对业务项目的垃圾回收的过程中,manager中故障转移模块会对垃圾回收进度进行监控,每隔一段时间将监控到的垃圾回收进度记为一个检查点(checkpoint),通过该检查点进行断点恢复。

为了更好地理解本实施例提供的垃圾回收方法,举例进行说明:

业务项目包括:淘宝、阿里巴巴、高德和支付宝等。

业务类型包括:实时查询、机器学习、流式计算、在线监控、离线计算等。

一个业务类型对应一个回收组件或者多个回收组件,各回收组件放置在垃圾回收系统中处理器的worker上。例如,实时查询对应一个回收组件,记为回收组件1,将该回收组件1设置在worker1上。机器学习对应2个回收组件,分别记为回收组件2和回收组件3,将回收组件2和回收组件3分别设置在worker2和worker3上。流式计算对应一个回收组件,记为回收组件4,将回收组件4设置在worker4上。在线监控对应一个回收组件,记为回收组件5,将回收组件4设置在worker5上以及离线计算对应三个回收组件,记为回收组件6、回收组件7和回收组件8,将回收组件6、回收组件7和回收组件8分别设置在worker6、worker7和worker8上。一个业务项目中包括多个目标业务类型,例如,高德业务项目包括实时查询和流式计算等目标业务类型。淘宝业务项目包括实时查询、流式计算和在线监控等目标业务类型。阿里巴巴业务项目包括业务类型实时查询、机器学习以及流失计算等目标业务类型。支付宝业务项目包括:实时查询、机器学习以及在线监控等目标业务类型。

当垃圾回收系统中的scanner对所有的业务项目进行扫描,得到每个业务项目包括的目标业务类型,将所有的业务项目扫描结果生成一个业务项目列表,scheduler根据业务项目列表获取与各业务项目相关的目标回收组件,然后将各业务项目中的目标业务类型作为任务分配到对应的worker上,worker基于目标回收组件的垃圾回收路基对对应的业务类型进行垃圾回收。

例如,高德业务项目包括实时查询和流式计算等目标业务类型,为 了对该业务项目的垃圾进行回收,需要调用与其对应的目标回收组件,其中目标回收组件包括:回收组件1和回收组件4。基于回收组件1和回收组件4对该业务项目的垃圾进行回收。其中,回收组件1用于回收实时查询的垃圾,而回收组件4回收流式计算的垃圾。该示例中,worker可以为目标回收组件分配多个线程池,通过多个线程池并行地执行目标回收组件,用于提高垃圾回收效率。

淘宝业务项目包括实时查询、流式计算和在线监控等目标业务类型,为了对该业务项目的垃圾进行回收,需要的目标回收组件包括:回收组件1、回收组件4和回收组件5。然后基于回收组件1、回收组件4和回收组件5对淘宝业务项目的垃圾进行回收。具体过程参见高德业务项目的处理过程,此处不再赘述。

当所有的业务项目中不再包括实时查询目标业务类型时,scheduler可以指示worker1将对应的回收组件1进行删除。当仅有一些业务项目不再包括实时查询目标业务类型时,该实时查询目标业务类型对应的回收组件1不能被删除。例如,当阿里巴巴业务项目不再包括实时查询目标业务类型,而淘宝仍然包括该实时查询目标业务类型,则该目标业务类型对应的回收组件1不能被删除。

当增加了新的目标业务类型时,需要添加该新的目标业务类型相应的目标回收组件。例如增加新的目标业务类型为离线计算时,相应地增加该离线计算目标业务的回收组件6,将该回收组件6放置到对应点worker上。

新增加的目标业务类型被用于淘宝业务项目上时,当扫描该淘宝业务项目时,就可以得到该淘宝业务项目包括实时查询、流式计算、在线监控和离线计算,相应地目标回收组件:回收组件1、回收组件4、回收组件5和回收组件6。

在对业务项目的垃圾回收的过程中,failover会对垃圾回收进度进行监控,每隔一段时间将监控到的垃圾回收进度记为一个检查点,通过该检查点进行断点恢复。例如,当在垃圾回收的过程中出现异常情况,导致垃圾回收过程被中断,重新运行后,可以从检查点中获取到被中断时 刻的垃圾回收进度,从该进度下开始继续回收垃圾,避免重复之前的操作。

实施例三

如图4所示,其为本发明实施例三的垃圾回收装置的结构示意图。该垃圾回收装置包括:构建模块10、获取模块11、确定模块12和回收模块13。

其中,构建模10,用于在所述获取模块获取所有的业务项目所包括的业务类型之前,为不同的业务类型构建对应的回收组件,其中,一个业务类型至少对应一个回收组件。

在获取所有的业务项目所包括的目标业务类型之前,为不同的业务类型构建与其对应的回收组件。具体地,为每一个业务类型构建一个对应的回收组件,但是实际应用中,有些业务类型的垃圾回收逻辑是相同,为了节省资源,具有相同垃圾回收逻辑的业务类型可以复用一个回收组件,构建模10为不同业务类型构建对应的回收组件的过程,可参见上述实施例中相关内容的记载,此处不再赘述。

获取模块11,用于获取所有的业务项目所包括的目标业务类型;其中,不同的业务类型对应不同的回收组件。

为了满足能够动态地对垃圾类型可扩展的需求,本实施例中,通过回收组件对垃圾回收逻辑进行封装,回收组件具有可热插拔的功能,基于回收组件就可以实现对垃圾类型进行灵活地扩展的目的。

进一步地,为了实现对大量异构的垃圾类型进行回收,本实施例中,针对不同的业务类型构建不同的回收组件,一般情况下,一个业务类型对应至少一个回收组件。本实施例中以业务类型为粒度构建的回收组件,提高通用性,能够适用于大数据处理环境。

本实施例中,获取模块11对所有的业务项目进行扫描,获取所有业务项目所包括的目标业务类型。

确定模块12,用于确定与各目标业务类型所对应的目标回收组件。

在获取模块11获取到所有业务项目所包括的目标业务类型后,由于每个业务类型对应至少一个回收组件,则确定模块12根据所包括的目标 业务类型,确定与目标业务类型对应的目标回收组件。

回收模块13,用于利用各目标回收组件对所对应的目标业务类型的垃圾进行回收。

在获取到目标回收组件后,回收模块13利用各目标回收组件对目标业务类型产生的垃圾进行回收。具体地,将每个业务项目所包括的目标业务类型作为一个任务分配到对应的目标回收组件中,加载所有的目标回收组件,并为各目标回收组件分配所需的线程池,启动所有的目标回收组件使用所分配的线程池执行垃圾回收逻辑,各目标回收组件对所对应的目标业务类型的垃圾进行回收。

本实施例提供的垃圾回收装置,通过获取所有的业务项目所包括的目标业务类型,确定与目标业务类型对应的目标回收组件,利用目标回收组件对目标业务类型的垃圾进行回收。本实施例中以业务类型为粒度构建的回收组件,为不同的业务类型对应不同的回收组件,基于这些组件进行垃圾回收,可以灵活地对业务类型进行扩展,可以实现对异构的业务类型的回收,通用性较高。

实施例四

如图5所示,其为本发明实施例四的垃圾回收装置的结构示意图。该垃圾回收装置除了包括上述实施例三中的构建模块10、获取模块11、确定模块12和回收模块13之外,还包括:监控模块14和断点恢复模块15。

构建模块10,具体用于为具有相同的垃圾回收逻辑的所有的业务类型,构建一个与其对应的回收组件,为其他的每个业务类型分别构建与其对应的回收组件;其中,所述具有相同的垃圾回收垃圾的所有的业务类型复用与其对应的回收组件。

本实施例中获取模块11一种可选地结构包括:扫描单元111和生成单元112。

其中,扫描单元111,用于对所有的业务项目进行扫描。

生成单元112,用于将扫描结果生成业务项目列表。

其中,所述业务项目列表中包括所有的业务项目所包括的所述目标 业务类型。

本实施例中确定模块12一种可选地结构包括:判断单元121、获取单元122、删除单元123和确定单元124。

其中,判断单元121,用于判断所述业务项目列表中是否存在新的目标业务类型。

获取单元122,用于在所述判断单元判断出存在所述新的目标业务类型时,获取与所述新的目标业务类型对应新的目标回收组件。

进一步地,获取单元121,还用于在所述判断单元判断出未存在所述新的目标业务类型时,根据所述业务项目列表中获取每个业务项目已删除的目标业务类型。

进一步地,判断单元122,还用于判断所述已删除的目标业务类型对应的的目标回收组件是否被所述业务项目列表中其他的目标业务类型所复用。

删除单元123,用于在所述判断单元判断所述已删除的业务类型对应的目标回收组件未被复用时,将所述已删除的业务类型对应的目标回收组件进行删除。

确定单元124,用于为所述业务项目列表中其他的目标业务类型确定与其对应的目标回收组件,其中所述其他的目标业务类型为所述业务项目列表中除所述新的目标业务类型和已删除的目标业务类型之外的目标业务类型。

本实施例中回收模块13一种可选地结构包括:分配单元131、加载单元132、线程分配单元133和执行单元134。

分配单元131,用于将每个业务项目所包括的目标业务类型作为一个任务分配到对应的所有目标回收组件中。

加载单元132,用于加载所有的目标回收组件。

线程分配单元133,用于为各目标回收组件分配所需的线程池。

执行单元134,用于启动各目标回收组件使用所分配的所述线程池执行所述垃圾回收逻辑对所对应的目标业务类型的垃圾进行回收。

监控模块14,用于在利用各目标回收组件对所对应的目标业务类型 的垃圾进行回收的过程中,监控垃圾回收进度并将监控到的所述垃圾回收进度作为为一个检查点。

断点恢复模块15,用于在垃圾回收的过程中出现断点后,利用与所述断点时间最近的所述检查点进行断点恢复。

上述实施例一和实施例二提供的垃圾回收方法可以运行在如图5所示的垃圾回收装置中。

本实施例中以业务类型为粒度构建的回收组件,为不同的业务类型对应不同的回收组件,基于这些组件进行垃圾回收,可以灵活地对业务类型进行扩展,可以实现对异构的业务类型的回收,通用性较高。

本实施例中,基于回收组件对垃圾进行回收,能适应现有大数据开放处理平台中对大量异构类型垃圾回收的要求,基于回收组件具有的热插拔功能,具有很强的动态扩展性,能够对产生的新业务类型的垃圾有效支持,从而适用于大数据处理环境。当在垃圾回收的过程中,如果出现异常情况,导致垃圾回收的过程被中断,可以根据最近的检查点进行断点恢复。

实施例五

如图6所示,其为本发明实施例五的垃圾回收装置的结构示意图。该垃圾回收装置包括:扫描仪21、调度器22和执行器23。

其中,扫描仪21,用于获取所有的业务项目所包括的目标业务类型;其中,不同的业务类型对应不同的回收组件。

调度器22,用于确定与各目标业务类型所对应的目标回收组件。

执行器23,用于利用各目标回收组件对所对应的目标业务类型的垃圾进行回收。

进一步地,执行器22,用于在所述扫描仪获取所有的业务项目所包括的业务类型之前,为不同的业务类型构建对应的回收组件,其中,一个业务类型至少对应一个回收组件。

执行器22,具体用于为具有相同的垃圾回收逻辑的所有的业务类型,构建一个与其对应的回收组件,为其他的每个业务类型分别构建与其对应的回收组件。

其中,所述具有相同的垃圾回收垃圾的所有的业务类型复用与其对应的回收组件。

扫描仪21,具体用于对所有的业务项目进行扫描,将扫描结果生成业务项目列表;其中,所述业务项目列表中包括所有的业务项目所包括的所述目标业务类型。

调度器22,具体用于在所述扫描仪生成所述业务项目列表后,用于判断所述业务项目列表中是否存在新的目标业务类型,以及在判断出存在所述新的目标业务类型时,获取与所述新的目标业务类型对应新的目标回收组件。

调度器23,还具体用于在判断出未存在所述新的目标业务类型时,根据所述业务项目列表中获取每个业务项目已删除的目标业务类型,以及判断所述已删除的目标业务类型对应的的目标回收组件是否被所述业务项目列表中其他的目标业务类型所复用,在判断所述已删除的业务类型对应的目标回收组件未被复用时,将所述已删除的业务类型对应的目标回收组件进行删除,以及为所述业务项目列表中其他的目标业务类型确定与其对应的目标回收组件,其中所述其他的目标业务类型为所述业务项目列表中除所述新的目标业务类型和已删除的目标业务类型之外的目标业务类型,并将每个业务项目所包括的目标业务类型作为一个任务分配给所述执行器。

执行器23,具体用于接收所述调度器分配的任务,将任务分配到对应的所有目标回收组件中,加载所有的目标回收组件,为各目标回收组件分配所需的线程池,以及启动各目标回收组件使用所分配的所述线程池执行所述垃圾回收逻辑对所对应的目标业务类型的垃圾进行回收。

该垃圾回收装置还包括:故障处理器24。

故障处理器24,用于在利用各目标回收组件对所对应的目标业务类型的垃圾进行回收的过程中,监控垃圾回收进度并将监控到的所述垃圾回收进度作为为一个检查点。

故障处理器24,还用于在垃圾回收的过程中出现断点后,利用与所述断点时间最近的所述检查点进行断点恢复。

上述实施例一和实施例二提供的垃圾回收方法可以运行在如图5所示的垃圾回收装置中。

本实施例中以业务类型为粒度构建的回收组件,为不同的业务类型对应不同的回收组件,基于这些组件进行垃圾回收,可以灵活地对业务类型进行扩展,可以实现对异构的业务类型的回收,通用性较高。

本实施例中,基于回收组件对垃圾进行回收,能适应现有大数据开放处理平台中对大量异构类型垃圾回收的要求,基于回收组件具有的热插拔功能,具有很强的动态扩展性,能够对产生的新业务类型的垃圾有效支持,从而适用于大数据处理环境。当在垃圾回收的过程中,如果出现异常情况,导致垃圾回收的过程被中断,可以根据最近的检查点进行断点恢复。

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

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

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