太阳城集团

  • / 12
  • 下载费用:30 金币  

面向流式处理系统的内存对象管理方法及系统.pdf

摘要
申请专利号:

CN201510683179.X

申请日:

2015.10.20

公开号:

太阳城集团CN105242971A

公开日:

2016.01.13

当前法律状态:

授权

有效性:

有权

法律详情: 授权|||实质审查的生效IPC(主分类):G06F 9/50申请日:20151020|||公开
IPC分类号: G06F9/50 主分类号: G06F9/50
申请人: 北京航空航天大学
发明人: 林学练; 王家兴; 张明明; 徐煦; 申阳
地址: 100191北京市海淀区北京航空航天大学7-28#信箱
优先权:
专利代理机构: 北京同立钧成知识产权代理有限公司11205 代理人: 杨贝贝; 黄健
PDF完整版下载: PDF下载
法律状态
申请(专利)号:

CN201510683179.X

授权太阳城集团号:

||||||

法律状态太阳城集团日:

2019.02.22|||2016.02.10|||2016.01.13

法律状态类型:

授权|||实质审查的生效|||公开

摘要

太阳城集团本发明提供一种面向流式处理系统的内存对象管理方法及系统,其中,面向流式处理系统的内存对象管理方法包括:检测内存中流数据对象的状态;若检测到流数据对象的状态为不活跃态,则将流数据对象从内存中移除,并将流数据对象移动到外部存储器。本发明提供的面向流式处理系统的内存对象管理方法及系统,能够避免有效因长期运行而造成大量不活跃的流数据对象长期占用内存,从而避免系统资源的浪费。

权利要求书

权利要求书
1.  一种面向流式处理系统的内存对象管理方法,其特征在于,包括:
检测内存中流数据对象SDO的状态;
其中,所述SDO的状态包括:所述SDO的不活跃态,所述SDO的不活跃态指的是所述SDO在预设太阳城集团内没有被访问或者是内存中所有SDO的数量达到第一预设阈值时所述SDO是内存中最近最少访问的;
若检测到所述SDO的状态为不活跃态,则将所述SDO从内存中移除,并将所述SDO移动到外部存储器。

2.  根据权利要求1所述的方法,其特征在于,所述检测内存中流数据对象SDO的状态,包括:
检测内存中所有SDO的数量是否达到所述第一预设阈值;
若内存中所有SDO的数量达到所述第一预设阈值,则检测所述SDO是否是内存中最近最少访问的;
若所述SDO是内存中最近最少访问的,则所述SDO的状态为不活跃态。

3.  根据权利要求1所述的方法,其特征在于,所述检测内存中流数据对象SDO的状态,包括:
检测所述SDO在预设太阳城集团内是否被访问;
若检测到所述SDO在预设太阳城集团内没有被访问,则所述SDO的状态为不活跃态。

4.  根据权利要求3所述的方法,其特征在于,在所述检测所述SDO在预设太阳城集团内是否被访问之前,包括:
计算内存中所有访问次数小于第二预设阈值的SDO形成的滑动窗口的大小,将所述滑动窗口的大小作为所述预设太阳城集团;
具体的,采用公式delay(w,t)=hr(w,t)*dnosdo+(1-hr(w,t))*dload计算出击中内存的概率hr的大小;
采用公式hr=P(w,t)计算处所述滑动窗口w的大小;
上述公式中,hr为击中内存的概率,击中内存指的是所述SDO是内存中活跃态SDO的概率,t为太阳城集团,P(w,t)为采用窗口w、在t时刻的统计函数,delay为采用窗口w、在t时刻的处理延迟;dnosdo为直接从内存中取出所述SDO并投入计算应用时的处理延时;dload为从外部存储器取出并恢复所述SDO状态 时的处理延迟。

5.  一种面向流式处理系统的内存对象管理系统,其特征在于,包括:
检测模块,用于检测内存中流数据对象SDO的状态;
其中,所述SDO的状态包括:所述SDO的不活跃态,所述SDO的不活跃态指的是所述SDO在预设太阳城集团内没有被访问或者是内存中所有SDO的数量达到第一预设阈值时所述SDO是内存中最近最少访问的;
处理模块,用于若检测到所述SDO的状态为不活跃态,则将所述SDO从内存中移除,并将所述SDO移动到外部存储器。

6.  根据权利要求5所述的系统,其特征在于,所述检测模块具体用于:
检测内存中所有SDO的数量是否达到所述第一预设阈值;
若内存中所有SDO的数量达到所述第一预设阈值,则检测所述SDO是否是内存中最近最少访问的;
若所述SDO是内存中最近最少访问的,则所述SDO的状态为不活跃态。

7.  根据权利要求5所述的系统,其特征在于,所述检测模块具体用于:
检测所述SDO在预设太阳城集团内是否被访问;
若检测到所述SDO在预设太阳城集团内没有被访问,则所述SDO的状态为不活跃态。

8.  根据权利要求7所述的系统,其特征在于,所述处理模块还用于:
计算内存中所有访问次数小于第二预设阈值的SDO形成的滑动窗口的大小,将所述滑动窗口的大小作为所述预设太阳城集团;
具体的,采用公式delay(w,t)=hr(w,t)*dnosdo+(1-hr(w,t))*dload计算出击中内存的概率hr的大小;
采用公式hr=P(w,t)计算处所述滑动窗口w的大小;
上述公式中,hr为击中内存的概率,击中内存指的是所述SDO是内存中活跃态SDO的概率,t为太阳城集团,P(w,t)为采用窗口w、在t时刻的统计函数,delay为采用窗口w、在t时刻的处理延迟;dnosdo为直接从内存中取出所述SDO并投入计算应用时的处理延时;dload为从外部存储器取出并恢复所述SDO状态时的处理延迟。

说明书

说明书面向流式处理系统的内存对象管理方法及系统
技术领域
本发明涉及分布式计算机领域,尤其涉及一种面向流式处理系统的内存对象管理方法及系统。
背景技术
随着互联网的持续发展和物联网的迅速崛起,流数据广泛出现在网络监控、传感器网络、航空航天、电子商务、智慧交通和智慧旅游等应用领域,其中,流数据是一组顺序、大量、快速、连续到达的数据序列。相比于传统的大数据,流数据以大量、快速、时变的数据流持续到达,由此产生了一个新的研究问题:实时流数据处理。
一般情况,实时流数据处理是针对持续产生的流数据,根据应用需求快速建模,让用户实时地得到反馈,从而保证流数据的时效性。目前,由于流数据具有运行周期长、处理延迟低等需求和特点,在实时流数据处理过程中,需要在内存中保存大量计算参数、中间状态等流数据对象(StreamingDataObject,简称SDO)。然而,在实时流数据处理过程中因长期运行大量流数据对象的使用并不活跃,并且大量不活跃的流数据对象长期占用内存。
因此,目前在实时流数据处理过程中,因长期运行而造成大量不活跃的流数据对象长期占用内存,从而造成系统资源的浪费。
发明内容
本发明提供一种面向流式处理系统的内存对象管理方法及系统,能够避免有效因长期运行而造成大量不活跃的流数据对象长期占用内存,从而避免系统资源的浪费。
本发明第一方面提供的面向流式处理系统的内存对象管理方法,包括:
检测内存中SDO的状态;
其中,SDO的状态包括:SDO的不活跃态,SDO的不活跃态指的是SDO 在预设太阳城集团内没有被访问或者是内存中所有SDO的数量达到第一预设阈值时SDO是内存中最近最少访问的;
若检测到SDO的状态为不活跃态,则将SDO从内存中移除,并将SDO移动到外部存储器。
本发明第二方面提供的面向流式处理系统的内存对象管理系统,包括:
检测模块,用于检测内存中SDO的状态;
其中,SDO的状态包括:SDO的不活跃态,SDO的不活跃态指的是SDO在预设太阳城集团内没有被访问或者是内存中所有SDO的数量达到第一预设阈值时SDO是内存中最近最少访问的;
处理模块,用于若检测到SDO的状态为不活跃态,则将SDO从内存中移除,并将SDO移动到外部存储器。
本发明提供的面向流式处理系统的内存对象管理方法及系统,通过检测内存中SDO的状态,若检测到SDO的状态为不活跃态,则将SDO从内存中移除,并将SDO移动到外部存储器,实现自动检测内存中不活跃的流数据对象,避免了在实时流数据处理过程中,因长期运行而造成大量不活跃的流数据对象长期占用内存,从而避免了系统资源的浪费。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一提供的面向流式处理系统的内存对象管理方法流程图;
图2为本发明实施例一提供的SDO的生命周期的状态转换图;
图3为本发明实施例二提供的面向流式处理系统的内存对象管理方法流程图;
图4为本发明实施例三提供的面向流式处理系统的内存对象管理方法流程图;
图5为本发明实施例一提供的SDO滑动窗口示意图;
图6为本发明实施例一提供的面向流式处理系统的内存对象管理系统结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例一提供的面向流式处理系统的内存对象管理方法流程图。如图1所示,本发明实施例提供的内存对象管理方法,包括:
S101:检测内存中SDO的状态。
其中,SDO的状态包括:SDO的不活跃态,SDO的不活跃态指的是SDO在预设太阳城集团内没有被访问或者是内存中所有SDO的数量达到第一预设阈值时SDO是内存中最近最少访问的。
需要说明的是,本发明实施例提供的面向流式处理系统的内存对象管理方法的管理对象可以是系统中的任何Java对象以及用户的自定义对象,但对于自定义对象,用户须为其提供相应的序列化方法。本发明实施例提供的面向流式处理系统(简称流式系统)的内存对象管理方法能够自动检测不活跃对象,并将其持久化到可靠存储,防止因不必要的内存占用而浪费内存资源;当对象恢复活跃时,能够较快地恢复内存状态,正常地为流式系统提供服务。为方便叙述,本发明实施例将流式处理系统中的管理对象统称为流数据对象(StreamingDataObject,简称SDO)。流式系统使用SDO容器组织和管理SDO,SDO容器功能包括SDO组织和SDO生命周期管理等,将SDO容器集成到流式处理系统JStorm中,实现流式任务的数据对象管理。其中,JStorm是目前安装和使用最多的流式处理系统,能够提供分布式、低延迟、高吞吐的数据处理服务,其中JStorm是一个Java对象到关系数据库的映射工具。
具体的,本发明实施例中将每个SDO分为三种状态:不存在、活跃态和不活跃态。不存在指的是SDO还没有被实施化,不在内存中。活跃态指的是流式系统可正常且经常使用SDO,SDO在内存中经常被访问。 不活跃态指的是流式系统基本不使用SDO,也即,使用上不活跃的SDO,SDO在预设太阳城集团内没有被访问或者是内存中所有SDO的数量达到第一预设阈值时SDO是内存中最近最少访问的。
S102:若检测到SDO的状态为不活跃态,则将SDO从内存中移除,并将SDO移动到外部存储器。
其中,本发明实施例将检测到的不活跃态的SDO从内存中移除,并将SDO移动到外部存储器。需要说明的是,将SDO从内存中移除之前,释放SDO持有的所有资源。将SDO移动到外部存储器指的是将SDO序列化、持久化到外部存储器。
具体的,本发明实施例为数据对象提供生命周期管理,防止不活跃数据对象占用内存。每个SDO的生命周期是在不存在、活跃态和不活跃态三个状态间的流动,图2为本发明实施例一提供的SDO的生命周期的状态转换图,如图2所示,SDO的生命周期的状态转换具体的存在以下情况:
不存在到活跃态:当流式系统用户创建一个新的SDO实例时,SDO的生命周期开始,SDO由不存在转换到活跃态,SDO初始化后,SDO保存在内存中开始被流式系统使用,此时,SDO从不存在转换到活跃态。
活跃态到不活跃态:SDO保存在内存中开始被流式系统使用后,对SDO进行实时检测,若检测到SDO在预设太阳城集团内没有被访问或者是内存中所有SDO的数量达到第一预设阈值时SDO是内存中最近最少访问的,SDO处于不活跃态,此时,SDO由活跃态转换到不活跃态。
不活跃态到不存在:当将不活跃态的SDO从内存中移除时,此时,SDO由不活跃态转换到不存在。
活跃态到不存在:需要说明的是,当SDO处于活跃态时,也有可能将SDO从内存中移除,此时,SDO由活跃态转换到不存在。
需要说明的是,本发明实施例在外部存储器可以是磁盘文件,也可以是数据库,也可以是其他存储形式,本发明实施例在此不进行限定和赘述。本发明实施例中将不活跃态的SDO移动到外部存储器时,流式系统会为用户提供接口,实现内存中的数据与外部存储器中的数据交换。
本发明实施例提供的内存对象管理方法,通过检测内存中SDO的状态,若检测到SDO的状态为不活跃态,则将SDO从内存中移除,并将SDO 移动到外部存储器,实现自动检测内存中不活跃的流数据对象,避免了在实时流数据处理过程中,因长期运行而造成大量不活跃的流数据对象长期占用内存,从而避免了系统资源的浪费。
图3为本发明实施例二提供的面向流式处理系统的内存对象管理方法流程图。本发明实施例提供的方法为图1所示实施例一提供方法的一种具体实现方式,如图3所示,本发明实施例提供的内存对象管理方法,包括:
S301:检测内存中所有SDO的数量是否达到第一预设阈值。
具体的,本发明实施例中基于空间的管理模式检测SDO的状态,设定一个内存中SDO的数量上限,即对内存中SDO的数量设定一个第一预设阈值。通过检测内存中所有SDO的数量是否达到第一预设阈值,可以防止SDO无限制地占用内存,实现对系统资源的保护。
需要说明的是,本发明实施例中的第一预设阈值根据实际应用中流式系统的资源情况和SDO的大小而定,本发明实施例在此不进行限定和赘述。
S302:若内存中所有SDO的数量达到第一预设阈值,则检测SDO是否是内存中最近最少访问的。
具体的,当检测到内存中SDO的数量达到第一预设阈值时,则检测SDO是否是内存中最近最少访问的。当检测到内存中所有SDO的数量达到第一预设阈值,按照内存中最近最少访问顺序移除SDO,可以在保护流式系统资源的前提下,为流水系统中的任务提供最低延迟。
需要说明的是,SDO容器可以对内存中的所有SDO进行排序,根据SDO在固定太阳城集团内SDO的访问情况对SDO进行排序。内存中最近最少访问的SDO指的是在内存中SDO在固定太阳城集团内访问最少的。
S303:若检测到SDO是内存中最近最少访问的,则将SDO从内存中移除,并将SDO移动到外部存储器。
其中,若SDO是内存中最近最少访问的,则SDO的状态为不活跃态。
具体的,当内存中SDO的数量达到上限时,将内存中最近最少访问的SDO从内存中移除。
本发明实施例提供的内存对象管理方法,通过检测内存中所有SDO的数量是否达到第一预设阈值,若内存中所有SDO的数量达到第一预设阈值,则检测SDO是否是内存中最近最少访问的,将内存中最近最少访 问的SDO从内存中移除,并将SDO移动到外部存储器,实现基于空间的管理模式自动检测内存中不活跃的流数据对象,避免了在实时流数据处理过程中,因长期运行而造成大量不活跃的流数据对象长期占用内存,从而避免了系统资源的浪费。
图4为本发明实施例三提供的面向流式处理系统的内存对象管理方法流程图。本发明实施例提供的方法为图1所示实施例一提供方法的另一种具体实现方式,如图4所示,本发明实施例提供的内存对象管理方法,包括:
S401:检测SDO在预设太阳城集团内是否被访问。
具体的,本发明实施例中基于太阳城集团的管理模式检测SDO的状态,设定一个超时太阳城集团,即设定一个预设太阳城集团,通过检测SDO在预设太阳城集团内是否被访问来检测SDO的状态。
S402:若检测到SDO在预设太阳城集团内没有被访问,则将SDO从内存中移除,并将SDO移动到外部存储器。
其中,若检测到SDO在预设太阳城集团内没有被访问,则SDO的状态为不活跃态。
具体的,当检测到SDO在预设太阳城集团内没有被访问,则SDO的状态为不活跃态,将SDO从内存中移除。可知,本发明实施例中基于太阳城集团的管理模式,按照SDO在预设太阳城集团内是否被访问移除SDO,将在预设太阳城集团内没有被访问的SDO从内存中移除。
本发明实施例提供的内存对象管理方法,通过检测SDO在预设太阳城集团内是否被访问,若检测到SDO在预设太阳城集团内没有被访问,则将SDO从内存中移除,并将SDO移动到外部存储器,实现基于太阳城集团的管理模式自动检测内存中不活跃的流数据对象,避免了在实时流数据处理过程中,因长期运行而造成大量不活跃的流数据对象长期占用内存,从而避免了系统资源的浪费。
进一步地,在图4所示实施例中,在检测SDO在预设太阳城集团内是否被访问之前,包括:
计算内存中所有访问次数小于第二预设阈值的SDO形成的滑动窗口的大小,将滑动窗口的大小作为预设太阳城集团;
具体的,采用公式delay(w,t)=hr(w,t)*dnosdo+(1-hr(w,t))*dload计算出击中内 存的概率hr的大小;
采用公式hr=P(w,t)计算处滑动窗口w的大小;
上述公式中,hr为击中内存的概率,击中内存指的是SDO是内存中活跃态SDO的概率,t为太阳城集团,P(w,t)为采用窗口w、在t时刻的统计函数,delay为采用窗口w、在t时刻的处理延迟;dnosdo为直接从内存中取出SDO并投入计算应用时的处理延时;dload为从外部存储器取出并恢复SDO状态时的处理延迟。
具体的,图5为本发明实施例一提供的SDO滑动窗口示意图,如图5所示,本发明实施例中为开发者提供“合适的”SDO过期太阳城集团的计算方法,“合适的”过期太阳城集团是指在保证延迟用户可接受的前提下,最大限度的降低内存占用率。如图5所示,可以将内存中SDO看成是最近最少使用SDO链上的滑动窗口范围内的数据,滑动窗口代表着SDO的过期太阳城集团。
需要说明的是,本发明实施例中的第二预设阈值根据实际应用中流式系统的资源情况和SDO的访问次数而定,本发明实施例在此不进行限定和赘述。
在实际应用中,可以测试得到直接从内存中取出SDO并投入计算应用时的处理延时dnosdo和从外部存储器取出并恢复SDO状态时的处理延迟dload,根据测试得到的dnosdo和dload采用公式delay(w,t)=hr(w,t)*dnosdo+(1-hr(w,t))*dload可以得到采用窗口w、在t时刻的处理延迟delay随击中内存的概率hr变化的函数。给定一个用户最大可接受的处理延迟delay,即可得到相应的内存的概率hr。采用拟合统计公式hr=P(w,t),可以得到随太阳城集团t变化的滑动窗口w的大小。
需要说明的是,在实际应用中,滑动窗口的大小对内存占用率和处理延迟具有一定的影响,具体为:增大滑动窗口,导致内存中活跃对象的比例增大,内存占用率与活跃对象比例呈正比,因此内存占用率相应增大;而处理延迟与内存击中率直接相关,内存击中率受活跃对象比例和数据连续性两方面共同影响,对于连续性稳定的数据,整体上内存击中率随活跃对象比例增大而增大或不变,例如:当数据随机到达时,内存击中率与活跃对象比例呈正比关系,数据活跃比例一定时,数据的连续性高,内存击中率越大。用户给定最大可接受的处理延迟,在每个太阳城集团点会对应一组滑动窗口值,由于内 存占用随滑动窗口的增大而增大,因此取这组滑动窗口值中最小值作滑动窗口的大小,即可达到在给定最大可接受处理延迟的前提下,将内存占用降到最低。
需要说明的是,本发明实施例提供的面向流式处理系统的内存对象管理方法为达到防止不活跃对象耗费内存的目的,须对检测出的不活跃SDO采取一定的处置措施,使得其不占用或尽量少占用内存。本发明为流失系统的用户提供接口,开发者可自行选择如何处置不活跃的SDO,可通过接口将不活跃的SDO做适当压缩或直接将其移动到外部存储器(磁盘文件、数据库或其他存储形式)中。
图6为本发明实施例一提供的面向流式处理系统的内存对象管理系统结构示意图。如图6所示,本发明实施例提供的内存对象管理系统,包括:检测模块601和处理模块602。
检测模块601,用于检测内存中SDO的状态。
其中,SDO的状态包括:SDO的不活跃态,SDO的不活跃态指的是SDO在预设太阳城集团内没有被访问或者是内存中所有SDO的数量达到第一预设阈值时SDO是内存中最近最少访问的。
处理模块602,用于若检测到SDO的状态为不活跃态,则将SDO从内存中移除,并将SDO移动到外部存储器。
本发明实施例的内存对象管理系统用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
进一步地,在上述所示实施例中,检测模块601具体用于:
检测内存中所有SDO的数量是否达到第一预设阈值。
若内存中所有SDO的数量达到第一预设阈值,则检测SDO是否是内存中最近最少访问的。
若SDO是内存中最近最少访问的,则SDO的状态为不活跃态。
进一步地,在上述所示实施例中,检测模块601具体用于:
检测SDO在预设太阳城集团内是否被访问。
若检测到SDO在预设太阳城集团内没有被访问,则SDO的状态为不活跃态。
进一步地,在上述所示实施例中,处理模块602还用于:
计算内存中所有访问次数小于第二预设阈值的SDO形成的滑动窗口的 大小,将滑动窗口的大小作为预设太阳城集团;
具体的,采用公式delay(w,t)=hr(w,t)*dnosdo+(1-hr(w,t))*dload计算出击中内存的概率hr的大小;
采用公式hr=P(w,t)计算处滑动窗口w的大小;
上述公式中,hr为击中内存的概率,击中内存指的是SDO是内存中活跃态SDO的概率,t为太阳城集团,P(w,t)为采用窗口w、在t时刻的统计函数,delay为采用窗口w、在t时刻的处理延迟;dnosdo为直接从内存中取出SDO并投入计算应用时的处理延时;dload为从外部存储器取出并恢复SDO状态时的处理延迟。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使对应技术方案的本质脱离本发明各实施例技术方案的范围。

关 键 词:
面向 处理 系统 内存 对象 管理 方法
  专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
太阳城集团本文
本文标题:面向流式处理系统的内存对象管理方法及系统.pdf
链接地址:http://zh228.com/p-6409451.html
太阳城集团我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备17046363号-1 
 


收起
展开
葡京赌场|welcome document.write ('');