用于存储引擎的设计方法与设备技术

技术编号:37328802 阅读:19 留言:0更新日期:2023-04-21 23:07
本申请的目的是提供一种存储引擎的设计方法与设备。与现有技术相比,本申请通过设置表结构管理器、索引管理器、存储管理器以及查询管理器,其中,所述表结构管理器包括主表哈希表和自增主键哈希表;所述索引管理器的索引类型包括主键索引、普通索引、唯一索引以及联合唯一索引;所述存储管理器基于所述索引类型以及字段存储键值及数据值;查询管理器基于所述索引类型以及所述字段查询对应的数据。通过这种方式,实现了复杂条件查询,提高了实现了读写性能的兼顾,提高了效率。提高了效率。提高了效率。

【技术实现步骤摘要】
用于存储引擎的设计方法与设备


[0001]本申请涉及计算机
,尤其涉及一种用于设计存储引擎的技术。

技术介绍

[0002]广义的极速交易系统一般是指全链路延迟小于10毫秒,内部延迟小于1毫秒的交易系统,这类交易系统行业上一般适用于股票、期权或者其他衍生品的高频交易。这里以股票极速交易系统举例,一次交易常常涉及订单、资金、持仓等存储数据的获取和修改,通常还带有复杂的风控模型校验,所以,一个高性能并且数据处理能力足够灵活的存储引擎是支撑极速交易系统的基础。但现有的存储引擎读写性能无法完全兼顾,比如使用kv数据结构作为存储引擎,写入性能可以,但是无法进行复杂条件查询,导致效率较低。

技术实现思路

[0003]本申请的目的是提供一种用于存储引擎的设计方法与设备。
[0004]根据本申请的一个方面,提供了一种存储引擎的设计方法,其中,该方法包括:
[0005]设置表结构管理器、索引管理器、存储管理器以及查询管理器,其中,所述表结构管理器包括主表哈希表和自增主键哈希表;所述索引管理器的索引类型包括主键索引、普通索引、唯一索引以及联合唯一索引;所述存储管理器基于所述索引类型以及字段存储键值及数据值;查询管理器基于所述索引类型以及所述字段查询对应的数据。
[0006]进一步地,其中,所述主表哈希表记录了不重复的表名称和表id,所述自增主键哈希表通过表id和序号自增器关联,以在新的数据插入时完成一次主键自增。
[0007]可选地,其中,通过所述索引管理器将数据的一个或多个字段设置为普通索引、唯一索引或联合唯一索引中至少任一项。
[0008]进一步地,其中,所述联合唯一索引合并的字段不重复。
[0009]进一步地,其中,所述联合唯一索引包含普通索引的属性。
[0010]进一步地,其中,所述存储管理器基于所述索引类型以及字段存储键值及数据值包括:
[0011]所述存储管理器基于所述索引类型以及字段以预设的数据结构存储键值及数据值。
[0012]进一步地,其中,所述预设的数据结构包括Skiplist。
[0013]进一步地,其中,所述方法还包括:
[0014]将所述存储引擎和目标应用合并在一个进程中,其中,通过预设语言构建的程序以sdk的方式引用到所述目标应用内部以实现合并。
[0015]进一步地,其中,所述预设语言包括go语言。
[0016]根据本申请的另一方面,还提供了一种计算机可读介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现如前述方法的操作。
[0017]根据本申请的再一方面,还提供了一种存储引擎的设计设备,其中,该设备包括:
[0018]一个或多个处理器;以及
[0019]存储有计算机可读指令的存储器,所述计算机可读指令在被执行时使所述处理器执行如前述方法的操作。
[0020]与现有技术相比,本申请通过设置表结构管理器、索引管理器、存储管理器以及查询管理器,其中,所述表结构管理器包括主表哈希表和自增主键哈希表;所述索引管理器的索引类型包括主键索引、普通索引、唯一索引以及联合唯一索引;所述存储管理器基于所述索引类型以及字段存储键值及数据值;查询管理器基于所述索引类型以及所述字段查询对应的数据。通过这种方式,实现了复杂条件查询,提高了实现了读写性能的兼顾,提高了效率。
附图说明
[0021]通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本专利技术的其它特征、目的和优点将会变得更明显:
[0022]图1示出根据本申请一个方面的一种用于存储引擎的设计方法流程图。
[0023]附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
[0024]下面结合附图对本专利技术作进一步详细描述。
[0025]在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
[0026]内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
[0027]计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD

ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0028]为更进一步阐述本申请所采取的技术手段及取得的效果,下面结合附图及较佳实施例,对本申请的技术方案,进行清楚和完整的描述。
[0029]图1示出本申请一个方面提供的一种用于存储引擎的设计方法,其中,该方法包括:
[0030]S11设置表结构管理器、索引管理器、存储管理器以及查询管理器,其中,所述表结构管理器包括主表哈希表和自增主键哈希表;所述索引管理器的索引类型包括主键索引、普通索引、唯一索引以及联合唯一索引;所述存储管理器基于所述索引类型以及字段存储键值及数据值;查询管理器基于所述索引类型以及所述字段查询对应的数据。
[0031]优选地,本方案采用go语言设计实现,具体从工程模块上可以分成表结构管理器,索引管理器,存储管理器,查询管理器,配合设计生成该存储引擎。
[0032]可选地,其中,所述主表哈希表记录了不重复的表名称和表id,所述自增主键哈希表通过表id和序号自增器关联,以在新的数据插入时完成一次主键自增。
[0033]具体地,所述索引管理器的索引类型包括主键索引、普通索引、唯一索引以及联合唯一索引。其中,主键索引类似关系型数据中的主键,每张内存表默认第一个字段就是主键,数据类型定义上面是uint64,每次插入行数据后就会自增,每张表内主键是唯一的,即使后面删除行数据序号也不会后退。优选地,通过所述索引管理器将数据的一个或多个字段设置为普通索引、唯一索引或联合唯一索引中至少任一项。
[0034]其中,在本存储引擎中允许对多个字段设置普通索引,并且允许字段值重复,在定义时需要通过idx:"normal"标签的方式定义普通索引。
[0035]在一个优选实施例中,例如,下面的代码表示对Order表的Aaid、OrderId、OrgId分别定义了普通索引。
[0036][0037][0038]另外,在本存储引擎中允许对多本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种存储引擎的设计方法,其中,该方法包括:设置表结构管理器、索引管理器、存储管理器以及查询管理器,其中,所述表结构管理器包括主表哈希表和自增主键哈希表;所述索引管理器的索引类型包括主键索引、普通索引、唯一索引以及联合唯一索引;所述存储管理器基于所述索引类型以及字段存储键值及数据值;查询管理器基于所述索引类型以及所述字段查询对应的数据。2.根据权利要求1所述的方法,其中,所述主表哈希表记录了不重复的表名称和表id,所述自增主键哈希表通过表id和序号自增器关联,以在新的数据插入时完成一次主键自增。3.根据权利要求1所述的方法,其中,通过所述索引管理器将数据的一个或多个字段设置为普通索引、唯一索引或联合唯一索引中至少任一项。4.根据权利要求3所述的方法,其中,所述联合唯一索引合并的字段不重复。5.根据权利要求1至4中任一项所述的方法,其中,所述联合唯一索引包含普通索引的属性。6.根据权利要...

【专利技术属性】
技术研发人员:张杰
申请(专利权)人:杭州隆埠科技有限公司
类型:发明
国别省市:

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

1