MPP架构数据库集群序列系统及序列管理方法技术领域
本发明属于集群数据库领域,尤其是涉及一种MPP架构数据库集群序列
系统及序列管理方法。
背景技术
随着信息化技术的快速发展,一个企业的用户数量、数据量均呈现爆炸
式增长,在业务量提高的同时,数据库的访问量和数据量快速增长对数据库
处理能力和计算强度也相应增大,使得单一节点数据库根本无法承担。在这
样一个背景下,大型分布式数据库集群产生了,所谓数据库集群,是指利用
两台或多台数据库服务,构成一个虚拟单一数据库逻辑映像,像单数据库那
样,向客户端提供透明的数据服务。
目前,有两种主流的数据库集群架构,带中心节点的集群架构和不带中
心节点的MPP架构。带中心节点的集群架构,集群元数据只有一份,由中心
节点统一负责管理;不带中心节点的MPP架构,集群元数据有多份,每个集
群节点一份,且完全相同,由各个集群节点自身维护。
在数据库系统中,包括数据库的表(Table)、索引(Index)、视图(View)
等数据库对象。序列(Sequence)也是数据库对象的一种,在单机数据库中,
该对象用于生成唯一序列,供业务使用,用于唯一识别某条表记录,其特点
是该序列生成的序列值是单调递增(或递减)的,在数据库中由同一序列对
象的实例生成的序列值唯一。而在数据库集群中,特别是在MPP架构的集群
中,由于没有中心节点,所以没有全局中心负责序列的管理工作,无法实现
像单机一样的序列对象。
发明内容
本发明实施例提供了一种MPP架构数据库集群序列系统及序列管理方法,
用以实现在MPP架构数据库集群中实现序列管理的目的。
第一方面,本发明实施例提供了一种MPP架构数据库集群序列系统,所
述系统包括:
内存数据库,用于为每个集群节点提供sequence序列对象管理服务。
进一步的,所述内存数据库分布设置在每个集群节点中。
进一步的,所述分布设置在每个集群节点中的内存数据库为虚拟整体内
存数据库。
更进一步的,所述内存数据库具体用于:
新增、修改、删除和查询sequence序列对象。
第二方面,本发明实施例提供了一种MPP架构数据库集群序列sequence
管理方法,所述方法包括:
节点接收客户端的管理序列sequence对象请求,并将所述管理序列
sequence对象发送至内存数据库;
内存数据库执行序列sequence对象管理,并将管理序列sequence对象
响应消息返回给集群节点;
集群节点将所述管理序列sequence对象响应消息发送至所述客户端。
进一步的,所述内存数据库执行序列sequence对象管理,并将管理序列
sequence对象响应消息返回给集群节点,包括:
所述内存数据库生成序列数值,返回该序列数值给集群节点;
所述集群节点将所述管理序列sequence对象响应消息发送至所述客户端,
包括:
集群节点将生成的序列数值,发送至所述客户端。
进一步的,所述内存数据库与集群节点之间通过标准SQL接口实现管
理序列sequence对象。
采用上述技术方案,可以让MPP架构的数据库集群具有sequence序列
功能,包括sequence序列对象管理,使得使用MPP架构数据库集群的
sequence功能可以获得和单机数据库相同的体验;此外通过内存数据库提供
sequence功能,可以提供高性能的sequence功能;sequence的管理全部在
内存数据库中,可提供高速、并发处理机制,使得其性能远远大于单机数据
库。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技
术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图
仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造
性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明第一实施例提供的MPP架构数据库集群序列系统的结构示
意图;
图2是本发明第二实施例提供的MPP架构数据库集群序列sequence管理
方法的流程示意图;
图3是本发明第三实施例提供的MPP架构数据库集群序列sequence管理
方法的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行
清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是
全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创
造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明第一实施例提供的MPP架构数据库集群序列系统的结构示
意图。参见图1,所述MPP架构数据库集群序列系统,包括:
内存数据库,用于为每个集群节点提供sequence序列对象管理服务。
在本实施例中,所述MPP架构数据库集群序列系统包括三个节点,在所
述系统中还包括内存数据库,所述内存数据库通过软件和硬件结合的方式实
现,用于为每个集群节点提供sequence序列对象管理服务。所述内存数据库
的硬件组成分布设置在每个集群节点中。并通过软件虚拟为一个完整整体内
存数据库,以实现对sequence序列对象进行整体管理。具体的,可用于新增、
修改、删除和查询sequence序列对象。
本发明实施例所提供的技术方案,可以让MPP架构的数据库集群具有
sequence序列功能,包括sequence序列对象管理,使得使用MPP架构数据
库集群的sequence功能可以获得和单机数据库相同的体验;此外通过节点
sequence模块和中心sequence模块的配合,可以提供高性能的sequence
功能;如果用户使用sequence功能比较频繁,用户定义sequence对象时,
可以定义cache参数为一个较大的值,这样使得每个集群节点可以像单机数
据库一样提供sequence功能,多个集群节点并发提供sequence功能,使得
其性能远远大于单机sequence数据库。
图2示出本发明第二实施例。
图2是本发明第二实施例提供的MPP架构数据库集群序列sequence管
理方法的流程示意图。
参见图2,所述MPP架构数据库集群序列sequence管理方法包括:
步骤210,节点接收客户端的管理序列sequence对象请求,并将所述管
理序列sequence对象发送至内存数据库。
用户通过客户端软件向MPP架构数据库集群中任意一个节点发送管理序
列sequence对象请求,节点在收到管理序列sequence对象请求后,将所述
管理序列sequence对象请求发送至内存数据库,由内存数据库进行处理。
步骤220,内存数据库执行序列sequence对象管理,并将管理序列
sequence对象响应消息返回给集群节点。
内存数据库对所述管理序列sequence对象请求进行分析,获取管理序列
sequence对象。内存数据库根据请求执行和完成sequence对象的管理。并将
序列管理结果发送至集群节点。
步骤230,集群节点将所述管理序列sequence对象响应消息发送至所述
客户端。
本实施例所提供的技术方案,可以让MPP架构的数据库集群具有
sequence序列功能,包括sequence序列对象管理,使得使用MPP架构数据
库集群的sequence功能可以获得和单机数据库相同的体验;此外通过节点
sequence模块和中心sequence模块的配合,可以提供高性能的sequence
功能。
图3是本发明第三实施例提供的MPP架构数据库集群序列sequence管
理方法的流程示意图。本实施例以上述实施例为基础,进一步的,将所述管
理序列sequence对象限定为:新增序列sequence数值;并将所述内存数据
库执行序列sequence对象管理,并将管理序列sequence对象响应消息返回
给集群节点,具体优化为:所述内存数据库生成序列数值,返回该序列数值
给集群节点;相应的,将所述集群节点将所述管理序列sequence对象响应
消息发送至所述客户端,具体优化为:集群节点将生成的序列数值,发送至
所述客户端。
参见图3,所述MPP架构数据库集群序列sequence管理方法,包括:
步骤310,节点接收客户端的管理序列sequence对象请求,并将所述管
理序列sequence对象发送至内存数据库。
步骤320,内存数据库生成序列数值,返回该序列数值给集群节点。
步骤330,集群节点将生成的序列数值,发送至所述客户端。
进一步的,内存数据库与集群节点之间通过标准SQL接口实现管理序列
sequence对象。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步
骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可
读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而
前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的
介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对
其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通
技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,
或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并
不使相应技术方案的本质脱离本发明各实施例技术方案的范围。