内存数据库管理装置制造方法及图纸

技术编号:11640758 阅读:86 留言:0更新日期:2015-06-24 17:20
本发明专利技术提出了一种内存数据库管理装置,所述装置包括数据存储单元、数据查询单元和内存池管理单元。其中,所述内存池管理单元用于根据来自数据存储单元的内存分配指令分配内存空间,并将所分配的内存空间的地址传送回数据存储单元,其中,所分配的小块内存空间具有如下层级结构:内存簇、内存桶和内存块,每个内存簇包含若干内存桶,每个内存桶包含若干内存块。本发明专利技术所公开的内存数据库管理装置维护成本较低并且能够进行定制和扩展以及能够显著提高数据存储和查询效率。

【技术实现步骤摘要】

本专利技术涉及数据库管理装置,更具体地,涉及内存数据库管理装置
技术介绍
目前,随着信息数据处理需求的日益增长以及不同领域的业务种类的日益丰富,使用基于内存的数据库管理系统(即用计算机主存作为数据存储载体的数据库管理系统,由于其不使用磁盘,故节省了针对磁盘的I/o时间开销,从而能够显著地提高数据存储和查询效率)变得越来越重要。现有的商业上可获得的技术方案存在如下问题:维护成本较高并且难于进行个性化的定制和扩展。因此,存在如下需求:提供维护成本较低并且能够进行定制和扩展以及能够显著提高数据存储和查询效率的内存数据库管理装置。
技术实现思路
为了解决上述现有技术方案所存在的问题中的一个或多个,本专利技术提出了维护成本较低并且能够进行定制和扩展以及能够显著提高数据存储和查询效率的内存数据库管理装置。本专利技术的目的是通过以下技术方案实现的: 一种内存数据库管理装置,所述内存数据库管理装置包括: 数据存储单元,所述数据存储单元用于接收来自外部应用的数据记录存储请求并将所述数据记录存储请求中所包含的待存储数据记录以哈希结构的方式存储到由内存池管理单元所分配的内存空间中; 数据查询单元,所述数据查询单元用于接收来自外部应用的数据记录查询请求,并基于所述数据记录查询请求执行查询操作,随之将查询结果传送回所述外部应用; 内存池管理单元,所述内存池管理单元用于根据来自所述数据存储单元的内存分配指令分配内存空间,并将所分配的内存空间的地址传送回所述数据存储单元,其中,所分配的小块内存空间具有如下层级结构:内存簇、内存桶和内存块,每个内存簇包含若干内存桶,每个内存桶包含若干内存块。在上面所公开的方案中,优选地,当接收到所述数据记录存储请求后,所述数据存储单元基于所述数据记录存储请求中所包含的待存储的数据记录的大小构造内存分配指令,随之将所述内存分配指令传送到内存池管理单元,其中,所述内存分配指令包含待分配的内存空间的大小。在上面所公开的方案中,优选地,所述小块内存空间是小于IM的内存空间,并且同一个内存簇中的所有内存块的大小均相同,而所有内存簇中的每个内存桶的大小均为IM0在上面所公开的方案中,优选地,不同内存簇中的内存块的大小依次按照增长因子呈倍数增长。在上面所公开的方案中,优选地,每个内存簇具有与其相关联的空闲链表,所述空闲链表保存该内存簇中已被释放的内存块的地址。在上面所公开的方案中,优选地,当所述内存分配指令指示待分配的内存空间是大块内存空间时,所述内存池管理单元直接从内存中分配相应大小的内存空间,并且将所分配的内存空间的地址传送回所述数据存储单元,其中,所述相应大小的内存空间是待分配的内存空间的大小+4个字节。在上面所公开的方案中,优选地,当所述内存分配指令指示待分配的内存空间是小块内存空间时,所述内存池管理单元以如下方式分配内存空间,并且将所分配的内存空间的地址传送回所述数据存储单元:(Al)查找包含与待分配的内存空间的大小相匹配的内存块的内存簇;(A2)如果不存在包含与待分配的内存空间的大小相匹配的内存块的内存簇,则创建相应的内存簇、内存桶和内存块,并将所创建的内存块的地址传送回所述数据存储单元;(A3)如果存在包含与待分配的内存空间的大小相匹配的内存块的内存簇,则确定与该内存簇相关联的空闲链表是否为空,如果所述空闲链表不为空,则进入步骤(A4),而如果所述空闲链表为空,则进入步骤(A5) ; (A4)将该空闲链表中第一个节点所指示的内存块的地址传送回所述数据存储单元;(A5)确定该内存簇的当前使用的内存桶是否已满,并且如果该内存簇的当前使用的内存桶未满,则进入步骤(A6),否则,进入步骤(A7);(A6)将该当前使用的内存桶中的一个空闲的内存块的地址传送回所述数据存储单元;(A7)在内存中创建该内存簇的一个新的内存桶,并将该新的内存桶中的一个空闲的内存块的地址传送回所述数据存储单元。在上面所公开的方案中,优选地,当确定需要释放大块内存空间时,所述内存池管理单元获取当前待释放大块内存空间的地址,并基于该地址直接从内存中释放该大块内存空间。在上面所公开的方案中,优选地,当确定需要释放小块内存空间时,所述内存池管理单元查找包含当前待释放的内存块的内存簇,并随之构建包含当前待释放的内存块的地址的节点,并将所述节点插入到与该内存簇相关联的空闲链表中。在上面所公开的方案中,优选地,所述哈希结构包括哈希数组和使用情况链表,其中,所述哈希数组的每个数组单元存储与哈希值为该数组单元的数组下标的数据记录相关联的数据记录链表的入口指针,所述数据记录链表中的每个节点存储哈希值为该数组单元的数组下标的数据记录,所述使用情况链表中的每个节点与所述哈希数组的每个数组单元一一对应以通过每个节点在链表中的位置指示所对应的数组单元的使用情况。在上面所公开的方案中,优选地,在接收到所述数据记录查询请求后,所述数据查询单元以如下方式执行查询操作:(I)计算待查询的数据记录的哈希值;(2)访问以所述哈希值作为数组下标的所述哈希数组中对应的数组单元,并随之遍历该数据单元中的入口指针所指向的数据记录链表以查找出目标数据记录,并将查询结果传送回所述外部应用;(3)将所述使用情况链表中与所访问的数组单元相对应的节点移动至所述使用情况链表的尾部。在上面所公开的方案中,优选地,在所述哈希数组被插入新的数组单元时,所述数据存储单元创建与所插入的新的数组单元相对应的节点并将与所插入的新的数组单元相对应的节点直接放至所述使用情况链表的尾部。在上面所公开的方案中,优选地,当需要释放内存空间时,所述数据查询单元2以下列两种方式之一释放内存空间:(I)将所述使用情况链表中前面若干个节点对应的数组单元所占用的内存空间释放;(2)将超过预定的时效时间阈值的数组单元所占用的内存空间释放。在上面所公开的方案中,优选地,所述内存数据库管理装置能够作为数据库引擎而被嵌入到各种形式的业务应用中。本专利技术所公开的内存数据库管理装置具有如下优点:(1)维护成本较低并且能够进行定制和扩展;(2)由于能够对内存空间进行统一管理,故减少了内存碎片和内存泄露的发生;(3)由于采用了高效的内存空间回收方法,故能够有效率地释放内存空间;(4)由于能够作为数据库引擎而被嵌入到各种形式的业务应用中,故消除了网络访问的时间开销,并且具有广泛的适用性。【附图说明】结合附图,本专利技术的技术当前第1页1 2 3 本文档来自技高网...

【技术保护点】
一种内存数据库管理装置,所述内存数据库管理装置包括:数据存储单元,所述数据存储单元用于接收来自外部应用的数据记录存储请求并将所述数据记录存储请求中所包含的待存储数据记录以哈希结构的方式存储到由内存池管理单元所分配的内存空间中;数据查询单元,所述数据查询单元用于接收来自外部应用的数据记录查询请求,并基于所述数据记录查询请求执行查询操作,随之将查询结果传送回所述外部应用;内存池管理单元,所述内存池管理单元用于根据来自所述数据存储单元的内存分配指令分配内存空间,并将所分配的内存空间的地址传送回所述数据存储单元,其中,所分配的小块内存空间具有如下层级结构:内存簇、内存桶和内存块,每个内存簇包含若干内存桶,每个内存桶包含若干内存块。

【技术特征摘要】

【专利技术属性】
技术研发人员:胡天一孙战平夏智佟志臣杨欣郁冯敏
申请(专利权)人:中国银联股份有限公司
类型:发明
国别省市:上海;31

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

1