面向流式处理系统的内存对象管理方法及系统技术方案

技术编号:12693797 阅读:51 留言:0更新日期:2016-01-13 11:58
本发明专利技术提供一种面向流式处理系统的内存对象管理方法及系统,其中,面向流式处理系统的内存对象管理方法包括:检测内存中流数据对象的状态;若检测到流数据对象的状态为不活跃态,则将流数据对象从内存中移除,并将流数据对象移动到外部存储器。本发明专利技术提供的面向流式处理系统的内存对象管理方法及系统,能够避免有效因长期运行而造成大量不活跃的流数据对象长期占用内存,从而避免系统资源的浪费。

【技术实现步骤摘要】

本专利技术涉及分布式计算机领域,尤其涉及一种面向流式处理系统的内存对象管理方法及系统
技术介绍
随着互联网的持续发展和物联网的迅速崛起,流数据广泛出现在网络监控、传感器网络、航空航天、电子商务、智慧交通和智慧旅游等应用领域,其中,流数据是一组顺序、大量、快速、连续到达的数据序列。相比于传统的大数据,流数据以大量、快速、时变的数据流持续到达,由此产生了一个新的研究问题:实时流数据处理。—般情况,实时流数据处理是针对持续产生的流数据,根据应用需求快速建模,让用户实时地得到反馈,从而保证流数据的时效性。目前,由于流数据具有运行周期长、处理延迟低等需求和特点,在实时流数据处理过程中,需要在内存中保存大量计算参数、中间状态等流数据对象(Streaming Data Ob ject,简称SD0)。然而,在实时流数据处理过程中因长期运行大量流数据对象的使用并不活跃,并且大量不活跃的流数据对象长期占用内存。因此,目前在实时流数据处理过程中,因长期运行而造成大量不活跃的流数据对象长期占用内存,从而造成系统资源的浪费。
技术实现思路
本专利技术提供一种面向流式处理系统的内存对象管理方法及系统,能够避免有效因长期运行而造成大量不活跃的流数据对象长期占用内存,从而避免系统资源的浪费。本专利技术第一方面提供的面向流式处理系统的内存对象管理方法,包括:检测内存中SD0的状态;其中,SD0的状态包括:SD0的不活跃态,SD0的不活跃态指的是SD0在预设时间内没有被访问或者是内存中所有SD0的数量达到第一预设阈值时SD0是内存中最近最少访问的;若检测到SD0的状态为不活跃态,则将SD0从内存中移除,并将SD0移动到外部存储器。本专利技术第二方面提供的面向流式处理系统的内存对象管理系统,包括:检测模块,用于检测内存中SD0的状态;其中,SD0的状态包括:SD0的不活跃态,SD0的不活跃态指的是SD0在预设时间内没有被访问或者是内存中所有SD0的数量达到第一预设阈值时SD0是内存中最近最少访问的;处理模块,用于若检测到SD0的状态为不活跃态,则将SD0从内存中移除,并将SD0移动到外部存储器。本专利技术提供的面向流式处理系统的内存对象管理方法及系统,通过检测内存中SD0的状态,若检测到SD0的状态为不活跃态,则将SD0从内存中移除,并将SD0移动到外部存储器,实现自动检测内存中不活跃的流数据对象,避免了在实时流数据处理过程中,因长期运行而造成大量不活跃的流数据对象长期占用内存,从而避免了系统资源的浪费。【附图说明】为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例一提供的面向流式处理系统的内存对象管理方法流程图;图2为本专利技术实施例一提供的SD0的生命周期的状态转换图;图3为本专利技术实施例二提供的面向流式处理系统的内存对象管理方法流程图;图4为本专利技术实施例三提供的面向流式处理系统的内存对象管理方法流程图;图5为本专利技术实施例一提供的SD0滑动窗口示意图;图6为本专利技术实施例一提供的面向流式处理系统的内存对象管理系统结构示意图。【具体实施方式】为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。图1为本专利技术实施例一提供的面向流式处理系统的内存对象管理方法流程图。如图1所示,本专利技术实施例提供的内存对象管理方法,包括:S101:检测内存中SD0的状态。其中,SD0的状态包括:SD0的不活跃态,SD0的不活跃态指的是SD0在预设时间内没有被访问或者是内存中所有SD0的数量达到第一预设阈值时SD0是内存中最近最少访问的。需要说明的是,本专利技术实施例提供的面向流式处理系统的内存对象管理方法的管理对象可以是系统中的任何Java对象以及用户的自定义对象,但对于自定义对象,用户须为其提供相应的序列化方法。本专利技术实施例提供的面向流式处理系统(简称流式系统)的内存对象管理方法能够自动检测不活跃对象,并将其持久化到可靠存储,防止因不必要的内存占用而浪费内存资源;当对象恢复活跃时,能够较快地恢复内存状态,正常地为流式系统提供服务。为方便叙述,本专利技术实施例将流式处理系统中的管理对象统称为流数据对象(Streaming Data Object,简称SD0)。流式系统使用SD0容器组织和管理SDO,SD0容器功能包括SD0组织和SD0生命周期管理等,将SD0容器集成到流式处理系统JStorm中,实现流式任务的数据对象管理。其中,JStorm是目前安装和使用最多的流式处理系统,能够提供分布式、低延迟、高吞吐的数据处理服务,其中JStorm是一个Java对象到关系数据库的映射工具。具体的,本专利技术实施例中将每个SD0分为三种状态:不存在、活跃态和不活跃态。不存在指的是SDO还没有被实施化,不在内存中。活跃态指的是流式系统可正常且经常使用SD0,SD0在内存中经常被访问。不活跃态指的是流式系统基本不使用SD0,也即,使用上不活跃的SDO,SD0在预设时间内没有被访问或者是内存中所有SD0的数量达到第一预设阈值时SD0是内存中最近最少访问的。S102:若检测到SD0的状态为不活跃态,则将SD0从内存中移除,并将SD0移动到外部存储器。其中,本专利技术实施例将检测到的不活跃态的SD0从内存中移除,并将SD0移动到外部存储器。需要说明的是,将SD0从内存中移除之前,释放SD0持有的所有资源。将SD0移动到外部存储器指的是将SD0序列化、持久化到外部存储器。具体的,本专利技术实施例为数据对象提供生命周期管理,防止不活跃数据对象占用内存。每个SD0的生命周期是在不存在、活跃态和不活跃态三个状态间的流动,图2为本专利技术实施例一提供的SD0的生命周期的状态转换图,如图2所示,SD0的生命周期的状态转换具体的存在以下情况:不存在到活跃态:当流式系统用户创建一个新的SD0实例时,SD0的生命周期开始,SD0由不存在转换到活跃态,SD0初始化后,SD0保存在内存中开始被流式系统使用,此时,SD0从不存在转换到活跃态。活跃态到不活跃态:SD0保存在内存中开始被流式系统使用后,对SD0进行实时检测,若检测到SD0在预设时间内没有被访问或者是内存中所有SD0的数量达到第一预设阈值时SD0是内存中最近最少访问的,SD0处于不活跃态,此时,SD0由活跃态转换到不活跃??τ ο不活跃态到不存在:当将不活跃态的SD0从内存中移除时,此时,SD0由不活跃态转换到不存在。活跃态到不存在:需要说明的是当前第1页1 2 3 本文档来自技高网...

【技术保护点】
一种面向流式处理系统的内存对象管理方法,其特征在于,包括:检测内存中流数据对象SDO的状态;其中,所述SDO的状态包括:所述SDO的不活跃态,所述SDO的不活跃态指的是所述SDO在预设时间内没有被访问或者是内存中所有SDO的数量达到第一预设阈值时所述SDO是内存中最近最少访问的;若检测到所述SDO的状态为不活跃态,则将所述SDO从内存中移除,并将所述SDO移动到外部存储器。

【技术特征摘要】

【专利技术属性】
技术研发人员:林学练王家兴张明明徐煦申阳
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1