CN104636327A - 一种基于增量计算的分布式流式数据系统 - Google Patents
一种基于增量计算的分布式流式数据系统 Download PDFInfo
- Publication number
- CN104636327A CN104636327A CN201310542870.7A CN201310542870A CN104636327A CN 104636327 A CN104636327 A CN 104636327A CN 201310542870 A CN201310542870 A CN 201310542870A CN 104636327 A CN104636327 A CN 104636327A
- Authority
- CN
- China
- Prior art keywords
- data
- computation
- node
- memory node
- nodes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
Abstract
一种基于增量计算的分布式流式数据系统,该系统由存储节点、计算节点组成,节点之间采取连接池方式保持连接,出错后会自动重新连接,其中:存储节点REDIS构建,保存了大量的中间结果,保证了随着数据的不断流入,有专用的持久化程序对内存中的数据定期进行持久化保存,为故障恢复做准备;计算节点负责核心的计算工作,其采用C语言构建的基础HTTP的数据接收端,JSON作为唯一的数据处理格式,LUA作为逻辑编写的脚本语言,在提供高性能的同时,降低了编程的难度。该系统采用增量的计算模型,将计算需求拆分成多个可以依次完成的步骤,每次只将新增部分加入到之前计算结果中,存储节点中永远保持最新的计算结果,方便数据的处理。
Description
技术领域:
本发明涉及数据的存储和检索,具体涉及一种基于增量计算的分布式流式数据系统。
背景技术
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是本发明的系统拓扑图。
具体实施方式:
现结合附图将本发明做进一步的说明。
系统由存储节点,计算节点组成。节点之间采取连接池方式保持连接,出错后会自动重新连接。
存储节点REDIS构建,保存了大量的中间结果,保证了随着数据的不断流入,有专用的持久化程序对内存中的数据定期进行持久化保存,为故障恢复做准备。
计算节点采用C语言构建的基础HTTP的数据接收端,JSON作为唯一的数据处理格式。LUA作为逻辑编写的脚本语言,在提供高性能的同时,降低了编程的难度。中途出现错误后,原始数据会自动的发送到另外一个处理节点。保证数据能得到处理。
采用增量的计算模型,将计算需求拆分成多个可以依次完成的步骤,避免对全量数据进行处理,每次只将新增的部分加入到之前的计算结果中,存储节点中永远保持最新的计算结果,方便数据的处理。
单条数据请求的处理流程如图1所示,当计算节点接收到一条数据请求时,首先对数据包进行分解。解析成功后进入下一步,为了提高响应速度,完成数据的接收后,立即给出响应,不用等到这条数据处理完毕。然后开始读取存储节点中的数据,读取完成后开始结合数据包中的最新数据,进行增量计算,最后将结果写回到存储节点中。最后根据功能需求,还可以对外部的服务进行调用。
系统拓扑图如图2所示,计算节点(图中的worker服务集群)负责核心的计算工作,存储节点被分成了三种,私有变量,公有变量,脚本服务器。外部服务和LBS都是系统外的服务,计算节点也有调用的权利。
以上所述仅为本发明的较佳实施方式而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (3)
1.一种基于增量计算的分布式流式数据系统,其特征在于:该系统由存储节点、计算节点组成,存储节点、计算节点之间采取连接池方式保持连接,出错后会自动重新连接,其中:
存储节点REDIS构建,保存了大量的中间结果,保证了随着数据的不断流入,有专用的持久化程序对内存中的数据定期进行持久化保存,为故障恢复做准备;
计算节点负责核心的计算工作,其采用C语言构建的基础HTTP的数据接收端,JSON作为唯一的数据处理格式,LUA作为逻辑编写的脚本语言,在提供高性能的同时,降低了编程的难度;中途出现错误后,原始数据会自动的发送到另外一个处理节点,保证数据能得到处理;
该系统采用增量的计算模型,将计算需求拆分成多个可以依次完成的步骤,避免对全量数据进行处理,每次只将新增的部分加入到之前的计算结果中,存储节点中永远保持最新的计算结果,方便数据的处理。
2.根据权利要求1所述的系统,其特征在于,存储节点被分成了私有变量、公有变量、脚本服务器三种,外部服务和LBS都是系统外的服务,计算节点也有调用的权利。
3.一种采用权利要求1或2所述的系统进行的单条数据的处理方法,其特征在于,该方法包括如下步骤:
(1)当计算节点接收到一条数据请求时,首先对数据包进行分解;
(2)解析成功后进入下一步,为了提高响应速度,完成数据的接收后,立即给出响应,不用等到这条数据处理完毕;
(3)然后开始读取存储节点中的数据,读取完成后开始结合数据包中的最新数据,进行增量计算,最后将结果写回到存储节点中;
(4)最后,根据功能需求,还可以对外部的服务进行调用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310542870.7A CN104636327A (zh) | 2013-11-06 | 2013-11-06 | 一种基于增量计算的分布式流式数据系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310542870.7A CN104636327A (zh) | 2013-11-06 | 2013-11-06 | 一种基于增量计算的分布式流式数据系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104636327A true CN104636327A (zh) | 2015-05-20 |
Family
ID=53215099
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310542870.7A Pending CN104636327A (zh) | 2013-11-06 | 2013-11-06 | 一种基于增量计算的分布式流式数据系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104636327A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107037989A (zh) * | 2017-05-17 | 2017-08-11 | 北京小米移动软件有限公司 | 分布式计算系统中的数据处理方法和装置 |
CN110263279A (zh) * | 2019-05-08 | 2019-09-20 | 北京字节跳动网络技术有限公司 | 页面生成方法、装置、电子设备和计算机可读存储介质 |
CN111211993A (zh) * | 2018-11-21 | 2020-05-29 | 百度在线网络技术(北京)有限公司 | 流式计算的增量持久化方法及其装置 |
CN111506609A (zh) * | 2020-04-17 | 2020-08-07 | 杭州云创共享网络科技有限公司 | 一种数据修改方法、装置、设备及存储介质 |
CN111736996A (zh) * | 2020-06-17 | 2020-10-02 | 上海交通大学 | 一种面向分布式非易失内存系统的进程持久化方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101252589A (zh) * | 2008-03-25 | 2008-08-27 | 中国科学院计算技术研究所 | 数据缓存装置和采用该装置的网络存储系统及缓存方法 |
CN102939740A (zh) * | 2010-04-23 | 2013-02-20 | Ilt制造公司 | 分布式数据存储 |
CN103064914A (zh) * | 2012-12-20 | 2013-04-24 | 曙光信息产业(北京)有限公司 | 数据处理系统以及数据处理方法 |
-
2013
- 2013-11-06 CN CN201310542870.7A patent/CN104636327A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101252589A (zh) * | 2008-03-25 | 2008-08-27 | 中国科学院计算技术研究所 | 数据缓存装置和采用该装置的网络存储系统及缓存方法 |
CN102939740A (zh) * | 2010-04-23 | 2013-02-20 | Ilt制造公司 | 分布式数据存储 |
CN103064914A (zh) * | 2012-12-20 | 2013-04-24 | 曙光信息产业(北京)有限公司 | 数据处理系统以及数据处理方法 |
Non-Patent Citations (1)
Title |
---|
JEFFREY DEAN ET AL: "MapReduce: Simplified Data Processing on Large Clusters", 《COMMUNICATIONS OF THE ACM》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107037989A (zh) * | 2017-05-17 | 2017-08-11 | 北京小米移动软件有限公司 | 分布式计算系统中的数据处理方法和装置 |
CN111211993A (zh) * | 2018-11-21 | 2020-05-29 | 百度在线网络技术(北京)有限公司 | 流式计算的增量持久化方法及其装置 |
CN111211993B (zh) * | 2018-11-21 | 2023-08-11 | 百度在线网络技术(北京)有限公司 | 流式计算的增量持久化方法、装置及存储介质 |
CN110263279A (zh) * | 2019-05-08 | 2019-09-20 | 北京字节跳动网络技术有限公司 | 页面生成方法、装置、电子设备和计算机可读存储介质 |
CN110263279B (zh) * | 2019-05-08 | 2021-08-10 | 北京字节跳动网络技术有限公司 | 页面生成方法、装置、电子设备和计算机可读存储介质 |
CN111506609A (zh) * | 2020-04-17 | 2020-08-07 | 杭州云创共享网络科技有限公司 | 一种数据修改方法、装置、设备及存储介质 |
CN111736996A (zh) * | 2020-06-17 | 2020-10-02 | 上海交通大学 | 一种面向分布式非易失内存系统的进程持久化方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106599104B (zh) | 一种基于redis集群的海量数据关联方法 | |
CN102930062B (zh) | 一种数据库快速水平扩展的方法 | |
US10061858B2 (en) | Method and apparatus for processing exploding data stream | |
CN104636327A (zh) | 一种基于增量计算的分布式流式数据系统 | |
CN102937964B (zh) | 基于分布式系统的智能数据服务方法 | |
US9400767B2 (en) | Subgraph-based distributed graph processing | |
US9619492B2 (en) | Data migration | |
CN104731569B (zh) | 一种数据处理方法及相关设备 | |
CN111241108B (zh) | 基于键值对kv系统的索引方法、装置、电子设备和介质 | |
CN111767144B (zh) | 交易数据的交易路由确定方法、装置、设备及系统 | |
CN103853714A (zh) | 一种数据处理方法和装置 | |
CN103516809A (zh) | 一种高扩展、高性能的分布式存储体系结构 | |
CN103309650A (zh) | 持久层代码的生成方法和装置 | |
US20190179565A1 (en) | Global occupancy aggregator for global garbage collection scheduling | |
CN105630630B (zh) | 数据热备份方法及系统 | |
CN103885721A (zh) | 一种在键-值系统中的数据存储或读取方法、装置 | |
CN104166705A (zh) | 数据库的访问方法及装置 | |
CN106126299B (zh) | 业务插件的处理方法及装置 | |
CN102567419A (zh) | 基于树结构的海量数据存储装置及方法 | |
EP3123699B1 (en) | System and method for supporting data types conversion in a heterogeneous computing environment | |
CN104052804A (zh) | 一种不同任务拓扑间共享数据流的方法、装置及集群 | |
CN104866508B (zh) | 在云环境下管理文件的方法与装置 | |
CN103699627A (zh) | 一种基于Hadoop集群的超大文件并行数据块定位方法 | |
CN104850591A (zh) | 一种数据的转换存储方法及装置 | |
CN108073584B (zh) | 一种数据处理方法及服务器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150520 |
|
WD01 | Invention patent application deemed withdrawn after publication |