一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种用于数据库索引构建的方法与设备与流程

2022-12-02 19:24:16 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,尤其涉及一种用于数据库索引构建的技术。


背景技术:

2.现有的常见键值数据库存储引擎多基于以下方案:1.内存型,复杂数据结构;2.持久化型,基于lsm-tree(log structured merge tree)及其衍生数据结构;3.持久化型,基于bitcask及其衍生数据结构;4.持久化行,基于b -tree及其衍生数据结构等等。但是,这些方案在处理区块链这种持续写入、数据体量巨大、并发读取要求高、多以内容寻址方式组织数据块的场景,都有一些无法避免的缺陷,例如:内存型数据库无法支持大体量数据集、多针对并发写入进行专门优化,少有专门针对并发读进行优化;大多针对顺序遍历进行专门优化以及索引过程、检索过程多包含多次计算、跳转等等,因此,亟需一种改进方案以克服计算效率开销大的问题。


技术实现要素:

3.本技术的目的是提供一种用于数据库索引构建的方法与设备。
4.根据本技术的一个方面,提供了一种用于数据库索引构建的方法,其中,所述方法包括:
5.基于预设的哈希算法确定每个数据块对应的键,其中,所述预设的哈希算法基于不同的内容寻址场景确定;
6.存储所述所述每个数据块对应的键,以通过所述键构建数据库索引。
7.进一步地,其中,所述基于预设的哈希算法确定数据块对应的键包括:
8.基于预设的哈希算法对所述数据块进行哈希运算,确定所述数据块对应的键。
9.优选地,其中,所述方法还包括:在所述索引中预设存储块对所述每个数据块对应的键进行存储。
10.优选地,其中,所述方法还包括:将所述每个数据块对应的键分隔成多个索引文件,以通过所述多个索引文件实现并发检索。
11.进一步地,其中,所述将所述每个数据块对应的键分隔成多个索引文件包括:
12.基于数据块的尺寸大小将所述每个数据块对应的键分隔成多个索引文件,其中,将数据块大小差距在阈值范围内的键存储在一个索引文件内。
13.进一步地,其中,所述方法还包括:
14.将尺寸小于预设阈值的数据块存储在所述索引文件中。
15.进一步地,其中,所述数据块基于索引文件序号、偏移量及数据块尺寸所组成的元组确定,其中,所述元组被存储在索引中。
16.根据本技术的另一方面,还提供了一种可读介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现如前述方法的操作。
17.根据本技术的再一方面,还提供了一种用于数据库索引构建的设备,其中,该设备
包括:
18.一个或多个处理器;以及
19.存储有计算机可读指令的存储器,所述计算机可读指令在被执行时使所述处理器执行如前述方法的操作。
20.与现有技术相比,本技术通过基于预设的哈希算法确定每个数据块对应的键,其中,所述预设的哈希算法基于不同的内容寻址场景确定,然后存储所述所述每个数据块对应的键,以通过所述键构建数据库索引。这种方式提供了一种由外部指定哈希算法的机制,避免在索引生成过程中进行多次哈希计算带来的额外开销。
21.而且,在本方案中国还将所述每个数据块对应的键分隔成多个索引文件,以通过所述多个索引文件实现并发检索。通过这种方式,能够支持并发检索,提高检索效率。
附图说明
22.通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
23.图1示出根据本技术一个方面的一种用于数据库索引构建的方法流程图。
24.附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
25.下面结合附图对本发明作进一步详细描述。
26.在本技术一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
27.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
28.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
29.为更进一步阐述本技术所采取的技术手段及取得的效果,下面结合附图及优选实施例,对本技术的技术方案,进行清楚和完整的描述。
30.图1示出本技术一个方面提供的一种用于数据库索引构建的方法,其中,该方法包括:
31.s11基于预设的哈希算法确定每个数据块对应的键,其中,所述预设的哈希算法基于不同的内容寻址场景确定;
32.s12存储所述每个数据块对应的键,以通过所述键构建数据库索引。
33.在该实施例中,在所述步骤s11中,其中,所述预设的哈希算法包括外部指定的哈希算法,该算法在不同的内容寻址场景中可以不同,因此,可以在每个内容寻址场景中指定不同或者相同的哈希算法。具体地,由于在内容寻址的场景中,数据块(value)对应的键(key)本就由某种哈希算法得出,因此,本技术提供一种由外部指定哈希算法的机制,避免在索引生成过程中进行多次哈希计算带来的额外开销。
34.当确定预设的哈希算法,基于该哈希算法进行哈希计算,确定每个数据块对应的键并进行存储,以通过所述键构建数据库索引。
35.优选地,其中,所述基于预设的哈希算法确定数据块对应的键包括:基于预设的哈希算法对所述数据块进行哈希运算,确定所述数据块对应的键。
36.具体地,由于目前的键值数据库索引构造过程中都是对键值对中的键进行哈希。而在本方案中,针对内容寻址场景,本方案选择对数据块,也即键值对中的值进行哈希。这样做一方面更加贴合使用场景,另一方面可以规避同一数据多次存储带来的空间浪费。
37.优选地,所述方法还包括:s13(未示出)在所述索引中预设存储块对所述每个数据块对应的键进行存储。
38.由于现有的键值数据库方案中,索引往往只会使用哈希结果的一部分,如192bit/256bit,384bit/512bit。这是在考虑了数据集大小和与之对应的哈希碰撞率之后妥协的结果。这种做法在数据集非常大的场景下,会带来一些负面效果,如:键值的存在性判断需要引入更复杂的机制(如布隆过滤器)和多次定向(继续引入类索引的机制来区分发生碰撞的部分);以及由上述额外机制产生的额外存储开销。
39.因此,在本方案中,我们选择在索引中引入较大的存储块,放置完整的键,即内容的哈希结果,以降低额外的计算和存储开销。
40.优选地,其中,所述方法还包括:将所述每个数据块对应的键分隔成多个索引文件,以通过所述多个索引文件实现并发检索。
41.在该实施例中,可以基于哈希结果的前缀数位进行索引文件级别的隔离,其中,前缀数位可以根据需求进行设定,具体地,本方案按照一定的逻辑将索引结果分隔成多个索引文件,这是为了避免一个索引文件过大,同时也可以更好地支持并发检索,同时,这种分隔索引文件的做法还使得多台存储设备组成分布式集群共同提供大数据集存储能力的设计变得更为简便。
42.优选地,其中,所述将所述每个数据块对应的键分隔成多个索引文件包括:基于数据块的尺寸大小将所述每个数据块对应的键分隔成多个索引文件,其中,将数据块大小差距在阈值范围内的键存储在一个索引文件内。
43.优选地,其中,所述方法还包括:将尺寸小于预设阈值的数据块存储在所述索引文件中。
44.在该实施例中,由于在内容寻址场景中的数据块大小从数十字节到数兆字节不等。在本方案中为了进一步节省小尺寸数据块的检索开销,可以选择将此类数据直接存储在索引中。具体地,可以将尺寸小于预设阈值的数据块存储在所述索引文件中。
45.优选地,其中,所述数据块基于索引文件序号、偏移量及数据块尺寸所组成的元组确定,其中,所述元组被存储在索引中。具体地,由于这种元组会被存储在索引中,因而数据块在数据文件中可以以紧密的布局排布,没有任何额外的存储开销。这种方式,通过三元组
即可确定对应的数据块,提高了检索效率。
46.与现有技术相比,本技术通过基于预设的哈希算法确定每个数据块对应的键,其中,所述预设的哈希算法基于不同的内容寻址场景确定,然后存储所述所述每个数据块对应的键,以通过所述键构建数据库索引。这种方式提供了一种由外部指定哈希算法的机制,避免在索引生成过程中进行多次哈希计算带来的额外开销。
47.而且,在本方案中国还将所述每个数据块对应的键分隔成多个索引文件,以通过所述多个索引文件实现并发检索。通过这种方式,能够支持并发检索,提高检索效率。
48.此外,本技术实施例还提供了一种计算机可读介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现前述方法。
49.本技术实施例还提供了一种用于数据库索引构建的设备,其中,该设备包括:
50.一个或多个处理器;以及
51.存储有计算机可读指令的存储器,所述计算机可读指令在被执行时使所述处理器执行前述方法的操作。
52.例如,计算机可读指令在被执行时使所述一个或多个处理器:基于预设的哈希算法确定每个数据块对应的键,其中,所述预设的哈希算法基于不同的内容寻址场景确定;存储所述每个数据块对应的键,以通过所述键构建数据库索引。
53.对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献