[发明专利]数据处理方法、装置、电子设备及可读存储介质在审
申请号: | 202011390276.7 | 申请日: | 2020-12-01 |
公开(公告)号: | CN112579595A | 公开(公告)日: | 2021-03-30 |
发明(设计)人: | 张健;魏立;杨斯文;尹文涛 | 申请(专利权)人: | 北京三快在线科技有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/28 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 任亚娟 |
地址: | 100083 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据处理 方法 装置 电子设备 可读 存储 介质 | ||
本公开提供了一种数据处理方法、装置、电子设备及可读存储介质。所述方法包括:在接收到对待处理数据的写入操作的情况下,获取所述待处理数据对应的目标哈希值;获取预先申请的目标内存中的目标分区内存;获取所述目标分区内存中可用的与所述待处理数据对应的目标分片内存;根据所述目标分片内存中的各内存块的内存状态,获取所述各内存块中与所述待处理数据匹配的目标内存块;将所述待处理数据写入所述目标内存块;生成所述目标分区内存、所述目标分片内存和所述目标内存块对应的目标索引地址,并建立所述目标哈希值与所述目标索引地址之间的映射关系。本公开可以减少GC扫描对象的数量,降低了GC扫描消耗大量计算资源的问题,并降低了GC扫描对系统性能的影响。
技术领域
本公开的实施例涉及数据处理技术领域,尤其涉及一种数据处理方法、装置、电子设备及可读存储介质。
背景技术
内存数据库是指一种将全部内容存放在内存中,而非传统数据库那样存放在外部存储器中的数据库。内存数据库指的是所有的数据访问控制都在内存中进行,由于内存的读写速度极快,随机访问时间更是可以纳秒计,所以这种数据库的读写性能很高,主要用在对性能要求极高的环境中。
基于Golang程序中支持原生map可以作为内存的数据结构。map是Golang中原生实现的哈希表,是Golang基本数据类型之一,在理想状态下可以实现O(1)复杂度的数据读写。原生map的内存数据库实现,一对简单的字符串(string)类型,会占用两个内存对象。Golang的GC是基于可达性分析(三色标记),当内存中存在大量堆对象时,GC扫描需要消耗大量计算资源。因此基于map的内存实现随着数据量的增加很容易受GC干扰,出现抖动,影响性能。
发明内容
本公开的实施例提供一种数据处理方法、装置、电子设备及可读存储介质,用以减少内存对象的数量,以降低GC对系统性能的影响。
根据本公开的实施例的第一方面,提供了一种数据处理方法,包括:
在接收到对待处理数据的写入操作的情况下,获取所述待处理数据对应的目标哈希值;
获取预先申请的目标内存中的目标分区内存;
获取所述目标分区内存中可用的与所述待处理数据对应的目标分片内存;
根据所述目标分片内存中的各内存块的内存状态,获取所述各内存块中与所述待处理数据匹配的目标内存块;
将所述待处理数据写入所述目标内存块;
生成所述目标分区内存、所述目标分片内存和所述目标内存块对应的目标索引地址,并建立所述目标哈希值与所述目标索引地址之间的映射关系。
可选地,在所述获取所述待处理数据对应的目标哈希值之前,还包括:
在本地内存中申请可用的预设大小的目标内存;
对所述目标内存进行内存划分,得到所述目标内存对应的多个分区内存;
对每个所述分区内存进行内存分片处理,得到每个所述分区内存对应的多个分片内存;每个所述分片内存中均包含有多个内存块。
可选地,所述获取所述待处理数据对应的目标哈希值,包括:
获取所述待处理数据中的关键词;
对所述关键词进行哈希处理,生成所述待处理数据对应的目标哈希值。
可选地,在所述建立并保存所述目标哈希值与所述目标分区内存、所述目标分片内存和所述目标内存块之间的映射关系之后,还包括:
获取用户输入的查询关键词;
对所述查询关键词进行哈希处理,生成所述查询关键词对应的第一哈希值;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京三快在线科技有限公司,未经北京三快在线科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011390276.7/2.html,转载请声明来源钻瓜专利网。