一种面向流式数据的在线处理方法及系统的制作方法

文档序号:6492226阅读:118来源:国知局
一种面向流式数据的在线处理方法及系统的制作方法
【专利摘要】本发明公开了一种面向流式数据的在线处理方法,包括:步骤1,建立在线内存缓存层,对所述流式数据按照键值结构进行属性抽取后存储在所述在线内存缓存层中;步骤2,在所述内存缓存层中对所述流式数据建立混合索引结构;步骤3,对建立好索引结构的每条流式数据增加一个访问标志位,此标志位用于标志不同分析程序对于该流式数据的注册情况,同时对每一个分析程序访问流式数据的状态进行记录。步骤4,数据清理,若某流式数据被所述内存缓存层中的所有指定的分析程序访问过,则将该流式数据进行清理操作。本发明大幅度减小了流式处理过程中的数据读写压力,能够有效缓解大规模流式数据处理系统中数据库的压力,且能够提升流式数据的实时处理速度。
【专利说明】一种面向流式数据的在线处理方法及系统
【技术领域】
[0001]本发明涉及大规模数据处理,尤其是涉及到一种面向流式数据的在线处理方法及系统。
【背景技术】
[0002]随着时代的进步和经济的发展,人们日常生活中对信息的需求量越来越大,尤其是随着互联网的日益普及,每天都有海量的信息在互联网上发布和传播。在2011年,分析调研机构IDC发布了《从混沌中提取价值》。这一报告显示,全球信息总量每过两年,就会增长一倍。2011年,全球被创建和被复制的数据总量为1.8ZB。举例来说,1.8ZB相当于全球每个人每天都去做2.15亿次高分辨率的核磁共振检查所产生的数据总量。
[0003]大规模数据分析处理系统的任务就是对海量数据进行处理,从大量数据中分析挖掘出有价值的知识。通常的数据处理系统需要收集来自各个数据源的数据进行存储,然后在从数据存储设备中读取数据,进行分析和处理。一种传统数据分析处理系统的架构是设立中心数据库来实现数据的存储和读取。首先由采集程序从互联网上针对新闻、论坛、博客、微博、社交网络、搜索引擎等不同分类的数据进行采集并且写入到中心数据库中;然后,各种分析程序从数据库中读取数据,进行后续的数据分析和处理。中心数据库同时承担了数据的写入和读取任务。
[0004]以数据库为存储中心的系统架构已经得到广泛的认同和应用。但是在海量数据环境下,随着数据来源种类的增加、来源数据量的增长和应用分析程序数目的增加,中心数据库架构的问题日益突显。中心数据库架构的缺点主要体现在了三个方面:第一实时响应性能下降;第二多次数据库交互;第三数据处理延时。
[0005]随着数据来源的增加、数据量的增大和应用程序数目的增加,传统的基于中心数据库的架构的数据处理分析系统的缺点日益凸显。所以,亟须提出一种新的数据处理架构来使得以上问题得到有效的缓解。
[0006]通常情况下,对于这个问题的解决思路可以归纳为以下四种:
[0007]消息中间件方法。消息中间件是一种由消息传送机制或消息队列模式组成的中间件技术。消息可以通过消息中间件被发送到各个应用程序,通过使用消息中间件可以缓解数据的读写压力,同时可以在消息中间件中控制应用程序对于消息的访问。消息中间件在许多行业应用中发挥了重要作用。在企业级应用的需求中消息传递需要保证可靠性和安全性,但是,过于关注可靠性和安全性增加了数据处理的时间和数据传输的延时,不适合大规模数据处理的吞吐量的要求。
[0008]分布式消息队列方法。越来越多的公司和研究机构尝试使用基于分布式的面向消息的系统来缓解中心数据库架构所带来的问题,这些分布式的消息队列大多数都以开源项目的形式发布。分布式的消息处理系统能够高效处理海量数据环境下的消息服务。但是这种分布式的消息处理系统存在着两个问题,一是这些系统都是基于主键查询的方式来进行数据的读写,无法按照某一个关键字段的查询,无法完全取代关系型数据库的查询功能;二是分布式的消息处理系统为了保证高吞吐量,无法很好得保证数据的完整性和安全性。
[0009]缓存方法。在计算机体系结构中对于内存的读写速度是磁盘读写速度的10倍以上,所以为了避免频繁的数据库读写,便有人采用了缓存的思想,在数据库之外开辟一块内存作为数据缓冲区,以此来减轻数据库负载,提高数据访问速度。这种基于内存的缓存仍然存在两个问题,一是无法优化数据写入数据库时效率;二是基于键值(Key-Value)组织的数据,无法针对某一个特定的字段进行区间查询操作。
[0010]内存数据库方法。在Web应用中,例如用户访问,用户点击,这些数据都是呈流式到达,所以研究针对流式数据的在线数据的处理方法成为了学术界和工业界都十分关注的问题。另外一个在线数据处理的研究分支是内存数据库的研究与开发。内存数据库,顾名思义就是将数据放在内存中操作的数据库。相对于磁盘,内存的数据读写速度要高出几个数量级,将数据保存在内存中相比从磁盘上访问能够极大地提高应用的性能。同时,内存数据库抛弃了磁盘数据管理的传统方式,基于全部数据都在内存中重新设计了体系结构,并且在数据缓存、快速算法、并行操作方面也进行了相应的改进,所以数据处理速度比传统数据库的数据处理速度要快很多,一般都在10倍以上。内存数据库的最大特点是其“主拷贝”或“工作版本”常驻内存,即活动事务只与实时内存数据库的内存拷贝打交道。Redis最大的缺点在于没有很好得解决数据服务可靠性的问题,所有的数据都存放在用户申请的内存空间内,一旦进程重启,或者异常退出,就会造成数据丢失。但是其无法满足按照数据的不同字段进行查询的需求。
[0011]综上所述,现有技术中缓解数据访问压力的能力,受各种不同因素限制,无法满足实际需求。

【发明内容】

[0012]本发明的目的是:引入一个基于内存的在线缓存层,针对流式数据的特点,将原来对于数据库的大量读写压力转移到在线缓存层中,从而大幅度减小流式处理过程中数据读写压力,有效缓解大规模流式数据处理系统中数据库的压力,提升流式数据的实时处理速度。
[0013]为实现上述目的,本发明提出了一种面向流式数据的在线处理方法,包括:
[0014]步骤I,建立在线内存缓存层,对所述流式数据按照键值结构进行属性抽取后存储在所述在线内存缓存层中;
[0015]步骤2,在所述内存缓存层中对所述流式数据建立混合索引结构;
[0016]步骤3,对建立好索引结构的每条流式数据增加一个访问标志位,此标志位用于标志不同分析程序对于该流式数据的注册情况;同时对每一个分析程序访问流式数据的状态进行记录;
[0017]步骤4,数据清理,若某流式数据被所述内存缓存层中的所有指定的分析程序访问过,则将该流式数据进行清理操作。
[0018]所述在线处理方法还包括:某个分析程序从所述内存缓存层中读取流式数据后,检查所述流式数据的访问标志位:
[0019]如果该流式数据已经被所述分析程序访问过,是已读标志位,则不将该流式数据返回所述分析程序;[0020]如果该流式数据没有被所述分析程序访问过,是未读标志位,则将该流式数据返回给所述分析程序,并且将该流式数据的标志位设置成已读标志位。
[0021]所述在线处理方法还包括:读取流式数据后,检查所述流式数据的访问标志位:
[0022]如果该流式数据被所有注册的分析程序访问过,则将该流式数据从内存缓存层里清除;
[0023]否则查询该流式数据的驻留时间是否超过阈值,若未超过该阈值则继续等待分析程序的访问,若超过该阈值则将该流式数据从内存缓存层里清除。
[0024]所述步骤I中的键值结构的建立方式是:对于每一条流式数据,内存缓存层将为其分配一个唯一的ID号作为记录的键,该键值对应于该条流式数据的所有属性信息。所述步骤2中所述混合索引结构是按照键值结构、B+树索引结构和哈希索引结构相结合建立的。
[0025]所述步骤2包括:
[0026]判定所述在线缓存层中的流式数据是否需要按字段查询:
[0027]若需要按字段查询:如果需要按照当前属性进行区间查询,对此属性字段建立B+树索引结构,如果需要按照当前属性进行主键查询,则对此属性字段建立哈希索引结构;
[0028]若不需要按字段查询,则不需要对此属性字段建立索引结构。
[0029]所述步骤3中:所述访问标志位是一个32位整型数字,每个整型数字的每一个比特位都可以表示一个分析程序对于流式数据的访问状态,对于内存中的流式数据初始化时,每条流式数据的访问标志位的每个比特位都是O ;
[0030]当分析程序向内存缓存层进行注册时,所述内存缓存层为其分配一个访问标志位,当某个分析程序访问一个流式数据后,所述内存缓存层将所述流式数据的访问标志位与该分析程序的访问标识进行按位运算,并将计算后的结果作为该流式数据当前的访问标志位。
[0031]所述步骤4中:
[0032]读取流式数据后,检查所述流式数据的访问标志位:
[0033]如果该流式数据被所有注册的分析程序访问过,则将该流式数据从内存缓存层里清除;
[0034]否则查询该流式数据是否超过阈值,若未超过该阈值则继续等待分析程序的访问,若超过该阈值则将该流式数据从内存缓存层里清除。
[0035]为实现上述目的,本发明还提供一种面向流式数据的在线处理系统,包括:
[0036]在线内存缓存层构建模块,用于建立在线内存缓存层,对所述流式数据进行属性抽取后按照键值结构存储在所述在线内存缓存层中;
[0037]混合索引结构建立模块,用于在所述内存缓存层中对所述流式数据建立混合索引结构;
[0038]访问标志位构建模块,用于对建立好索弓I结构的每条流式数据增加一个访问标志位,此标志位用于标志不同分析程序对于该流式数据的注册情况,同时对每一个分析程序访问流式数据的状态进行记录;
[0039]内存流式数据清理模块,用于对被所述内存缓存层中的所有指定的分析程序访问过的流式数据,进行清理操作。[0040]所述在线处理系统还包括:
[0041]流式数据退出返回模块,用于读取流式数据后,检查所述流式数据的访问标志位:
[0042]如果该流式数据已经被分析程序访问过,是已读标志位,则不将该流式数据返回分析程序;如果该流式数据没有被分析程序访问过,是未读标志位,则将该流式数据的标志位设置成已读标志位,并且返回该流式数据给分析程序。
[0043]所述内存流式数据清理模块中:
[0044]当分析程序从所述内存缓存层中读取流式数据后,检查所述流式数据的访问标志位:如果该流式数据被所有注册过的分析程序访问过,则将该流式数据从内存缓存层里清除该流式数据;否则查询该流式数据的驻留时间是否超过阈值,若未超过该阈值则继续等待分析程序的访问,若超过该阈值则将该流式数据从内存缓存层里清除该流式数据。
[0045]本发明的有益效果在于:本发明的面向流式数据的在线处理方法及系统通过增加了基于内存的数据缓存,针对流式数据的特点,将原来对于数据库的大量读写压力转移到在线缓存层中,有效缓解了大规模流式数据处理系统中数据库的压力,大幅减小了流式数据的读写压力,提升了流式数据的实时处理速度和数据处理系统的时效性。
[0046]以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
【专利附图】

【附图说明】
[0047]图1是本发明的面向流式数据的在线处理方法流程图;
[0048]图2是本发明的面向流式数据的在线处理系统示意图。
【具体实施方式】
[0049]本发明的核心思想在于,在原有架构上引入一个基于内存的在线缓存层,针对流式数据的特点,将原来对于数据库的大量读写压力,转移到在线缓存中,并且能够高效得提供数据服务。
[0050]图1是本发明的面向流式数据的在线处理方法流程图。如图1所示,该方法包括:
[0051]步骤1,建立在线内存缓存层,对所述流式数据按照键值结构进行属性抽取后存储在所述在线内存缓存层中。
[0052]步骤2,在所述内存缓存层中对所述流式数据建立混合索引结构。
[0053]步骤3,对建立好索引结构的每条流式数据增加一个访问标志位,此标志位用于标志不同分析程序对于该流式数据的注册情况;同时对每一个分析程序访问流式数据的状态进行记录。
[0054]流式数据是动态存在的,对于每条流式数据,其会被哪些分析程序访问的是一定的。
[0055]步骤4,数据清理,若某流式数据被所述内存缓存层中的所有指定的分析程序访问过,则将该流式数据进行清理操作。
[0056]所述步骤I中的键值结构的建立方式是:对于每一条流式数据,内存缓存层将为其分配一个唯一的ID号作为记录的键,该键值对应于该条流式数据的所有属性信息。在原有基于中心数据库架构的基础上,增加了一个在线的内存缓存层。增加的内存缓存层基于内存进行流式数据的管理,并且通过网络接口对外提供数据读写服务。内存缓存层的增加对于数据处理系统的数据流向进行了调整。一方面,采集程序将采集到的流式数据写入到内存缓存中,分析程序从内存缓存中读取流式数据,进行数据分析。另一方面,内存缓存将定期将内存中的流式数据写入到数据库中进行持久化存储。
[0057]在线内存缓存中,每一条流式数据按照键值的方式组织存储。对于每一条流式数据,内存缓存将为其分配一个全局唯一的ID号作为记录的键,跟随着键存储的是记录的所有属性的信息。所有的流式数据以键值方式进行存储,并且通过流式数据的键来唯一标识一条记录。在基于键值存储的基础上,本发明对于流式数据建立混合多索引结构,对于每条流式数据的不同的字段建立不同类型的索引结构。对于存储的流式数据,有的查询需要按照属性字段进行唯一性的查询,有的查询需要按照字段的区间进行查询。对于有唯一性需求的查询,在内存中对这些字段建立哈希索引。以唯一性字段作为哈希索引的索引值建立哈希索引,在哈希索引结构中进行唯一性查询时,在最好情况下可以以0(1)(即常数)的时间复杂度进行流式数据的查询。对于有区间查询需求的属性字段,在内存中对这些字段建立B+树索引。通过B+树索引结构进行的区间查询在平均情况下可以以O (1gn)(即对数)的时间复杂度内完成。
[0058]所述在线处理方法还包括动态注册步骤:
[0059]某个分析程序从所述内存缓存层中读取流式数据后,检查所述流式数据的访问标志位:
[0060]如果该流式数据已经被所述分析程序访问过,是已读标志位,则不将该流式数据返回所述分析程序;
[0061]如果该流式数据没有被所述分析程序访问过,是未读标志位,则将该流式数据返回给所述分析程序,并且将该流式数据的标志位设置成已读标志位。本发明在内存中建立基于访问控制标签的应用程序动态注册与取消注册机制,提供高扩展性的数据流式读取。针对流式数据,本发明在内存中对于每一条流式数据记录增加一个数据访问标签。数据访问标签是一个32位整型数字,整型数字的每一个比特位都可以表示一个分析程序对于流式数据的使用情况。分析程序需要向内存缓存进行注册,内存缓存为其分配一个数据访问标识,即使用32位整型数字中的某一个比特位来表示进行注册的分析程序。当分析程序注册成功之后,内存缓存会为其分配一个访问数据的标识,该分析程序就是通过该标识来对流式数据进行访问和使用。在流式数据的处理中为了减少重复流式数据对于网络带宽的占用,每个分析程序不能重复访问同一条流式数据。对于内存中的数据初始化时,每条流式数据的数据访问标识的每个比特位都是O。当某个应用程序访问过该流式数据之后,内存缓存将这条流式数据的数据访问标志位与该分析程序的数据访问标识进行按位的或运算,将计算后的结果作为该流式数据当前的数据访问控制标签。当一个应用程序访问过某条流式数据之后,就不能重复访问该流式数据。
[0062]所述步骤4中包括:
[0063]读取流式数据后,检查所述流式数据的访问标志位:
[0064]如果该流式数据被所有注册的分析程序访问过,则将该流式数据从内存缓存层里清除;
[0065]否则查询该流式数据是否超过阈值,若未超过该阈值则继续等待分析程序的访问,若超过该阈值则将该流式数据从内存缓存层里清除。
[0066]即本发明建立了高效的内存数据清理与退出机制,及时清理内存中驻留的流式数据,提高数据服务的可用性。对于内存中的流式数据的清理机制,本发明将其分为两种情况进行考虑。在正常情况下,内存数据缓存检查内存中流式数据的访问控制标签,如果发现对于所有注册过的分析程序,都已经使用过该流式数据,那么将启动数据清理过程,将其从内存中删除。在异常情况下,内存数据缓存检查内存中流式数据的访问控制标签,如果发现有某些分析程序尚未访问过该流式数据,则对这条流式数据在内存中的驻留时间进行判断。如果该流式数据在内存中长时间驻留,超过了规定的时间阈值,那么将启动数据清理过程,将其从内存中删除;如果该流式数据在内存中的驻留时间未超过规定的时间阈值,则不对其进行处理,让其继续存储于内存中。
[0067]图2是本发明的面向流式数据的在线处理系统示意图。如图2所示,该系统包括:
[0068]在线内存缓存层构建模块,用于建立在线内存缓存层,对所述流式数据进行属性抽取后按照键值结构存储在所述在线内存缓存层中;
[0069]混合索引结构建立模块,用于在所述内存缓存层中对所述流式数据建立混合索引结构;
[0070]访问标志位构建模块,用于对建立好索弓I结构的每条流式数据增加一个访问标志位,此标志位用于标志不同分析程序对于该流式数据的注册情况;同时对每一个分析程序访问流式数据的状态进行记录;
[0071]内存流式数据清理模块,用于对被所述内存缓存层中的所有指定的分析程序访问过的流式数据,进行清理操作。
[0072]在原有基于中心数据库架构的基础上,增加了一个在线的内存缓存层。增加的内存缓存层基于内存进行流式数据的管理,并且通过网络接口对外提供数据读写服务。内存缓存层的增加对于数据处理系统的数据流向进行了调整。一方面,采集程序将采集到的流式数据写入到内存缓存中,分析程序从内存缓存中读取流式数据,进行数据分析。另一方面,内存缓存将定期将内存中的流式数据写入到数据库中进行持久化存储。
[0073]在线内存缓存中,每一条流式数据按照键值的方式组织存储。对于每一条流式数据,内存缓存将为其分配一个全局唯一的ID号作为记录的键,该键值对应于该条流式数据的所有属性信息。所有的流式数据以键值方式进行存储,并且通过流式数据的键来唯一标识一条记录。在基于键值存储的基础上,本发明对于流式数据建立混合多索引结构,对于每条流式数据的不同的字段建立不同类型的索引结构。对于存储的流式数据,有的查询需要按照属性字段进行唯一性的查询,有的查询需要按照字段的区间进行查询。对于有唯一性需求的查询,在内存中对这些字段建立哈希索引。以唯一性字段作为哈希索引的索引值建立哈希索引,在哈希索引结构中进行唯一性查询时,在平均情况下可以以0(1)(即常数)的时间复杂度进行流式数据的查询。对于有区间查询需求的属性字段,在内存中对这些字段建立B+树索引。通过B+树索引结构进行的区间查询在平均情况下可以以O(1gn)(即对数)的时间复杂度内完成。
[0074]所述在线处理系统还包括:
[0075]流式数据退出返回模块,用于读取流式数据后,检查所述流式数据的访问标志位:[0076]如果该流式数据已经被分析程序访问过,是已读标志位,则不将该流式数据返回分析程序;如果该流式数据没有被分析程序访问过,是未读标志位,则将该流式数据的标志位设置成已读标志位,并且返回该流式数据给分析程序。本发明在内存中建立基于访问控制标签的应用程序动态注册与取消注册机制,提供高扩展性的数据流式读取。针对流式数据,本发明在内存中对于每一条流式数据记录增加一个数据访问标签。数据访问标签是一个32位整型数字,整型数字的每一个比特位都可以表示一个分析程序对于流式数据的使用情况。分析程序需要向内存缓存进行注册,内存缓存为其分配一个数据访问标识,即使用32位整型数字中的某一个比特位来表示进行注册的分析程序。当分析程序注册成功之后,内存缓存会为其分配一个访问数据的标识,该分析程序就是通过该标识来对流式数据进行访问和使用。在流式数据的处理中为了减少重复数据对于网络带宽的占用,每个分析程序不能重复访问同一条流式数据。对于内存中的数据初始化时,每条流式数据的数据访问标识的每个比特位都是O。当某个应用程序访问过该流式数据之后,内存缓存将这条流式数据的数据访问标志位与该分析程序的数据访问标识进行按位的或运算,将计算后的结果作为该流式数据当前的数据访问控制标签。当一个应用程序访问过某条流式数据之后,就不能重复访问该流式数据。
[0077]所述内存流式数据清理模块中:
[0078]当分析程序从所述内存缓存层中读取流式数据后,检查所述流式数据的访问标志位:如果该流式数据被所有注册过的分析程序访问过,则将该流式数据从内存缓存层里清除该流式数据;否则查询该流式数据的驻留时间是否超过阈值,若未超过该阈值则继续等待分析程序的访问,若超过该阈值则将该流式数据从内存缓存层里清除该流式数据。
[0079]即本发明建立了高效的内存数据清理与退出机制,及时清理内存中驻留的流式数据,提高数据服务的可用性。对于内存中的流式数据的清理机制,本发明将其分为两种情况进行考虑。在正常情况下,内存数据缓存检查内存中流式数据的访问控制标签,如果发现对于所有注册过的分析程序,都已经使用过该流式数据,那么将启动数据清理过程,将其从内存中删除,提升内存的有效利用率。异常情况下,内存数据缓存检查内存中流式数据的访问控制标签,如果发现有某些分析程序尚未访问过该流式数据,则对这条流式数据在内存中的驻留时间进行判断。如果该流式数据在内存中长时间驻留,超过了规定的时间阈值,那么将启动数据清理过程,将其从内存中删除;如果该流式数据在内存中的驻留时间未超过规定的时间阈值,则不对其进行处理,让其继续存储于内存中。
[0080]当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明权利要求的保护范围。
【权利要求】
1.一种面向流式数据的在线处理方法,其特征在于,包括: 步骤I,建立在线内存缓存层,对所述流式数据按照键值结构进行属性抽取后存储在所述在线内存缓存层中; 步骤2,在所述内存缓存层中对所述流式数据建立混合索引结构; 步骤3,对建立好索引结构的每条流式数据增加一个访问标志位,此标志位用于标志不同分析程序对于该流式数据的注册情况,同时对每一个分析程序访问流式数据的状态进行记录; 步骤4,数据清理,若某流式数据被所述内存缓存层中的所有指定的分析程序访问过,则将该流式数据进行清理操作。
2.如权利要求1所述的在线处理方法,其特征在于,所述在线处理方法还包括动态注册步骤: 某个分析程序从所述内存缓存层中读取流式数据后,检查所述流式数据的访问标志位: 如果该流式数据已经被所述分析程序访问过,是已读标志位,则不将该流式数据返回所述分析程序; 如果该流式数据没有被所述分析程序访问过,是未读标志位,则将该流式数据返回给所述分析程序,并且将该流式数据的标志位设置成已读标志位。
3.如权利要求1所述的在线处理方法,其特征在于,所述步骤I中的键值结构的建立方式是:对于每一条流式数据 ,内存缓存层将为其分配一个唯一的ID号作为记录的键,该键记录该流式数据所有属性的信息。
4.如权利要求1所述的在线处理方法,其特征在于,所述步骤2中所述混合索引结构是按照键值结构、B+树索引结构和哈希索引结构相结合建立的。
5.如权利要求1所述的在线处理方法,其特征在于,所述步骤2包括: 判定所述在线缓存层中的流式数据是否需要按字段查询: 若需要按字段查询:如果需要按照当前属性进行区间查询,对此属性字段建立B+树索引结构,如果需要按照当前属性进行主键查询,则对此属性字段建立哈希索引结构; 若不需要按字段查询,则不需要对此属性字段建立索引结构。
6.如权利要求1所述的在线处理方法,其特征在于,所述步骤3中:所述访问标志位是一个32位整型数字,每个整型数字的每一个比特位都可以表示一个分析程序对于流式数据的访问状态,对于内存中的流式数据初始化时,每条流式数据的访问标志位的每个比特位都是O ; 当分析程序向内存缓存层进行注册时,所述内存缓存层为其分配一个访问标志位,当某个分析程序访问一个流式数据后,所述内存缓存层将所述流式数据的访问标志位与该分析程序的访问标识进行按位运算,并将计算后的结果作为该流式数据当前的访问标志位。
7.如权利要求1所述的在线处理方法,其特征在于,所述步骤4中: 读取流式数据后,检查所述流式数据的访问标志位: 如果该流式数据被所有注册的分析程序访问过,则将该流式数据从内存缓存层里清除; 否则查询该流式数据的驻留时间是否超过阈值,若未超过该阈值则继续等待分析程序的访问,若超过该阈值则将该流式数据从内存缓存层里清除。
8.一种面向流式数据的在线处理系统,其特征在于,包括: 在线内存缓存层构建模块,用于建立在线内存缓存层,对所述流式数据进行属性抽取后按照键值结构存储在所述在线内存缓存层中; 混合索引结构建立模块,用于在所述内存缓存层中对所述流式数据建立混合索引结构; 访问标志位构建模块,用于对建立好索引结构的每条流式数据增加一个访问标志位,此标志位用于标志不同分析程序对于该流式数据的注册情况,同时对每一个分析程序访问流式数据的状态进行记录; 内存流式数据清理模块,用于对被所述内存缓存层中的所有指定的分析程序访问过的流式数据,进行清理操作。
9.如权利要求8所述的在线处理方法,其特征在于,所述在线处理系统还包括: 流式数据退出返回模块,用于读取流式数据后,检查所述流式数据的访问标志位:如果该流式数据已经被分析程序访问过,是已读标志位,则不将该流式数据返回分析程序;如果该流式数据没有被分析程序访问过,是未读标志位,则将该流式数据的标志位设置成已读标志位,并且返回该流式数据给分析程序。
10.如权利要求8所述的在线处理方法,其特征在于,所述内存流式数据清理模块中: 当分析程序从所述内存缓存层中读取流式数据后,检查所述流式数据的访问标志位:如果该流式数据被所有注册过的分析程序访问过,则将该流式数据从内存缓存层里清除该流式数据;否则查询该流式数据的驻留时间是否超过阈值,若未超过该阈值则继续等待分析程序的访问,若超过该阈值则将该 流式数据从内存缓存层里清除该流式数据。
【文档编号】G06F17/30GK103853766SQ201210510056
【公开日】2014年6月11日 申请日期:2012年12月3日 优先权日:2012年12月3日
【发明者】张瑾, 程学旗, 林祥辉, 黄康平 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1