基于机器学习的并发哈希索引数据结构的索引方法及系统技术方案

技术编号:27534179 阅读:41 留言:0更新日期:2021-03-03 11:17
本发明专利技术提供了一种基于机器学习的并发哈希索引数据结构的索引方法及系统,包括:步骤M1:从根节点根据请求中的键查找目标键值对所在的组节点;步骤M2:在定位得到的组节点中,根据组节点的机器学习模型计算数据位置;步骤M3:根据数据位置查找目标数据,根据请求类型进行相应操作。本发明专利技术与现有机器学习哈希索引相比,本系统会重新训练机器学习模型,在哈希冲突概率超过阈值时进行哈希扩容操作,使机器学习模型适应新插入的数据,保持索引高性能。保持索引高性能。保持索引高性能。

【技术实现步骤摘要】
基于机器学习的并发哈希索引数据结构的索引方法及系统


[0001]本专利技术涉及数据存储系统数据索引领域,具体地,涉及一种基于机器学习的并发哈希索引数据结构的索引方法及系统,更为具体地,涉及一种基于机器学习的高效并发哈希索引数据结构。

技术介绍

[0002]数据库是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。高效的索引结构对数据库的性能有十分重要的影响。索引是一种加速数据查询操作的数据结构。索引包括许多关键词,每个关键词指向一项数据。索引可以快速地查询某个关键词对应的数据,因此被广泛应用于数据库的高效查询。近年来,随着索引技术的不断发展,出现了机器学习与索引结合的尝试。
[0003]机器学习是人工智能的一个分支,是一类从数据中自动分析获得规律,并利用规律对未知数据进行预测的算法的方法。按照学习形式的不同,机器学习可以分为监督学习、无监督学习、半监督学习、增强学习等等。其具体算法又包括线性回归、支持向量机、决策树、深度神经网络等等。一个机器学习模型由属于决策核心的计算算法和组成决策的变量和特征组成。要使用机器学习技术,首先使用现有数据,按照模型的计算算法对模型进行训练,得到组成决策的变量和特征,之后便可以对新的数据进行推理。由于具有良好的泛化能力,机器学习技术被广泛应用于各个领域。
[0004]在线性表、树之类的索引结构中,记录在结构中的相对位置是随机的,即和记录的关键字之间不存在确定的关系,因此,在结构中查找记录时需进行一系列和关键字的比较。这一类查找方法建立在“比较”的基础上,查找的效率依赖于查找过程中所进行的比较次数。而哈希索引用索引列的值计算该值的哈希码,然后在哈希码相应的位置存执该值所在行数据的物理位置,因为使用散列算法,因此在查找时不需要进行索引的比较,访问速度非常快,但是一个值只能对应一个哈希码,而且是散列的分布方式,因此哈希索引不支持范围查找和排序的功能。
[0005]近年来、利用机器学习技术优化索引结构的概念被提出。其核心思想是将索引视为一个关键词到数据位置的函数,即一个累计分布函数,而这样的线性函数能够很好的使用线性回归、深度神经网络等机器学习模型进行拟合。使用机器学习模型能够一次计算出关键词对应的大致的数据位置范围,然后在范围内进行搜索,避免了传统索引系统的多次内存或者磁盘中的数据查询操作,从而实现更好的读性能。
[0006]现有的基于机器学习的哈希索引方法提出了一种分层结构,结构中的每一层中的模型被单独训练。每一层中的机器学习模型选择下一层要使用哪个模型,而最后一层模型对关键词对应的数据位置进行预测,得到数据所在的位置,从而得到最终的数据。
[0007]然而,现有的基于机器学习的哈希索引仍然存在着许多的不足。具体有以下两方面原因:
[0008]首先,哈希索引的性能和其哈希函数的冲突概率密切相关。由于机器学习模型是
不能实时更新的,每次计算模型后,其哈希函数是固定的,当存在大量的插入操作时,哈希函数的冲突概率会急剧上升,这对整体的哈希索引性能有显著负面影响。因此为保证索引的高性能,必须及时进行哈希扩容操作,减少哈希函数的冲突概率。
[0009]另外,由于存在并发的更新操作,哈希索引在进行哈希扩容操作时很难保证数据的一致性和高性能。一种基本的方法是在哈希扩容时阻塞所有的写操作,等待哈希扩容操作完成后允许写操作继续执行。但方法会极大影响索引的性能。而由于机器模型是不能实时更新的,模型训练需要比较长的时间,所以若在哈希扩容时采用阻塞所有写操作的方法,对性能的影响更加明显。
[0010]目前,还没有一种基于机器学习哈希索引的工作,能够实现高效的读写请求和哈希扩容操作的并发,并根据新插入数据重新训练机器学习模型以保持整体哈希索引的高性能。因此,先前的工作对于基于机器学习的哈希索引的研究并不全面,还有一定的空白。
[0011]专利文献CN106991102A(申请号:201610042152.7)公开了一种倒排索引中键值对的处理方法及处理系统,包括:将键值对中的值按照预设格式生成项目;将所述项目依据其权重进行排序;将所述排序后的项目存储在内存块中,并生成指向所述内存块的指针,其中所述内存块用于形成内存数组;将键值对中的键与所述指针存储为指针数组;将所述指针数组与所述内存数组构成索引列表;将多个键值对所构成的索引列表存储在哈希图中,以形成倒排索引。本专利技术通过将传统的倒排链存储为内存块数组,并生成对应的指针数组,不仅算法复杂度低,而且支持通过二分查找法进行动态插入和删除操作,还支持TopN查询等,对内存消耗也随之降低。

技术实现思路

[0012]针对现有技术中的缺陷,本专利技术的目的是提供一种基于机器学习的并发哈希索引数据结构的索引方法及系统。
[0013]根据本专利技术提供的一种基于机器学习的并发哈希索引数据结构的索引方法,包括:
[0014]步骤M1:从根节点根据请求中的键查找目标键值对所在的组节点;
[0015]步骤M2:在定位得到的组节点中,根据组节点的机器学习模型计算数据位置;
[0016]步骤M3:根据数据位置查找目标数据,根据请求类型进行相应操作。
[0017]优选地,所述步骤M1包括:将请求中的键作为根节点的机器学习模型的输入,计算得到当前键所在的组节点位置,找到目标键值对所在的组节点。
[0018]优选地,所述步骤M3中根据请求类型进行相应操作包括:当请求类型为读请求时,当根据数据位置找到相应的目标数据,则读取目标数据并将读取的目标数据进行返回;当根据数据位置未找到相应的目标数据,则返回空值;当请求类型为写请求时,当根据数据位置找到相应的目标数据,则进行更新操作;当根据数据位置未找到相应的目标数据,则进行插入操作;当请求类型为删除请求时,则删除目标键值对,将目标键值对标记为逻辑删除状态。
[0019]优选地,还包括:遍历所有组节点,根据当前组节点中原节点容量和冲突的键值对数量计算哈希冲突概率,当哈希冲突概率超过阈值时,则进行哈希扩容操作,在当前组节点中创建新节点。
[0020]优选地,所述创建新节点包括:
[0021]新节点创建步骤:在原组节点中创建容量达到预设值的新节点;
[0022]获取数据步骤:遍历组节点中原节点中的所有数据,获取所有键的值;
[0023]模型训练步骤:根据获取的所有键的值训练新节点的机器学习模型;
[0024]更新节点步骤:标记插入操作只在新节点中进行,遍历组节点中原节点将所有数据插入新节点,且插入时新节点的每个键值对中的值均为指针,指向组节点中原节点的键值对结构的值;
[0025]新节点生效步骤:将哈希表根节点指向组节点中原节点的指针更换为指向新节点,新节点生效,利用新节点中数组项的元数据中的锁和指针标记位将数据项的值从指针原子地换为该指针当前指向的实际值,而后删除组节点中原节点。
[0026]优选地,还包括在哈希扩容操作过程中,根据请求类型进行相应操作;
[0027]当请求本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于机器学习的并发哈希索引数据结构的索引方法,其特征在于,包括:步骤M1:从根节点根据请求中的键查找目标键值对所在的组节点;步骤M2:在定位得到的组节点中,根据组节点的机器学习模型计算数据位置;步骤M3:根据数据位置查找目标数据,根据请求类型进行相应操作。2.根据权利要求1所述的基于机器学习的并发哈希索引数据结构的索引方法,其特征在于,所述步骤M1包括:将请求中的键作为根节点的机器学习模型的输入,计算得到当前键所在的组节点位置,找到目标键值对所在的组节点。3.根据权利要求1所述的基于机器学习的并发哈希索引数据结构的索引方法,其特征在于,所述步骤M3中根据请求类型进行相应操作包括:当请求类型为读请求时,当根据数据位置找到相应的目标数据,则读取目标数据并将读取的目标数据进行返回;当根据数据位置未找到相应的目标数据,则返回空值;当请求类型为写请求时,当根据数据位置找到相应的目标数据,则进行更新操作;当根据数据位置未找到相应的目标数据,则进行插入操作;当请求类型为删除请求时,则删除目标键值对,将目标键值对标记为逻辑删除状态。4.根据权利要求1所述的基于机器学习的并发哈希索引数据结构的索引方法,其特征在于,还包括:遍历所有组节点,根据当前组节点中原节点容量和冲突的键值对数量计算哈希冲突概率,当哈希冲突概率超过阈值时,则进行哈希扩容操作,在当前组节点中创建新节点。5.根据权利要求4所述的基于机器学习的并发哈希索引数据结构的索引方法,其特征在于,所述创建新节点包括:新节点创建步骤:在原组节点中创建容量达到预设值的新节点;获取数据步骤:遍历组节点中原节点中的所有数据,获取所有键的值;模型训练步骤:根据获取的所有键的值训练新节点的机器学习模型;更新节点步骤:标记插入操作只在新节点中进行,遍历组节点中原节点将所有数据插入新节点,且插入时新节点的每个键值对中的值均为指针,指向组节点中原节点的键值对结构的值;新节点生效步骤:将哈希表根节点指向组节点中原节点的指针更换为指向新节点,新节点生效,利用新节点中数组项的元数据中的锁和指针标记位将数据项的值从指针原子地换为该指针当前指向的实际值,而后删除组节点中原节点。6.根据权利要求5所述的基于机器学习的并发哈希索引数据结构的索引方法,其特征在于,还包括在哈希扩容操作过程中,根据请求类型进行相应操作;当请求类型为读请求时,将请求中的键作为组节点中原节点机器学习模型的输入,计算目标键值的具体位置,在原节点中进行查找,当找到目标键值对时,则执行完成请求步骤;当未找到目标键值对时,则在创建的新节点中进行查找;当创建的新节点不为空,则在新节点中执行数据查找,而后执行完成请求步骤;当新节点为空,且操作为读请求或删除请求,则立即执行完成请求;当新节点为空且操作为写请求时,则重新执行新节点数据查找步骤。7.根据权利要求1所述的基于机器学习的并发哈希索引数据结构的索引方法,其特征在于,所述根据请求类型进行相应操作时均进行并发访问控制;所述并发访问控制是通过数据项元数据中的互斥锁和版本号进行并发控制,写请求或
删除请求时都需获得键值对元数...

【专利技术属性】
技术研发人员:王肇国王寰臧斌宇陈海波
申请(专利权)人:上海交通大学
类型:发明
国别省市:

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

1