[发明专利]一种基于协程的Cuckoo哈希优化方法在审
| 申请号: | 202111460426.1 | 申请日: | 2021-12-01 |
| 公开(公告)号: | CN114116727A | 公开(公告)日: | 2022-03-01 |
| 发明(设计)人: | 李雅欣;陈浩 | 申请(专利权)人: | 湖南大学 |
| 主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F9/50 |
| 代理公司: | 暂无信息 | 代理人: | 暂无信息 |
| 地址: | 410082 湖南省*** | 国省代码: | 湖南;43 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 cuckoo 优化 方法 | ||
本发明涉及哈希索引领域,对标识哈希桶是否全部被占用的标志位进行预取,在使用到标志位之前,将数据预取到Cache中,从而避免CPU频繁访问内存;利用协程在多个并发的数据流之间进行切换,隐藏预取数据到数据返回的等待时间。通过本发明提出的这种方法,可以隐藏哈希探测期间,频繁的内存访问而导致的CPU停滞,从而提升哈希表的插入速度。本发明针对现有技术的不足,提供了一种基于协程的Cuckoo哈希优化方法,解决了现有技术中所存在的部分问题。
技术领域
本发明涉及数据索引领域,提出一种索引优化方法,具体为利用多协程对常见的Cuckoo哈希进行优化,以改善其由于查询依赖早期数据,而导致的并发性不足,缓解了数据库存在的内存瓶颈问题。
背景技术
全球步入大数据化的时代背景下,信息技术已涉及各个行业,数据信息量呈几何级增长,如何构建更高效的数据库,并从海量的数据中快速提取目的数据,是一个重要的应用研究方向。
常见的数据库有层次式数据库、网络式数据库、关系型数据库和非关系型数据库。由于层次式数据库对插入和删除操作的限制比较多,网络式数据库结构比较复杂,不利于用户掌握。因此,目前最常用的数据库类型主要有两种,分别是关系型数据库以及非关系型数据库。
非关系型数据库中最常用的数据索引是哈希索引,其代表为LibCuckoo。存储对象通过哈希函数映射到存储地址,从而存储在哈希表中。查找数据或对象时再利用哈希函数计算出该元素的存储位置,快速的获取元素。
但是元素经过哈希函数产生的映射是有范围的,存在多个元素经过哈希函数后映射到同一个哈希桶的情况,从而引发哈希冲突,导致插入、查找速度降低。常用的解决哈希冲突的方法有链表法、开放地址法、再散列法。
LibCuckoo使用开放寻址法来解决哈希冲突的问题。具体采用的是Cuckoo哈希,与其他开放寻址的哈希不同之处在于,Cuckoo哈希利用两个哈希函数来解决哈希冲突。待插入的元素X经过两个哈希函数h1、h2,求得两个备选位置。只要两个哈希桶有一个不为空,则将待插入的键值对插入此候选桶。当两个候选桶都被占用时,任选一个桶中的键值对进行踢出,将待插入键值对插入。对于被踢出的键值对,重新利用哈希函数,检测另一个候选哈希桶是否为空,重复上述步骤,直到键值对全部插入哈希表,这条踢出路径称为Cuckoo路径。
但是现有的LibCuckoo还存在一些问题,当插入一个键值对时,需要查找一条有空闲哈希桶的Cuckoo路径。由于键值对经过哈希函数后,映射到的哈希桶地址空间上是分散的,在最近或者将来用到的信息和当前正在使用的信息在地址空间上并不是临近的。CPU访问存储器的时候,没有办法利用空间局部性原理。下一次需要访问到的数据恰好在Cache中的概率很低,都需要从内存中重新读取到Cache中。当查询某个数据时,目的数据的查找依赖于早期数据的获取,CPU无法并发处理一条Cuckoo路径上的查找,需要频繁等待内存数据返回。
针对这一问题,学术界已经提出了许多基于软件预取的技术,用来缓解内存访问而导致CPU停滞的问题。主要方法是对多个独立的指令流并发地进行内存数据预取,从而利用计算机的内存级硬件并行性。但上述技术方案都需要对原有同步的代码进行异步重构,增加了开发人员的开发成本。
最近,协程受到了学术界和工业界越来越多的关注,相较于现有技术,协程可以用编写同步代码的方式编写异步代码;并且暂停和恢复完全由用户定义,可以在用户态进行协程切换操作;还能在线程中以串行的方式执行,不存在对于临界区数据的竞争,极大的减少了锁的使用、提高了程序的效率。
本发明利用协程轻量级切换的特性,交错多个查找的指令流,充分利用内存级硬件并行性,从而提高数据库响应速度。
发明内容
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于湖南大学,未经湖南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111460426.1/2.html,转载请声明来源钻瓜专利网。





