著录项信息
专利名称 | 一种数据库管理系统 |
申请号 | CN201410591810.9 | 申请日期 | 2014-10-29 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2015-03-11 | 公开/公告号 | CN104408054A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F17/30 | IPC分类号 | G;0;6;F;1;7;/;3;0查看分类表>
|
申请人 | 深圳市金证科技股份有限公司 | 申请人地址 | 广东省深圳市南山区科技园高新区南区高新南五道金证科技大楼8-9层
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 深圳市金证科技股份有限公司 | 当前权利人 | 深圳市金证科技股份有限公司 |
发明人 | 何万刚 |
代理机构 | 深圳中一专利商标事务所 | 代理人 | 张全文 |
摘要
本发明适用于数据库技术领域,提供了一种数据库管理系统,包括请求排队机、内存节点和磁盘节点;请求排队机将外部业务请求同时分发给内存节点和磁盘节点;内存节点包括内存数据应用层、内存数据访问层和内存数据库;磁盘节点包括磁盘数据应用层、磁盘数据访问层和磁盘数据库;内存数据应用层和磁盘数据应用层具有相同的业务逻辑功能对象;内存数据应用层和磁盘数据应用层同时根据外部业务请求分别调用相同的业务逻辑功能对象,实现业务逻辑处理,得到处理结果;内存数据访问层和磁盘数据访问层同时将处理结果分别写入至内存数据库和磁盘数据库中。本发明,充分发挥了两种数据库的优势,在对事务性一致性要求比较高的金融行业具有广泛的实用价值。
1.一种数据库管理系统,其特征在于,所述数据库管理系统包括:请求排队机、内存节点和磁盘节点;
所述请求排队机,用于接收外部业务请求,并将所述外部业务请求同时分发给所述内存节点和所述磁盘节点;
所述内存节点包括:内存数据应用层、内存数据访问层和内存数据库;
所述磁盘节点包括:磁盘数据应用层、磁盘数据访问层和磁盘数据库;
所述内存数据应用层和所述磁盘数据应用层具有相同的业务逻辑功能对象;
所述内存数据应用层和所述磁盘数据应用层,用于同时根据所述外部业务请求,分别调用相同的业务逻辑功能对象,实现业务逻辑处理,得到处理结果;
所述内存数据访问层和所述磁盘数据访问层,用于同时将所述处理结果分别写入至所述内存数据库和所述磁盘数据库中;
所述内存数据应用层和所述磁盘数据应用层,还用于根据当前连接的数据库的类型,创建相应类型的数据库表访问对象实例,若当前连接的数据库为内存数据库,则创建的数据库表访问对象实例为内存数据库表访问对象实例;若当前连接的数据库为磁盘数据库,则创建的数据库表访问对象实例为磁盘数据库表访问对象实例。
2.如权利要求1所述的数据库管理系统,其特征在于,所述内存数据访问层包括:
内存数据表访问对象,用于对内存数据库的每张数据库表进行封装,以供所述内存数据应用层的业务逻辑功能对象调用;
内存数据库访问引擎,用于对内存数据库的访问方式进行封装。
3.如权利要求2所述的数据库管理系统,其特征在于,所述内存数据库访问引擎提供内存数据库连接管理功能、事务管理功能和监视功能。
4.如权利要求2或3所述的数据库管理系统,其特征在于,所述内存数据访问层还包括:
内存数据库Xa事务管理对象,用于对所述内存数据库访问引擎的事务管理功能的进行封装,完成对数据一致性的事务管理。
5.如权利要求1所述的数据库管理系统,其特征在于,所述磁盘数据访问层包括:
磁盘数据表访问对象,用于对磁盘数据库的每张数据库表进行封装,以供所述磁盘数据应用层的业务逻辑功能对象调用;
磁盘数据库访问引擎,用于对磁盘数据库的访问方式进行封装。
6.如权利要求5所述的数据库管理系统,其特征在于,所述磁盘数据库访问引擎提供磁盘数据库连接管理功能和事务管理功能。
7.如权利要求5或6所述的数据库管理系统,其特征在于,所述磁盘数据访问层还包括:
磁盘数据库Xa事务管理对象,用于对磁盘数据库访问引擎的事务管理功能的进行封装,完成对数据一致性的事务管理。
一种数据库管理系统\n技术领域\n[0001] 本发明属于数据库技术领域,尤其涉及一种数据库管理系统。\n背景技术\n[0002] 传统的数据库管理系统把所有的数据都存储在磁盘上进行管理,访问磁盘数据库时,需要频繁地访问磁盘来进行数据的操作。由于对磁盘读写数据的操作,一方面要进行磁头的机械移动(固态硬盘除外),另一方面受到系统调用(通常通过CPU中断完成,受到CPU时钟周期的制约)时间的影响,当数据量很大,读写操作频繁且复杂时,就会暴露出性能不足的问题。\n[0003] 内存数据库系统是重新设计的一种数据库管理系统,通过对查询处理、并发控制与恢复的算法和数据结构进行重新设计,以更有效地使用CPU周期和内存。这种数据库技术近乎把整个数据库放进内存中,因而会产生一些根本性的变化。内存数据库系统带来的优越性能不仅仅在于对内存读写比对磁盘读写快,更重要的是,从根本上抛弃了磁盘数据库管理的许多传统方式,基于全部数据都在内存中管理进行了新的体系结构的设计,并且在数据缓存、快速算法、并行操作方面也进行了相应的改进,从而使数据处理速度一般比传统磁盘数据库的数据处理速度快很多,一般都在10倍以上,理想情况甚至可以达到1000倍。\n[0004] 但内存数据库的引入提升了系统处理性能的同时,也带来了内存数据难以持久存储的问题。由于数据装载在内存中,一旦主机宕机,数据将会丢失,因此,需解决内存数据的持久化存储问题。\n发明内容\n[0005] 本发明实施例提供了一种数据库管理系统,旨在解决现有的数据库管理系统中,存在磁盘数据库的性能不足或者内存数据库的数据不能持久化存储的问题。\n[0006] 一方面,提供一种数据库管理系统,所述数据库管理系统包括:请求排队机、内存节点和磁盘节点;\n[0007] 所述请求排队机,用于接收外部业务请求,并将所述外部业务请求同时分发给所述内存节点和所述磁盘节点;\n[0008] 所述内存节点包括:内存数据应用层、内存数据访问层和内存数据库;\n[0009] 所述磁盘节点包括:磁盘数据应用层、磁盘数据访问层和磁盘数据库;\n[0010] 所述内存数据应用层和所述磁盘数据应用层具有相同的业务逻辑功能对象;\n[0011] 所述内存数据应用层和所述磁盘数据应用层,用于同时根据所述外部业务请求,分别调用相同的业务逻辑功能对象,实现业务逻辑处理,得到处理结果;\n[0012] 所述内存数据访问层和所述磁盘数据访问层,用于同时将所述处理结果分别写入至所述内存数据库和所述磁盘数据库中。\n[0013] 进一步地,所述内存数据应用层和所述磁盘数据应用层,还用于根据当前连接的数据库的类型,创建相应类型的数据库表访问对象实例。\n[0014] 进一步地,所述内存数据访问层包括:\n[0015] 内存数据表访问对象,用于对内存数据库的每张数据库表进行封装,以供所述内存数据应用层的业务逻辑功能对象调用;\n[0016] 内存数据库访问引擎,用于对内存数据库的访问方式进行封装。\n[0017] 进一步地,所述内存数据库访问引擎提供内存数据库连接管理功能、事务管理功能和监视功能。\n[0018] 进一步地,所述内存数据访问层还包括:\n[0019] 内存数据库Xa事务管理对象,用于对所述内存数据库访问引擎的事务管理功能的进行封装,完成对数据一致性的事务管理。\n[0020] 进一步地,所述磁盘数据访问层包括:\n[0021] 磁盘数据表访问对象,用于对磁盘数据库的每张数据库表进行封装,以供所述磁盘数据应用层的业务逻辑功能对象调用;\n[0022] 磁盘数据库访问引擎,用于对磁盘数据库的访问方式进行封装。\n[0023] 进一步地,所述磁盘数据库访问引擎提供磁盘数据库连接管理功能和事务管理功能。\n[0024] 进一步地,所述磁盘数据访问层还包括:\n[0025] 磁盘数据库Xa事务管理对象,用于对磁盘数据库访问引擎的事务管理功能的进行封装,完成对数据一致性的事务管理。\n[0026] 在本发明实施例,进入数据库管理系统的外部业务请求,同时进入磁盘数据库的逻辑处理节点‐磁盘节点和内存数据库的逻辑处理节点‐内存节点进行并行计算,计算结果同时更新至磁盘数据库和内存数据库中,从而达到两个节点的数据库中数据的一致性。数据库管理系统中采用并行计算的混合数据库,有效的解决了磁盘数据库的性能问题、也克服了内存数据库的易逝性问题,充分发挥了两种数据库的优势,在对事务性一致性要求比较高的金融行业具有广泛的实用价值。\n附图说明\n[0027] 图1是本发明实施例一提供的数据库管理系统的结构框图。\n具体实施方式\n[0028] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。\n[0029] 在本发明实施例中,数据库管理系统中同时包括磁盘节点和内存节点,内存节点包括内存数据应用层、内存数据访问层和内存数据库;磁盘节点包括磁盘数据应用层、磁盘数据访问层和磁盘数据库。请求排队机将接收的外部业务请求同时分发给磁盘节点和内存节点,磁盘节点和内存节点中的内存数据应用层和磁盘数据应用层分别根据其连接的数据库的类型,通过内存数据访问层和磁盘数据访问层与相应类型的数据库建立连接,并同时根据接收到的外部业务请求,分别通过内存数据应用层和磁盘数据应用层调用相同的业务逻辑功能对象,实现业务逻辑处理后,将处理结果同时写入内存数据库和磁盘数据库中。\n[0030] 以下结合具体实施例对本发明的实现进行详细描述:\n[0031] 实施例一\n[0032] 图1示出了本发明实施例一提供的数据库管理系统的具体结构框图,为了便于说明,仅示出了与本发明实施例相关的部分。该数据库管理系统1包括:请求排队机11、内存节点12和磁盘节点13。\n[0033] 其中,请求排队机11,用于接收外部业务请求,并将所述外部业务请求同时分发给内存节点12和磁盘节点13。\n[0034] 内存节点12包括:内存数据应用层121、内存数据访问层122和内存数据库123。\n[0035] 磁盘节点13包括:磁盘数据应用层131、磁盘数据访问层132和磁盘数据库133。\n[0036] 其中,内存数据应用层121和磁盘数据应用层131具有相同的业务逻辑功能对象。\n[0037] 内存数据应用层121和磁盘数据应用层131,用于同时根据所述外部业务请求,分别调用相同的业务逻辑功能对象,实现业务逻辑处理,得到处理结果。\n[0038] 由于内存数据应用层121和磁盘数据应用层131调用的是相同的业务逻辑功能对象,因此,对于同一套业务逻辑,可以同时运行在内存数据库和磁盘数据库之上。\n[0039] 内存数据访问层121和磁盘数据访问层131,用于同时将所述处理结果分别写入至内存数据库123和磁盘数据库133中。\n[0040] 进一步地,内存数据应用层121和磁盘数据应用层131还用于根据当前连接的数据库的类型,创建相应类型的数据库表访问对象实例,若当前连接的数据库为内存数据库,则创建的数据库表访问对象实例为内存数据库表访问对象实例;若当前连接的数据库为磁盘数据库,则创建的数据库表访问对象实例为磁盘数据库表访问对象实例。\n[0041] 具体的,内存数据访问层122包括内存数据表访问对象和内存数据库访问引擎。\n[0042] 内存数据表访问对象,用于对内存数据库的每张数据库表进行封装,以供内存数据应用层121的业务逻辑功能对象调用。\n[0043] 详细的,内存数据表访问对象根据每张内存数据库表的字段定义、索引定义,使用内存数据库提供的API函数,实现接口基类对外提供的功能函数,如按索引进行查询、插入、更新、删除的函数以及自定义方式的查询、插入、更新、删除函数。将这些功能函数封装成C++纯虚类,作为接口基类,提供给内存数据应用层121的业务逻辑功能对象调用。\n[0044] 内存数据库访问引擎,用于对内存数据库的访问方式进行封装。\n[0045] 详细的,内存数据库访问引擎,能够提供内存数据库连接管理功能(内存数据库创建、建立连接、关闭连接)、事务管理功能(事务开始、事务结束、事务提交、事务回滚)和监视功能(内存使用率、剩余空间大小等)。\n[0046] 内存数据应用层121通过内存数据访问层122的内存数据库访问引擎和内存数据表访问对象连接到内存数据库上。\n[0047] 具体的,磁盘数据访问层132包括磁盘数据表访问对象和磁盘数据库访问引擎。\n[0048] 磁盘数据表访问对象,用于对磁盘数据库的每张数据库表进行封装对磁盘数据库的每张数据库表进行封装,以供所述磁盘数据应用层的业务逻辑功能对象调用。\n[0049] 详细的,磁盘数据表访问对象根据每张磁盘数据库表的字段定义、索引定义,使用ODBC函数进行编程,实现接口基类对外提供的功能函数,如按索引进行查询、插入、更新、删除的函数以及自定义方式的查询、插入、更新、删除函数。将这些函数封装成C++纯虚类,作为接口基类,提供给磁盘数据应用层131的业务逻辑功能对象调用。\n[0050] 磁盘数据库访问引擎,用于对磁盘数据库的访问方式进行封装。\n[0051] 详细的,磁盘数据库访问引擎,能够提供磁盘数据库连接管理功能(磁盘数据库创建、建立连接、关闭连接)和事务管理功能(事务开始、事务结束、事务提交、事务回滚)。\n[0052] 磁盘数据应用层131通过磁盘数据访问层132的磁盘数据库访问引擎和磁盘数据表访问对象连接到磁盘数据库上。\n[0053] 优选地,内存数据访问层122还包括内存数据库Xa事务管理对象,内存数据库Xa事务管理对象用于对内存数据库访问引擎的事务管理功能的进行封装,完成对数据一致性的事务管理,比如,通知数据库事务的开始、结束以及提交、回滚等数据库事务,是对内存数据库访问引擎事务管理功能的封装。\n[0054] 优选地,磁盘数据访问层132还包括磁盘数据库Xa事务管理对象,磁盘数据库Xa事务管理对象用于对磁盘数据库访问引擎的事务管理功能的进行封装,完成对数据一致性的事务管理,比如,通知数据库事务的开始、结束以及提交、回滚等数据库事务,是对磁盘数据库访问引擎事务管理功能的封装。\n[0055] 本实施例,进入数据库管理系统的外部业务请求,同时进入磁盘数据库的逻辑处理节点-磁盘节点和内存数据库的逻辑处理节点-内存节点进行并行计算,计算结果同时更新至磁盘数据库和内存数据库中,从而达到两个节点的数据库中数据的一致性。数据库管理系统中采用并行计算的混合数据库,有效的解决了磁盘数据库的性能问题、也克服了内存数据库的易逝性问题,充分发挥了两种数据库的优势,在对事务性一致性要求比较高的金融行业具有广泛的实用价值。\n[0056] 值得注意的是,上述系统实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。\n[0057] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
法律信息
- 2017-10-31
- 2015-04-08
实质审查的生效
IPC(主分类): G06F 17/30
专利申请号: 201410591810.9
申请日: 2014.10.29
- 2015-03-11
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2010-09-15
|
2010-05-19
| | |
2
| |
2012-12-19
|
2012-08-23
| | |
3
| |
2014-08-06
|
2014-05-27
| | |
4
| |
2013-02-27
|
2012-10-12
| | |
5
| |
2013-11-06
|
2012-05-02
| | |
6
| |
2011-01-12
|
2010-09-16
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |