[发明专利]一种基于增量计算的分布式流式数据系统在审
申请号: | 201310542870.7 | 申请日: | 2013-11-06 |
公开(公告)号: | CN104636327A | 公开(公告)日: | 2015-05-20 |
发明(设计)人: | 赵龙飞 | 申请(专利权)人: | 上海语镜汽车信息技术有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 201313 上海市浦东新区万祥*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 增量 计算 分布式 数据 系统 | ||
技术领域:
本发明涉及数据的存储和检索,具体涉及一种基于增量计算的分布式流式数据系统。
背景技术
REDIS内存数据结构,redis是一个高性能的key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set一有序集合)和hashs(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redi s支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
LUA动态语言,是一个小巧的脚本语言。该语言的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua脚本可以很容易的被C/C++代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用。不仅仅作为扩展脚本,也可以作为普通的配置文件,代替XML,Ini等文件格式,并且更容易理解和维护。Lua由标准C编写而成,代码简洁优美,几乎在所有操作系统和平台上都可以编译,运行。
C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力。
发明内容
针对上述现有技术中的缺陷,本发明公开了一种基于增量计算的分布式流式数据系统。
本发明采用下述技术方案:
一种基于增量计算的分布式流式数据系统,该系统由存储节点、计算节点组成,存储节点、计算节点之间采取连接池方式保持连接,出错后会自动重新连接,其中:
存储节点REDIS构建,保存了大量的中间结果,保证了随着数据的不断流入,有专用的持久化程序对内存中的数据定期进行持久化保存,为故障恢复做准备;
计算节点负责核心的计算工作,其采用C语言构建的基础HTTP的数据接收端,JSON作为唯一的数据处理格式,LUA作为逻辑编写的脚本语言,在提供高性能的同时,降低了编程的难度;中途出现错误后,原始数据会自动的发送到另外一个处理节点,保证数据能得到处理。
该系统采用增量的计算模型,将计算需求拆分成多个可以依次完成的步骤,避免对全量数据进行处理,每次只将新增的部分加入到之前的计算结果中,存储节点中永远保持最新的计算结果,方便数据的处理。
优选地,存储节点被分成了私有变量、公有变量、脚本服务器三种,外部服务和LBS都是系统外的服务,计算节点也有调用的权利。
本发明还涉及一种采用上述系统进行的单条数据的处理方法,该方法包括如下步骤:
(1)当计算节点接收到一条数据请求时,首先对数据包进行分解;
(2)解析成功后进入下一步,为了提高响应速度,完成数据的接收后,立即给出响应,不用等到这条数据处理完毕;
(3)然后开始读取存储节点中的数据,读取完成后开始结合数据包中的最新数据,进行增量计算,最后将结果写回到存储节点中;
(4)最后,根据功能需求,还可以对外部的服务进行调用。
本套系统构建了一套轻量化的基于增量计算的分布式流式数据系统,和当前其他的流式计算系统相比,该系统提供了高效的数据结构的内存存储方案,构建了稳定高效的连接池,在数据操作失败时提供了容错方案。存储节点上同时运行数据持久化守护进程每个计算节点可以无阻塞的接收服务请求,分配给不同的进程来处理数据。节点之间为平等的关系。可以通过水平扩展计算节点和存储节点。得到几乎线性的性能提升。
附图说明:
图1是本发明的单条数据处理流程图;
图2是本发明的系统拓扑图。
具体实施方式:
现结合附图将本发明做进一步的说明。
系统由存储节点,计算节点组成。节点之间采取连接池方式保持连接,出错后会自动重新连接。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海语镜汽车信息技术有限公司,未经上海语镜汽车信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310542870.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种视频搜索的方法和装置
- 下一篇:用于USB烧录的系统和方法