[发明专利]数据处理方法及装置有效
申请号: | 201210384703.X | 申请日: | 2012-10-11 |
公开(公告)号: | CN103729304A | 公开(公告)日: | 2014-04-16 |
发明(设计)人: | 樊华 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F12/08 | 分类号: | G06F12/08 |
代理公司: | 深圳翼盛智成知识产权事务所(普通合伙) 44300 | 代理人: | 欧阳启明 |
地址: | 518000 广东省深*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据处理 方法 装置 | ||
【技术领域】
本发明涉及数据处理技术领域,特别是涉及一种数据处理方法及装置。
【背景技术】
全内存索引广泛运用于需要实时更新的信息检索系统,如搜索广告播放系统、实时搜索等。其中索引的数据结构决定着索引的数据更新方式和检索方式。为了提升服务并发性能,全内存索引运行在多核多线程环境下,即由一个更新线程更新索引,同时多个读线程读取索引。
现有技术中,主要存在以下几种索引方式:
第一、阻塞型同步索引;当读线程或者写线程需要访问更新索引时,因另外一个线程已经持有访问该共享数据的锁,因此不能获取锁资源而阻塞,直到另外一个线程释放锁。该方式极易造成死锁(deadlock),活锁(livelock)和优先级反转(priority inversion)以及效率低下等问题。
第二、免锁结构索引;利用指针切换的原子性,在内存中维护两份内存缓冲(buffer):读缓冲和写缓冲,并通过一指针标示当前执行的为读缓冲还是写缓冲。譬如当更新线程将写缓冲更新完毕后,切换至读缓冲进行读写。但是该方式由于使用双缓冲,造成内存的浪费,而且索引数据本来就占用大量内存,如果用双缓冲,内存占用增加一倍。
综上,需要解决现有技术中,在更新线程和读写线程同步时,占用内存空间大,以及处理效率低下的技术问题。
【发明内容】
本发明的一个目的在于提供一种数据处理方法,旨在解决现有技术在更新线程和读写线程同步时,占用内存空间大,以及处理效率低下的技术问题。
为解决上述技术问题,本发明构造了一种数据处理方法,:所述方法包括以下步骤:
同步接收数据更新请求以及数据处理请求,所述数据更新请求用于将待写入数据替换待删除数据;所述数据处理请求用于对所述待删除数据进行相应的处理;
将待写入数据存储至第一存储空间;
将待删除数据存储至第二存储空间;
判断符合释放条件的数据处理请求是否执行完毕;
若符合释放条件的数据处理请求执行完毕,则将所述第二存储空间的待删除数据释放。
在本发明一实施例中:同步接收数据更新请求以及数据处理请求之前,所述方法还包括以下步骤:
预先设置内存索引,所述内存索引包括第一索引空间以及第二索引空间;
所述第一索引空间用于存储待写入数据的指针;
所述第二索引空间用于存储待删除数据索引。
在本发明一实施例中:将待删除数据存储至第二存储空间时,所述方法还包括以下步骤:
在所述第一索引空间中将所述待写入数据指针替换待删除数据指针;
将所述待删除数据索引存储至所述第二索引空间。
在本发明一实施例中:判断符合释放条件的数据处理请求是否执行完毕的步骤具体包括:
在接收到数据处理请求时,获取对应该数据处理请求的第一时间标识;
在所述第一索引空间中将所述待写入数据指针替换待删除数据指针时,获取第二时间标识;
若所述第二时间标识早于所有的第一时间标识,且所述第一时间标识对应的数据处理请求执行完毕,则将所述数据处理请求对应的待删除数据释放。
在本发明一实施例中:所述内存索引还包括第三索引空间,所述第三索引空间用于存储当前正在运行的数据更新请求的时间标识。
本发明的一个目的在于提供一种数据处理装置,旨在解决现有技术在更新线程和读写线程同步时,占用内存空间大,以及处理效率低下的技术问题。
为解决上述技术问题,本发明构造了一种数据处理装置,所述装置包括:
请求接收模块,用于同步接收数据更新请求以及数据处理请求,其中所述数据更新请求用于将待写入数据替换待删除数据;所述数据处理请求用于对所述待删除数据进行相应的处理;
数据存储模块,用于将待写入数据存储至第一存储空间;以及将待删除数据存储至第二存储空间;
判断模块,用于判断符合释放条件的数据处理请求是否执行完毕;
数据释放模块,用于在所述判断模块判断符合释放条件的数据处理请求执行完毕时,将所述第二存储空间的待删除数据释放。
在本发明一实施例中:所述装置还包括:
设置模块,用于预先设置内存索引,所述内存索引包括第一索引空间以及第二索引空间;所述第一索引空间用于存储待写入数据的指针;所述第二索引空间用于存储待删除数据索引。
在本发明一实施例中:所述装置还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210384703.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种适用于配线架的测线装置
- 下一篇:变送器