[发明专利]一种数据读写方法及装置在审
申请号: | 201410768410.0 | 申请日: | 2014-12-12 |
公开(公告)号: | CN104391662A | 公开(公告)日: | 2015-03-04 |
发明(设计)人: | 刘中超;王康;朱超;王超 | 申请(专利权)人: | 北京奇虎科技有限公司;奇智软件(北京)有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 北京国昊天诚知识产权代理有限公司 11315 | 代理人: | 许志勇 |
地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据 读写 方法 装置 | ||
技术领域
本申请涉及通信技术领域,尤其涉及一种数据读写方法及装置。
背景技术
在基于多核操作系统的设备中,通常采用多进程和多线程的模式处理(如,读或写)数据,例如,写进程通过其自身的线程向共享内存中写入数据,以供读进程读取,读进程通过自身的线程从共享内存中读取其所需的数据。
而在实际应用中,共享内存中可能并不存在读进程所需要的数据,因此,会出现读进程可能无法从共享内存中读取到其所需要的数据的问题。
针对上述问题,在现有技术中,可利用写进程获取读进程所需要的数据对应的键值(即key值),并从网络侧的服务器中获取该键值对应的数据,将该获取的数据写入共享内存中,以供读进程读取。
而由于读进程与写进程之间是无法直接进行通信的,因此,为了保证写进程能够获取读进程所需要的数据对应的key值,在现有技术中,先预设一个队列,读进程将其所需要的各数据的key值写入该队列中,而写进程从该队列中获取key值,并从网络侧的服务器中获取该key值对应的数据,将该数据写入共享内存中以供读进程读取。
然而,写进程每次从队列中读取出一个键值之后,需要先从网络侧的服务器中获取该键值对应的数据,并将该数据写入共享内存中,然后才从队列中读取下一个键值。一般的,写进程从网络侧获取一个键值对应的数据所需要的时间,远远大于读进程向队列中写入一个键值所需要的时间。因此,当读进程在短时间内向该队列中写入自身所需要的数据的多个key值时,队列中的多个键值容易造成堆积。
由于队列的存储空间较小,其容量一般仅为几十KB,这就会导致队列很快就会被堆积的键值占满,从而会造成后续读进程无法再将其所需要的数据的key值写入队列,进而导致后续读进程无法从共享内存中读取到其所需要的数据。
发明内容
鉴于上述问题,本发明提出一种能够有效克服上述问题的数据读写方法及装置,可保证读进程能够从共享内存中读取到其所需的数据。
根据本发明的第一个方面,提出一种数据写入方法,包括:
读取队列中的键值;
将读取的所述键值保存在预设的存储区域中,并删除队列中的所述键值;
根据所述存储区域中的所述键值,获取所述键值对应的数据;以及
将获取的数据写入共享内存中。
可选的,所述方法还包括:
根据获取的数据,确定所述数据对应的校验值;以及
将所述数据对应的校验值写入共享内存中。
可选的,根据获取的数据,确定所述数据对应的校验值,具体包括:
通过信息摘要算法确定所述数据对应的校验值。
可选的,获取所述键值对应的数据,具体包括:
从协调服务器Zookeeper中获取所述键值对应的数据。
可选的,读取队列中的键值,具体包括:
通过第一线程读取队列中的键值;
获取所述键值对应的数据,具体包括:
通过第二线程获取所述键值对应的数据。
根据本发明的第二个方面,提出一种数据读取方法,包括:
向队列中写入待读取的数据对应的键值;
从共享内存中读取所述键值对应的数据;
所述共享内存中所述键值对应的数据是由写进程从所述队列中读取所述键值后,根据所述键值获取并写入所述共享内存中的;其中,所述写进程从所述队列中读取所述键值后,将所述键值保存在预设的存储区域中,并删除所述队列中的所述键值。
可选的,所述方法还包括:
根据读取的数据,确定所述数据对应的第一校验值;
从共享内存中读取所述数据对应的第二校验值;
当所述第一校验值与第二校验值不匹配时,再次从共享内存中读取所述键值对应的数据,直至确定读取的数据的第一校验值与所述第二校验值匹配为止,其中,所述第二校验值是由写入所述数据的写进程写入所述共享内存中的。
可选的,根据读取的数据,确定所述数据对应的第一校验值,具体包括:
通过信息摘要算法确定所述数据对应的第一校验值。
根据本发明的第三个方面,提出一种数据写入装置,包括:
键值读取模块,用于读取队列中的键值;
键值存储模块,用于将读取的所述键值保存在预设的存储区域中;
键值删除模块,用于删除队列中的所述键值;
数据获取模块,用于根据所述存储区域中的所述键值,获取所述键值对应的数据;以及
数据写入模块,用于将获取的数据写入共享内存中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司;奇智软件(北京)有限公司,未经北京奇虎科技有限公司;奇智软件(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410768410.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:便携式信息终端、显示控制方法和程序
- 下一篇:用于处理虚拟世界的装置和方法
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置