一种分布式数据库的数据传输方法、中间层服务器及系统技术方案

技术编号:18204082 阅读:62 留言:0更新日期:2018-06-13 06:15
本发明专利技术提供了一种分布式数据库数据传输方法、中间层服务器及系统。该分布式数据库数据传输方法包括:接收客户端发送的数据插入请求,所述数据插入请求中包括待插入的数据;根据分布式数据库系统中服务器集群的数据库实例的数目对待插入的数据进行分割,获得N个数据块;将所述N个数据块发送至服务器集群中的N个数据库实例中;更新全局系统表,所述全局系统表中包括各个数据库实例与数据节点的对应关系。本发明专利技术实施例通过在客户端与数据库实例之间设置中间层服务器,客户端通过所述中间层服务器与所述服务器集群中的数据库实例进行数据传输,对于应用来说是透明的,应用无需改造即可通过中间层服务器实现数据的分布式传输,对RAC改造的成本较低。

【技术实现步骤摘要】
一种分布式数据库的数据传输方法、中间层服务器及系统
本专利技术涉及数据库
,具体涉及一种分布式数据库的数据传输方法、中间层服务器及系统。
技术介绍
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,一个技术框架固定、数据库架构稳定的业务系统,其运行性能的好坏绝大部分取决于数据库的性能变化。Oracle的真正应用集群(OracleRealApplicationCluster,RAC)是典型的shareddisk结构,如图1所示,基于shareddisk结构的RAC架构包括依次相连的客户端11、服务器集群12和磁盘阵列13。服务器集群12是建立在一个共享的磁盘阵列13之上的,服务器集群12的服务器节点之间采用高速网络互连。服务器集群12中任何一个服务器节点的故障都不会影响客户端进行正常的数据传输,之前连接在故障服务器节点上的请求会被自动转移到正常服务器节点,实现了实例级的高可用。然而,目前对基于shareddisk结构的RAC没有良好的分布式改造方案,存在着较多技术难题。第一,现有的RAC改造成本大:现有的RAC架构数据库为共享式磁盘阵列,若将现有RAC架构数据库直接替换为分布式数据库,对于应用程序的改造较大,成本较高;第二,现有的RAC性能无法线性扩展:现有的RAC在计算层面采用多服务器节点的方式,但是磁盘阵列仍然是一个共享架构,因此这种架构的数据库存在可扩展性的限制,对于大数据量、高并发的场景有一定的局限性,数据集中存放时,对于资源配置要求较高,扩展时会增加磁盘的竞争,为了保证数据的一致性,需要消耗很多额外的资源,获得的扩展能力和增加的资源不成正比,不能实现线性扩展;第三,现有的RAC服务器集群的服务器间易产生竞争:随着服务器节点数的不断增加,服务器节点间通信的成本也会随之增加,通信开销会严重影响服务器集群的处理能力,当到达某个限度时,增加服务器节点可能不会再带来性能上的提高,甚至可能造成性能下降。
技术实现思路
本专利技术实施例提供一种分布式数据库的数据传输方法、中间层服务器及系统,用于解决现有的RAC改造成本大的问题。本专利技术实施例提供了一种分布式数据库的数据传输方法,包括:接收客户端发送的数据插入请求,所述数据插入请求中包括待插入的数据;根据分布式数据库系统中服务器集群的数据库实例的数目对待插入的数据进行分割,获得N个数据块;将所述N个数据块发送至服务器集群中的N个数据库实例中;更新全局系统表,所述全局系统表中包括各个数据库实例与数据节点的对应关系;其中,N为大于等于1的整数;每个数据块中包括至少一个数据节点。可选地,所述全局系统表中还包括数据节点之间的关联关系;所述方法还包括:根据所述数据节点之间的关联关系获取所述N个数据块对应的副本数据块的数目;将所述N个数据块的副本数据块发送至服务器集群中。可选地,所述根据所述数据节点之间的关联关系获取所述N个数据块对应的副本数据块的数目,包括:根据如下公式获取所述N个数据块对应的副本数据块的数目:其中,为每个数据块对应的副本数据块的数目,每个数据块对应的副本数据块的数目小于等于V为数据块中数据节点的集合,|V|为数据块中数据节点的个数,v为数据块中的数据节点,|A(v)|为数据节点v的副本数目;p为所述数据块实例的数目;D|v|为分布式数据库中与数据节点v相关联的数据节点的数目。可选地,所述方法还包括:接收所述客户端发送的数据查询请求;根据所述全局系统表将所述查询查询请求转发至相应的数据库实例上;接收所述数据库实例返回的数据,并将所述数据库实例返回的数据发送至所述客户端。本专利技术实施例提供了一种中间层服务器,包括:数据插入请求接收单元,用于接收客户端发送的数据插入请求,所述数据插入请求中包括待插入的数据;分割单元,用于根据分布式数据库系统中服务器集群的数据库实例的数目对待插入的数据进行分割,获得N个数据块;数据块发送单元,用于将所述N个数据块发送至服务器集群中的N个数据库实例中;更新单元,用于更新全局系统表,所述全局系统表中包括各个数据库实例与数据节点的对应关系;其中,N为大于等于1的整数;每个数据块中包括至少一个数据节点。可选地,所述全局系统表中还包括数据节点之间的关联关系;还包括:副本数据块数目获取单元,用于根据所述数据节点之间的关联关系获取所述N个数据块对应的副本数据块的数目;副本数据库发送单元,用于将所述N个数据块的副本数据块发送至服务器集群中。可选地,所述副本数据块数目获取单元进一步用于:根据如下公式获取所述N个数据块对应的副本数据块的数目:其中,为每个数据块对应的副本数据块的数目,每个数据块对应的副本数据块的数目小于等于V为数据块中数据节点的集合,|V|为数据块中数据节点的个数,v为数据块中的数据节点,|A(v)|为数据节点v的副本数目;p为所述数据块实例的数目;D|v|为分布式数据库中与数据节点v相关联的数据节点的数目。可选地,还包括:数据查询请求接收单元,用于接收所述客户端发送的数据查询请求;转发单元,用于根据所述全局系统表将所述查询查询请求转发至相应的数据库实例上;数据发送单元,用于接收所述数据库实例返回的数据,并将所述数据库实例返回的数据发送至所述客户端。本专利技术实施例提供一种分布式数据库系统,包括:服务器集群、磁盘阵列和上述的中间层服务器;所述中间层服务器、所述服务器集群和所述磁盘阵列依次相连;所述服务器集群中包括多个服务器节点,每个服务器节点运行一个数据库实例;所述中间层服务器中保存有全局系统表,所述全局系统表包括各个数据库实例与数据节点的对应关系;所述中间层服务器用于控制客户端与所述数据库实例之间的数据传输。可选地,所述磁盘阵列包括多个磁盘,每个磁盘中保存有多个数据节点,每个磁盘对应一个服务器节点。本专利技术实施例提供的分布式数据库的数据传输方法、中间层服务器及系统,接收客户端发送的数据插入请求,所述数据插入请求中包括待插入的数据;根据分布式数据库系统中服务器集群的数据库实例的数目对待插入的数据进行分割,获得N个数据块;将所述N个数据块发送至服务器集群中的N个数据库实例中;更新全局系统表,所述全局系统表中包括各个数据库实例与数据节点的对应关系。本专利技术实施例通过在客户端与数据库实例之间设置中间层服务器,客户端通过所述中间层服务器与所述服务器集群中的数据库实例进行数据传输,对于应用来说是透明的,应用无需改造即可通过中间层服务器实现数据的分布式传输,对RAC改造的成本较低。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是现有的真正应用集群RAC数据库的架构图;图2是本专利技术一个实施例的分布式数据库系统的数据传输方法的流程示意图;图3是本专利技术一个实施例的中间层服务器的结构示意图;图4本专利技术一个实施例的分布式数据库系统的结构示意图;图5是本专利技术一个实施例的中间层服务器的实体结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚本文档来自技高网
...
一种分布式数据库的数据传输方法、中间层服务器及系统

【技术保护点】
一种分布式数据库的数据传输方法,其特征在于,包括:接收客户端发送的数据插入请求,所述数据插入请求中包括待插入的数据;根据分布式数据库系统中服务器集群的数据库实例的数目对待插入的数据进行分割,获得N个数据块;将所述N个数据块发送至服务器集群中的N个数据库实例中;更新全局系统表,所述全局系统表中包括各个数据库实例与数据节点的对应关系;其中,N为大于等于1的整数;每个数据块中包括至少一个数据节点。

【技术特征摘要】
1.一种分布式数据库的数据传输方法,其特征在于,包括:接收客户端发送的数据插入请求,所述数据插入请求中包括待插入的数据;根据分布式数据库系统中服务器集群的数据库实例的数目对待插入的数据进行分割,获得N个数据块;将所述N个数据块发送至服务器集群中的N个数据库实例中;更新全局系统表,所述全局系统表中包括各个数据库实例与数据节点的对应关系;其中,N为大于等于1的整数;每个数据块中包括至少一个数据节点。2.根据权利要求1所述的分布式数据库的数据传输方法,其特征在于,所述全局系统表中还包括数据节点之间的关联关系;所述方法还包括:根据所述数据节点之间的关联关系获取所述N个数据块对应的副本数据块的数目;将所述N个数据块的副本数据块发送至服务器集群中。3.根据权利要求2所述的分布式数据库的数据传输方法,其特征在于,所述根据所述数据节点之间的关联关系获取所述N个数据块对应的副本数据块的数目,包括:根据如下公式获取所述N个数据块对应的副本数据块的数目:其中,为每个数据块对应的副本数据块的数目,每个数据块对应的副本数据块的数目小于等于V为数据块中数据节点的集合,|V|为数据块中数据节点的个数,v为数据块中的数据节点,|A(v)|为数据节点v的副本数目;p为所述数据块实例的数目;D|v|为分布式数据库中与数据节点v相关联的数据节点的数目。4.根据权利要求1所述的分布式数据库的数据传输方法,其特征在于,所述方法还包括:接收所述客户端发送的数据查询请求;根据所述全局系统表将所述查询查询请求转发至相应的数据库实例上;接收所述数据库实例返回的数据,并将所述数据库实例返回的数据发送至所述客户端。5.一种中间层服务器,其特征在于,包括:数据插入请求接收单元,用于接收客户端发送的数据插入请求,所述数据插入请求中包括待插入的数据;分割单元,用于根据分布式数据库系统中服务器集群的数据库实例的数目对待插入的数据进行分割,获得N个数据块;数据块发送单元,用于将所述N个数据块发送至服务器集群中...

【专利技术属性】
技术研发人员:郭远胜
申请(专利权)人:中国移动通信集团公司中国移动通信集团湖南有限公司
类型:发明
国别省市:北京,11

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

1