一种数据处理的方法和装置制造方法及图纸

技术编号:26170837 阅读:21 留言:0更新日期:2020-10-31 13:40
本发明专利技术公开了一种数据处理的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:能够处理包括多个索引键值的数据明细,并基于任意索引键值查找数据明细的内存地址,从而实现了利用不同的索引键值查询同一条数据明细,提高了数据查询的效率,并且利用多个索引键值的哈希表存储数据明细的内存地址而不是存储数据明细本身,减少了内存的占用;在对哈希表执行数据处理操作时,利用子哈希表锁以及对应的待处理队列,克服了需要利用多线程调度而带来的数据处理复杂度高的问题。

A data processing method and device

【技术实现步骤摘要】
一种数据处理的方法和装置
本专利技术涉及计算机
,尤其涉及一种数据处理的方法和装置。
技术介绍
随着信息技术的快速发展,应用系统中对数据存储和查询的性能要求越来越高,对基于内存数据的存储或查询也提出了更高的要求,目前内存数据的存储方式通常采用键值对的数据结构,即一个键值对应一个数据的存储结构,同时内存数据往往用于多线程模式的应用系统中。在实现本专利技术过程中,专利技术人发现现有技术中至少存在如下问题:在实际应用场景中,存在需要利用不同的键值查询一个包含多个键值的内存数据的业务需求,而通过现有的一个键值对应一个数据的结构,无法利用不同键值查询同一个内存数据,并直接获取其他键值对应的数据,同时利用多个键值对的存储方法增加了内存资源的消耗;并且在多线程模式的应用系统中,还需要调度对于存储和查询内存数据相关的线程,增加了数据处理的复杂度。
技术实现思路
有鉴于此,本专利技术实施例提供一种数据处理的方法和装置,能够处理包括多个索引键值的数据明细,并基于任意索引键值查找数据明细的内存地址,从而实现了利用不同的索引键值查询同一条数据明细,提高了数据查询的效率,并且利用多个索引键值的哈希表存储数据明细的内存地址而不是存储数据明细本身,减少了内存的占用;在对哈希表执行数据处理操作时,利用子哈希表锁以及对应的待处理队列,克服了需要利用多线程调度而带来的数据处理复杂度高的问题。为实现上述目的,根据本专利技术实施例的一个方面,提供了一种数据处理的方法,其特征在于,包括:待处理的数据明细包括至少两个索引键值、以及所述索引键值对应的索引取值;所述索引键值分别关联对应的哈希表,所述哈希表包含第一数量的子哈希表,所述子哈希表包含第二数量的哈希链;分别根据所述索引取值的哈希值、所述第一数量和所述第二数量,计算所述索引取值的哈希值对应于所述哈希表、所述子哈希表、以及所述哈希链的元素位置;所述元素位置用于存储所述数据明细的内存地址;接收数据读写指令,所述数据读写指令包括待操作的索引键值以及对应的索引取值,根据所述索引取值确定所述索引取值对应的所述元素位置,并执行对所述数据明细的内存地址的读写操作。可选地,所述数据处理的方法,其特征在于,根据所述索引取值的哈希值、所述第一数量和所述第二数量,计算所述索引取值的哈希值对应的所述哈希表、所述子哈希表、以及所述哈希链的元素位置,包括:根据所述索引取值的哈希值的预定义部分的数值,确定所述元素位置所归属的所述子哈希表;可选地,所述数据处理的方法,其特征在于,根据所述索引取值的哈希值、所述第一数量和所述第二数量,计算所述索引取值的哈希值对应的所述哈希表、所述子哈希表、以及所述哈希链的元素位置,包括:根据所述索引取值的哈希值的位数,计算所述哈希值除去所述预定义部分后的剩余部分,以所述第二数量对所述剩余部分取模所得的余数,确定所述索引取值的哈希值对应的所述哈希链的元素位置。可选地,所述数据处理的方法,其特征在于,所述子哈希表设置对应的子哈希表锁,以及对应于所述子哈希表锁的数据待处理队列。可选地,所述数据处理的方法,其特征在于,当所述数据读写指令为存储时,获取所述索引取值对应的子哈希表锁:当获取到所述子哈希表锁时,将所述数据明细的内存地址存储于所述元素位置,并将所述内存地址所指向的数据明细的引用计数加一;当未获取到所述子哈希表锁时,将所述元素位置、所述数据明细的内存地址以及对应的数据存储指令保存于所述待处理数据队列中。可选地,所述数据处理的方法,其特征在于,当所述数据读写指令为删除时,获取所述索引取值对应的子哈希表锁:当获取到所述子哈希表锁时,基于所述元素位置,删除所述数据明细的内存地址,并将所述内存地址所指向的数据明细的引用计数减一;当未获取到所述子哈希表锁时,将所述元素位置、所述数据明细的内存地址以及对应的数据删除指令保存于所述待处理数据队列中。可选地,所述数据处理的方法,其特征在于,当所述数据读写指令为查询时,获取所述索引取值对应的子哈希表锁:当获取到所述子哈希表锁时,获取所述待处理数据队列中待处理数据的数量,当所述数量为0时,获取所述元素位置存储的所述数据明细的内存地址,根据内存地址获取所述数据明细,将所述内存地址所指向的数据明细的引用计数加一;当所述数量不小于1时,根据所述待处理数据的存储或者删除的读写指令执行对应的数据读写操作;当对所述数据明细的数据读写指令完成后,将所述内存地址所指向的数据明细的引用计数减一。为实现上述目的,根据本专利技术实施例的第二方面,提供了一种数据处理的装置,其特征在于,包括:获取索引键值以及数据模块、计算索引取值元素位置模块和执行数据读写处理模块;其中,所述获取索引键值以及数据模块,包括待处理的数据明细包括至少两个索引键值、以及所述索引键值对应的索引取值;所述索引键值分别关联对应的哈希表,所述哈希表包含第一数量的子哈希表,所述子哈希表包含第二数量的哈希链;所述计算索引取值元素位置模块,用于分别根据所述索引取值的哈希值、所述第一数量和所述第二数量,计算所述索引取值的哈希值对应于所述哈希表、所述子哈希表、以及所述哈希链的元素位置;所述元素位置用于存储所述数据明细的内存地址;所述执行数据读写处理模块,用于接收数据读写指令,所述数据读写指令包括待操作的索引键值以及对应的索引取值,根据所述索引取值确定所述索引取值对应的所述元素位置,并执行对所述数据明细的内存地址的读写操作。可选地,所述数据处理的装置,其特征在于,根据所述索引取值的哈希值、所述第一数量和所述第二数量,计算所述索引取值的哈希值对应的所述哈希表、所述子哈希表、以及所述哈希链的元素位置,包括:根据所述索引取值的哈希值的预定义部分的数值,确定所述元素位置所归属的所述子哈希表;可选地,所述数据处理的装置,其特征在于,根据所述索引取值的哈希值、所述第一数量和所述第二数量,计算所述索引取值的哈希值对应的所述哈希表、所述子哈希表、以及所述哈希链的元素位置,包括:根据所述索引取值的哈希值的位数,计算所述哈希值除去所述预定义部分后的剩余部分,以所述第二数量对所述剩余部分取模所得的余数,确定所述索引取值的哈希值对应的所述哈希链的元素位置。可选地,所述数据处理的装置,其特征在于,所述子哈希表设置对应的子哈希表锁,以及对应于所述子哈希表锁的数据待处理队列。可选地,所述数据处理的装置,其特征在于,当所述数据读写指令为存储时,获取所述索引取值对应的子哈希表锁:当获取到所述子哈希表锁时,将所述数据明细的内存地址存储于所述元素位置,并将所述内存地址所指向的数据明细的引用计数加一;当未获取到所述子哈希表锁时,将所述元素位置、所述数据明细的内存地址以及对应的数据存储指令保存于所述待处理数据队列中。可选地,所述数据处理的装置,其特征在于,当所述数据读写指令为删除时,获取所本文档来自技高网...

【技术保护点】
1.一种数据处理的方法,其特征在于,包括:/n待处理的数据明细包括至少两个索引键值、以及所述索引键值对应的索引取值;所述索引键值分别关联对应的哈希表,所述哈希表包含第一数量的子哈希表,所述子哈希表包含第二数量的哈希链;/n分别根据所述索引取值的哈希值、所述第一数量和所述第二数量,计算所述索引取值的哈希值对应于所述哈希表、所述子哈希表、以及所述哈希链的元素位置;所述元素位置用于存储所述数据明细的内存地址;/n接收数据读写指令,所述数据读写指令包括待操作的索引键值以及对应的索引取值,根据所述索引取值确定所述索引取值对应的所述元素位置,并执行对所述数据明细的内存地址的读写操作。/n

【技术特征摘要】
1.一种数据处理的方法,其特征在于,包括:
待处理的数据明细包括至少两个索引键值、以及所述索引键值对应的索引取值;所述索引键值分别关联对应的哈希表,所述哈希表包含第一数量的子哈希表,所述子哈希表包含第二数量的哈希链;
分别根据所述索引取值的哈希值、所述第一数量和所述第二数量,计算所述索引取值的哈希值对应于所述哈希表、所述子哈希表、以及所述哈希链的元素位置;所述元素位置用于存储所述数据明细的内存地址;
接收数据读写指令,所述数据读写指令包括待操作的索引键值以及对应的索引取值,根据所述索引取值确定所述索引取值对应的所述元素位置,并执行对所述数据明细的内存地址的读写操作。


2.根据权利要求1所述的方法,其特征在于,
根据所述索引取值的哈希值、所述第一数量和所述第二数量,计算所述索引取值的哈希值对应的所述哈希表、所述子哈希表、以及所述哈希链的元素位置,包括:
根据所述索引取值的哈希值的预定义部分的数值,确定所述元素位置所归属的所述子哈希表。


3.根据权利要求2所述的方法,其特征在于,
根据所述索引取值的哈希值、所述第一数量和所述第二数量,计算所述索引取值的哈希值对应的所述哈希表、所述子哈希表、以及所述哈希链的元素位置,包括:
根据所述索引取值的哈希值的位数,计算所述哈希值除去所述预定义部分后的剩余部分,以所述第二数量对所述剩余部分取模所得的余数,确定所述索引取值的哈希值对应的所述哈希链的元素位置。


4.根据权利要求1所述的方法,其特征在于,
所述子哈希表设置对应的子哈希表锁,以及对应于所述子哈希表锁的数据待处理队列。


5.根据权利要求4所述的方法,其特征在于,
当所述数据读写指令为存储时,获取所述索引取值对应的子哈希表锁:
当获取到所述子哈希表锁时,将所述数据明细的内存地址存储于所述元素位置,并将所述内存地址所指向的数据明细的引用计数加一;
当未获取到所述子哈希表锁时,将所述元素位置、所述数据明细的内存地址以及对应的数据存储指令保存于所述待处理数据队列中。


6.根据权利要求4所述的方法,其特征在于,
当所述数据读写指令为删除时,获取所述索引取值对应的子哈希表锁:
当...

【专利技术属性】
技术研发人员:刘中砥徐超赵福仁
申请(专利权)人:北京天空卫士网络安全技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1