[发明专利]一种无锁数据汇聚方法及装置有效
申请号: | 201310413005.2 | 申请日: | 2013-09-11 |
公开(公告)号: | CN103488717B | 公开(公告)日: | 2017-02-22 |
发明(设计)人: | 李成金;郑驰 | 申请(专利权)人: | 北京华胜天成科技股份有限公司;北京华胜天成软件技术有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F9/46;H04L29/06 |
代理公司: | 北京品源专利代理有限公司11332 | 代理人: | 胡彬 |
地址: | 100192 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据 汇聚 方法 装置 | ||
技术领域
本发明涉及计算机应用技术领域,具体涉及数据存储技术领域,尤其涉及无锁数据汇聚方法及装置。
背景技术
数据汇聚技术是将多份数据或信息进行处理,组合出更有效、更符合用户需求的数据的过程,在进行数据汇聚时,应用程序在实时从网络中接收数据后,必须对接收的数据进行缓存,其它应用程序从缓存中取出数据,对所取出的数据进行汇聚。
目前,将数据存入缓存、从缓存取出数据是“原子”操作,即一方在进行操作时,另一方不对缓存进行操作,传统情况下,由于数据流量很小,一般采取对缓存“加锁”的方式来保证操作的原子性。但是当数据流量上升到10Mpbs以上时,加锁方式处理数据的速度已经远远不能满足应用的要求。
发明内容
有鉴于此,本发明实施例提供一种无锁数据汇聚方法及装置,来解决以上背景技术部分提到的技术问题。
本发明实施例采用以下技术方案:
第一方面,本发明实施例提供了一种无锁数据汇聚方法,包括:
在缓存中开辟至少一个缓存内存数组,所述缓存内存数组的属性包括取指针、存指针和用于标识所述存指针是否在所述取指针前面的缓存标志;
创建至少一个用于将从客户端提取的数据包保存到缓存内存数组存线程和至少一个用于从缓存内存数组中取出数据包的取线程,以使所开辟的各缓存内存数组均有一个对应的存线程和一个对应的取线程;
使所开辟的各缓存内存数组所对应的存线程和取线程根据所对应的缓存内存数组的属性进行线程运行或线程等待,以并行从至少一个客户端提取数据包并进行汇聚。
第二方面,本发明实施例还提供了一种无锁数据汇聚装置,包括:
缓存内存数组创建单元,用于在缓存中开辟至少一个缓存内存数组,所述缓存内存数组的属性包括取指针、存指针和用于标识所述存指针是否在所述取指针前面的缓存标志;
线程创建单元,用于创建至少一个用于将从客户端提取的数据包保存到缓存内存数组存线程和至少一个用于从缓存内存数组中取出数据包的取线程,以使所开辟的各缓存内存数组均有一个对应的存线程和一个对应的取线程;
线程运行单元,用于使所开辟的各缓存内存数组所对应的存线程和取线程根据所对应的缓存内存数组的属性进行线程运行或线程等待,以并行从至少一个客户端提取数据包并进行汇聚。
本发明实施例提出的技术主案的有益技术效果是:
本发明实施例通过在缓存中开辟至少一个缓存内存数组,创建至少一个用于将从客户端提取的数据包保存到缓存内存数组存线程和至少一个用于从缓存内存数组中取出数据包的取线程,以使所开辟的各缓存内存数组均有一个对应的存线程和一个对应的取线程,使所开辟的各缓存内存数组所对应的存线程和取线程根据所对应的缓存内存数组的属性进行线程运行或线程等待,以并行从至少一个客户端提取数据包并进行汇聚。本发明实施例避免了对缓存“加锁”而限制数据包的提取效率,能实现多个线程并发地从通过缓存进行数据汇聚,能提高数据汇聚的效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据本发明实施例的内容和这些附图获得其他的附图。
图1是本发明具体实施例一所述的无锁数据汇聚方法流程图;
图2是本发明具体实施例一所述的无锁数据汇聚示意图;
图3是本发明具体实施例二所述的存线程的方法流程图;
图4是本发明具体实施例二所述的取线程的方法流程图;
图5是本发明具体实施例二所述的无锁数据汇聚示意图;
图6是本发明具体实施例三所述的无锁数据汇聚装置的结构框图;
图7是本发明具体实施例四所述的无锁数据汇聚装置的结构框图。
具体实施方式
为使本发明解决的技术问题、采用的技术方案和达到的技术效果更加清楚,下面将结合附图对本发明实施例的技术方案作进一步的详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。
实施例一
图1是本实施例所述的无锁数据汇聚方法流程图,如图1所示,本实施例所述的无锁数据汇聚方法包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京华胜天成科技股份有限公司;北京华胜天成软件技术有限公司,未经北京华胜天成科技股份有限公司;北京华胜天成软件技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310413005.2/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置