CN104063228A - 一种流水线数据处理*** - Google Patents
一种流水线数据处理*** Download PDFInfo
- Publication number
- CN104063228A CN104063228A CN201410313311.3A CN201410313311A CN104063228A CN 104063228 A CN104063228 A CN 104063228A CN 201410313311 A CN201410313311 A CN 201410313311A CN 104063228 A CN104063228 A CN 104063228A
- Authority
- CN
- China
- Prior art keywords
- data
- module
- section
- processing
- data processing
- 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
Landscapes
- Multi Processors (AREA)
Abstract
本发明涉及一种流水线数据处理***,包括多个分别用于完成不同类型的数据处理的子***,每个所述子***作为一个段***,被配置在一个计算节点上,多个所述段***组成一条数据处理流水线,对需要处理的大数据进行处理,所述需要处理的大数据被划分为多种基础服务,每种所述基础服务对应一种类型的数据处理,由对应的段***完成:所述每个段***完成一种类型的数据处理后,将处理获取的数据传输给下一个段***。该***与指令流水***一样,存在数据冲突、结构冲突、控制冲突。由于该流水***的段是部署在机器上的服务,通信方便、预测准确,可以更方便的使用数据预取、直接数据同路等方法来化解冲突。
Description
技术领域
本发明涉及计算机领域,具体涉及一种大数据处理中的流水线数据处理***。
背景技术
随着计算机技术的发展,人们对数据处理的期望要求越来越高。用户往往希望很快获得尽可能精确的结果,但原始数据往往很大而且具有不确定性。处理用户请求的过程往往要经过好几个步骤,构建应用或者机器级别的流水线是提升性能和效率的有效方法之一。
对于数据量很大的数据处理,往往采用分布式***来解决。分布式***本身在大数据处理上有着与生俱来的优势。分布式***提供了高效稳定的集群管理机制。分布式***中,服务是互相相对独立的提供给用户的。大批数据被同时分配给大量机器处理,然后汇总,在这种模式下,每个计算机执行的操作是相同或者类似的,大量的计算机往往没有特殊标签。对于需求不定的服务,这样的模式往往会因为机器的特点带来效率的损失。例如,有的服务需要大量快速的文件读写,而有的则需要大量的内存来进行运算。忽视单个机器的特性往往不能物尽其用。
流水线技术在工业生产和微处理机里面已经得到了广泛的应用。在微处理机中,流水线发展经历了从单功能流水线到多功能流水线,线性流水线到非线性流水线的历程。微处理机指令流水线的功能部件为特定的运算处理单元,每条指令被放入相应的流水线中执行,功能部件利用率大大提高,单位时间指令吞吐量也大幅提升。工业生产中,每个生产加工环节为一个段,每个段自动衔接,原始产品或零部件逐步被加工装配。
应用级别的流水线能有效提升***的效率,使得单位时间可以响应的请求数量明显提升。但是由于各个级别的应用都在一个机器上运行,机器本身的性能限制了***的提升上限。
发明内容
本发明的目的是提供一种流水线数据处理***,对一个能部署多种服务的分布式平台,从而使得整个平台的相关服务性能得到整体提升,而不用针对每一个服务做同样的优化操作。
为实现上述目的,本发明提供了一种流水线数据处理***,流水线数据处理***,包括多个分别用于完成不同类型的数据处理的子***,每个所述子***作为一个段***,被配置在一个计算节点上,多个所述段***组成一条数据处理流水线,对需要处理的大数据进行处理,所述需要处理的大数据被划分为多种基础服务,每种所述基础服务对应一种类型的数据处理,由对应的段***完成:所述每个段***完成一种类型的数据处理后,将处理获取的数据传输给下一个段***。
依照本发明较佳实施例所述的流水线数据处理***,其中,所述段***包括输入模块、处理模块以及输出模块。
依照本发明较佳实施例所述的流水线数据处理***,其中,所述输入模块包括两个输入缓冲区,所述输入模块中部署有输入接收线程,该输入接收线程响应相邻的段***的任务发送请求,在所述两个输入缓冲区中的至少一个为空时,将所述任务发送请求的结果放入空的所述输入缓冲区。
依照本发明较佳实施例所述的流水线数据处理***,其中,当所述运算模块需要在所述输入模块中读取数据时,先将所述两个输入缓冲区中写入在先的一个输入缓冲区中的数据发送给所述处理模块,该输入缓冲区的数据被所述处理模块读取后被标记为空闲。
依照本发明较佳实施例所述的流水线数据处理***,其中,所述输出模块包括两个输出缓冲区以及网络端口,所述网络端口用于与其他段***的输入模块进行通信。
依照本发明较佳实施例所述的流水线数据处理***,其中,所述输出模块的两个输出缓冲区都为忙状态时,所述输出模块拒绝所述处理模块的写入数据请求;所述输出模块向外部发送数据时,先传输所述两个输出缓冲区中先被写入数据的一个输出缓冲区中的数据。
采用本发明实施例提供的流水线数据处理***,把大数据处理很多个更小、更基础的服务,根据服务需要,部署到不同的机器上去,从而使得不同的节点专门处理一种类型的数据处理服务,从而使得硬件资源得到充分利用,并且不需要较高的计算机配置。此外,还能够提高数据吞吐量,降低响应时间。
附图说明
图1为本发明实施例提供的流水线数据处理***的架构图;
图2为本发明实施例中段***的结构图。
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
图1是本发明实施例提供的流水线数据处理***的架构图,该流水线数据处理***包括多个分别用于完成不同类型的数据处理的子***,每个所述子***作为一个段***,被配置在集群中的一个计算节点上,多个所述段***组成一条数据处理流水线,对需要处理的大数据进行处理,所述需要处理的大数据被划分为多种基础服务,每种所述基础服务对应一种类型的数据处理,由对应的段***完成:所述每个段***完成一种类型的数据处理后,将处理获取的数据传输给下一个段***。
例如,不同的段***分别用来处理文件快速读写、聚合等不同的数据处理类型。每个段***将需要自身处理的数据快速处理完之后,发送给下一个段***,进行流水线的下一种类型的数据处理。
如图2所示,所述段***包括输入模块、处理模块以及输出模块。所述输入模块包括两个输入缓冲区IA和IB,所述输入模块中部署有输入接收线程,该输入接收线程响应相邻的段***的任务发送请求,在所述两个输入缓冲区中的至少一个为空时,将所述任务发送请求的结果放入空的所述输入缓冲区。
当所述运算模块需要在所述输入模块中读取数据时,先将所述两个输入缓冲区中写入在先的一个输入缓冲区中的数据发送给所述处理模块,该输入缓冲区的数据被所述处理模块读取后被标记为空闲。
所述输出模块包括两个输出缓冲区OA和OB,以及网络端口,所述网络端口用于与其他段***的输入模块进行通信。所述输出模块的两个输出缓冲区OA和OB都为忙状态时,所述输出模块拒绝所述处理模块的写入数据请求;所述输出模块向外部发送数据时,先传输所述两个输出缓冲区中先被写入数据的一个输出缓冲区中的数据。
具体而言,以图1中的段***B为例,段***B的输入模块运行的输入接收线程负责响应上一个段***A的任务发送请求,把结果放入输入缓冲区中,为运算处理线程提供直接输入。运算处理线程进行数据处理。运算处理模块支持用户自定义运算插件模块提供统一的I/O接口,凡是符合该I/O接口的用户程序均可以在该模块中运行。输出发送线程负责缓存运算处理线程的结果并发送到下一个段。
段***B的输入模块初始化之后,监听输入端口,当有数据输入请求时,检查两个输入缓冲区IA和IB,若输入缓冲区IA和IB都不为空,则反馈忙信号给段***A。否则,反馈允许发送信号给段***A,接收段***A的输出模块发送的数据到两个输入缓冲区IA和IB中的一个或两个中。
输入模块有IA、IB两个输入缓冲区。仅当输入缓冲区IA、IB同时为空时,认为缓冲区是空的,无法为运算模块提供输入,当处理模块请求读取数据时,向处理模块反馈empty信号,表示输入模块的两个内存缓冲区都为空。仅当输入缓冲区IA、IB同时为忙状态时,认为输入缓冲区为buss,暂时不接收新的输入。当处理模块读取数据时,输入模块总是返回最先写入的那个内存缓冲区中的数据。读取完毕后输入模块将该内存缓冲区标记为空。当需要接收外部输入数据时,总是将外部输入的数据写入闲置最久的那个内存缓冲区。从接收状态开始,该内存缓冲区将被标记为忙状态。
处理模块初始化之后,询问输出模块的输出缓冲区是否可用,如果可用,则把处理结果写入输出模块的输出缓冲区中,否则等待。并且,询问输入模块的输入缓冲区是否为空,如果不为空,则在输入模块的输入缓冲区中读取数据,进行相应的数据处理类型的操作。反之,等待计时后,再次询问。
输出模块初始化之后,监听网络端口和处理模块的请求,若输出模块的两个输出缓冲区OA、OB均为忙或者只有一个为忙,向下一个段***发送数据传输请求,得到确认后,将输出缓冲区传输给下一个段***的输入模块。否则等待。在传输时,先传输最先写入的一个输出缓冲区中的数据,并将该输出缓冲区标记为空。
输出模块有OA、OB两个输出缓冲区。仅当输出缓冲区OA、OB同时为空时,认为输出缓冲区是空的,不向下一段***发送传输请求。否则,定时向下一段发送传输请求,当得到允许时,发送输出缓冲区的数据。发送数据时,总是选择最早写入的一个输出缓冲区中的缓冲数据块。仅当下一端***的输入缓冲区IA、IB同时为忙s时,暂时能缓存新的运算结果。当运算模块写运算结构时,总是写入闲置最久的那个缓冲区块。
采用上述的***,根据监控线程的反馈,我们很容易判断***的瓶颈位置。根据瓶颈点的特点***自动选择细分法、重复法等经典流水冲突解决方案来消除瓶颈。该***与指令流水***一样,存在数据冲突、结构冲突、控制冲突。由于该流水***的段是部署在机器上的服务,通信方便、预测准确,可以更方便的使用数据预取、直接数据同路等方法来化解冲突。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种流水线数据处理***,其特征在于,包括多个分别用于完成不同类型的数据处理的子***,每个所述子***作为一个段***,被配置在一个计算节点上,多个所述段***组成一条数据处理流水线,对需要处理的大数据进行处理,所述需要处理的大数据被划分为多种基础服务,每种所述基础服务对应一种类型的数据处理,由对应的段***完成:所述每个段***完成一种类型的数据处理后,将处理获取的数据传输给下一个段***。
2.如权利要求1所述的***,其特征在于,所述段***包括输入模块、处理模块以及输出模块。
3.如权利要求2所述的***,其特征在于,所述输入模块包括两个输入缓冲区,所述输入模块中部署有输入接收线程,该输入接收线程响应相邻的段***的任务发送请求,在所述两个输入缓冲区中的至少一个为空时,将所述任务发送请求的结果放入空的所述输入缓冲区。
4.如权利要求3所述的***,其特征在于,当所述运算模块需要在所述输入模块中读取数据时,先将所述两个输入缓冲区中写入在先的一个输入缓冲区中的数据发送给所述处理模块,该输入缓冲区的数据被所述处理模块读取后被标记为空闲。
5.如权利要求4所述的***,其特征在于,所述输出模块包括两个输出缓冲区以及网络端口,所述网络端口用于与其他段***的输入模块进行通信。
6.如权利要求5所述的***,其特征在于,所述输出模块的两个输出缓冲区都为忙状态时,所述输出模块拒绝所述处理模块的写入数据请求;所述输出模块向外部发送数据时,先传输所述两个输出缓冲区中先被写入数据的一个输出缓冲区中的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410313311.3A CN104063228A (zh) | 2014-07-02 | 2014-07-02 | 一种流水线数据处理*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410313311.3A CN104063228A (zh) | 2014-07-02 | 2014-07-02 | 一种流水线数据处理*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104063228A true CN104063228A (zh) | 2014-09-24 |
Family
ID=51550952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410313311.3A Pending CN104063228A (zh) | 2014-07-02 | 2014-07-02 | 一种流水线数据处理*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104063228A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021008260A1 (zh) * | 2019-07-15 | 2021-01-21 | 北京一流科技有限公司 | 数据执行体及其数据处理方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080168206A1 (en) * | 2007-01-05 | 2008-07-10 | Mark David Bellows | Methods and Apparatus for Interfacing a Processor and a Memory |
CN101448027A (zh) * | 2008-12-29 | 2009-06-03 | 中国科学院计算技术研究所 | 一种流水线Web服务器的***及其工作方法 |
CN101526924A (zh) * | 2009-04-22 | 2009-09-09 | 东南大学 | 一种优化数字信号处理芯片数据访问的方法 |
CN102223418A (zh) * | 2011-06-27 | 2011-10-19 | 中国科学院计算技术研究所 | 基于动态流水线网络服务器的分布式Cache***及其工作方法 |
CN102594891A (zh) * | 2012-02-17 | 2012-07-18 | 中国科学院计算技术研究所 | 用于处理远程过程调用请求的方法及*** |
US8281012B2 (en) * | 2008-01-30 | 2012-10-02 | International Business Machines Corporation | Managing parallel data processing jobs in grid environments |
CN103401888A (zh) * | 2013-08-21 | 2013-11-20 | 杭州浦禾通信技术有限公司 | 多媒体数据的接收与处理方法和装置 |
CN103488775A (zh) * | 2013-09-29 | 2014-01-01 | 中国科学院信息工程研究所 | 一种用于大数据处理的计算***及计算方法 |
-
2014
- 2014-07-02 CN CN201410313311.3A patent/CN104063228A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080168206A1 (en) * | 2007-01-05 | 2008-07-10 | Mark David Bellows | Methods and Apparatus for Interfacing a Processor and a Memory |
US8281012B2 (en) * | 2008-01-30 | 2012-10-02 | International Business Machines Corporation | Managing parallel data processing jobs in grid environments |
CN101448027A (zh) * | 2008-12-29 | 2009-06-03 | 中国科学院计算技术研究所 | 一种流水线Web服务器的***及其工作方法 |
CN101526924A (zh) * | 2009-04-22 | 2009-09-09 | 东南大学 | 一种优化数字信号处理芯片数据访问的方法 |
CN102223418A (zh) * | 2011-06-27 | 2011-10-19 | 中国科学院计算技术研究所 | 基于动态流水线网络服务器的分布式Cache***及其工作方法 |
CN102594891A (zh) * | 2012-02-17 | 2012-07-18 | 中国科学院计算技术研究所 | 用于处理远程过程调用请求的方法及*** |
CN103401888A (zh) * | 2013-08-21 | 2013-11-20 | 杭州浦禾通信技术有限公司 | 多媒体数据的接收与处理方法和装置 |
CN103488775A (zh) * | 2013-09-29 | 2014-01-01 | 中国科学院信息工程研究所 | 一种用于大数据处理的计算***及计算方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021008260A1 (zh) * | 2019-07-15 | 2021-01-21 | 北京一流科技有限公司 | 数据执行体及其数据处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20130283286A1 (en) | Apparatus and method for resource allocation in clustered computing environment | |
CN103106249A (zh) | 一种基于Cassandra的数据并行处理*** | |
CN103019838B (zh) | 一种基于多dsp处理器平台的分布式实时多任务操作*** | |
CN100498748C (zh) | 计算机***及直接内存访问传输方法 | |
KR20120087980A (ko) | 다중 인터페이스 솔리드 스테이트 디스크, 및 다중 인터페이스 솔리드 스테이트 디스크의 처리 방법 및 시스템 | |
CN104657308A (zh) | 一种用fpga实现的服务器硬件加速的方法 | |
CN104965678A (zh) | 一种固态存储的控制方法、装置及固态存储设备 | |
CN102843426A (zh) | 基于智能父节点的Web缓存资源共享***和方法 | |
CN102831014A (zh) | 一种利用多请求队列提升io并行性和减少小io延迟的方法 | |
CN109697122A (zh) | 任务处理方法、设备及计算机存储介质 | |
CN103353851A (zh) | 一种管理任务的方法和设备 | |
CN103092920A (zh) | 半结构化数据的存储方法及存储*** | |
CN104750690A (zh) | 一种查询处理方法、装置及*** | |
CN103309833A (zh) | 设备整合方法、终端装置和分布式多终端装置*** | |
US8639840B2 (en) | Processing unit, chip, computing device and method for accelerating data transmission | |
AU2015402888A1 (en) | Computer device and method for reading/writing data by computer device | |
CN103222286B (zh) | 路由交换装置、网络交换***和路由交换方法 | |
CN110716691A (zh) | 调度方法、装置、闪存设备和*** | |
CN104239252A (zh) | 数据存储***的数据传输方法、装置及*** | |
CN1331070C (zh) | 数据通信的方法及设备 | |
CN102402422A (zh) | 处理器组件及该组件内存共享的方法 | |
CN101452430A (zh) | 多处理器之间的通信方法与包括多处理器的通信装置 | |
CN104765701A (zh) | 数据访问方法及设备 | |
CN103778086A (zh) | 一种基于粗粒度动态可重构***的多模式数据访问装置及办法 | |
CN103853676B (zh) | 基于PCIe总线的信道分配、释放、数据传输方法和*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140924 |
|
RJ01 | Rejection of invention patent application after publication |