应用于分布式数据库系统中的方法及分布式数据库系统技术方案

技术编号:17196166 阅读:34 留言:0更新日期:2018-02-03 22:51
本发明专利技术提供应用于分布式数据库系统中的方法及分布式数据库系统,用以解决现有技术中的分布式数据系统容易发生性能瓶颈,并且对分布式数据系统进行改造的难度高的技术问题。其中,分布式数据库系统的分区管理方法,包括:管理子系统确定至少一个第一性能状态系数,并确定至少一个第一性能状态系数之和为分布式数据库系统当前的第一散列基数;管理子系统确定是否对分布式数据库内当前所有可分配的主键ID进行分区;在为是时,管理子系统确定第一散列基数、至少一个第一性能状态系数为用于确定新分配的主键ID所对应的数据库节点时采用的散列基数、性能状态系数;其中,新分配的主键ID为下一次分区前分布式数据库系统内新分配的主键ID。

【技术实现步骤摘要】
应用于分布式数据库系统中的方法及分布式数据库系统
本专利技术涉及分布式数据库
,尤其涉及应用于分布式数据库系统中的方法及分布式数据库系统。
技术介绍
随着互联网信息的爆炸式增长,主流的数据库系统由传统的集中式数据库系统转变成为分布式数据库系统。分布式数据库由多台物理独立的数据库服务器组成,每一个数据库服务器即为一个数据库节点,旨在解决集中式数据库系统中单个数据库节点的性能瓶颈。在分布式数据库系统中,涉及到数据的路由插入和路由查询。路由插入是存储数据的过程,通过路由方法计算得到用于存储待插入数据的数据库节点,然后将待插入数据插入到该数据库节点;路由查询则是根据同样的路由方法得到待查询数据所在的数据库节点,并从该数据库节点得到数据。现有技术中采用的路由方法包括两种:第一种,根据主键ID值,将连续的主键ID划分到同一个数据库节点;例如取10000为一个区间时,则根据主键ID值划分出0-10000,10001-20000,……等区间,并将每个区间内的主键ID划分到同一个数据库节点;第二种,采用数据库节点的个数作为散列基数对主键ID值进行散列,将散列值相同的主键ID划分到同一个数据库节点;如有5个分布式数据库节点,则采用数字5为散列算法的散列基数进行散列,如散列算法为取模算法时,则用各主键ID值对5进行取模运算获得散列值,并将散列值相同主键ID划分到同一个数据库节点。然而,现有技术中的路由方法至少存在以下问题:1、上述的第一种路由方法中,由于连续的主键ID划分到同一个数据库节点,会导致对连续的主键ID进行操作时,数据插入和数据查询集中在某一数据库节点,造成性能瓶颈;2、通常各数据库节点的性能可能不相同,上述的第一种路由方法和第二种路由方法中都是将主键ID进行均分,导致无法发挥出各数据库节点的最佳性能,容易造成性能瓶颈;并且,在第二种路由方法中,当需要增加或删除数据库节点时,需要对整个分布式数据库的数据进行迁移,不仅浪费系统资源、耗时长,而且容易导致数据丢失,影响分布式数据库的正常运行。
技术实现思路
本专利技术实施例提供应用于分布式数据库系统中的方法及分布式数据库系统,用以解决现有技术中的分布式数据系统容易发生性能瓶颈,并且对分布式数据系统进行改造不便的技术问题。第一方面,提供一种分布式数据库系统的分区管理方法,所述分布式数据库系统包括管理子系统,所述方法包括:所述管理子系统确定至少一个第一性能状态系数,并确定所述至少一个第一性能状态系数之和为所述分布式数据库系统当前的第一散列基数;其中,所述至少一个第一性能状态系数用于表示所述分布式数据库系统内当前所有数据库节点中各数据库节点的当前性能状态;所述管理子系统确定是否对所述分布式数据库内当前所有可分配的主键ID进行分区;在为是时,所述管理子系统确定所述第一散列基数、所述至少一个第一性能状态系数为用于确定新分配的主键ID所对应的数据库节点时采用的散列基数、性能状态系数;其中,所述新分配的主键ID为下一次分区前所述分布式数据库系统内新分配的主键ID。在一种可能的实现方式中,所述管理子系统确定是否对所述分布式数据库内当前所有可分配的主键ID进行分区,包括:所述管理子系统确定是否满足至少一个预设条件中的任一条件;其中,所述至少一个预设条件包括以下条件中的任意一个或多个:(1)所述分布式数据库系统当前包括的数据库节点的数量不同于前一次分区时所述分布式数据库系统包括的数据库节点的数量;(2)所述第一散列基数与前一次分区时确定的散列基数的差值的绝对值大于第一预设阈值;(3)所述当前所有数据库节点中任一数据库节点当前的第一性能状态系数与前一次分区时确定的性能状态系数的差值的绝对值大于第二预设阈值;(4)当前次与前一次分区之间的时间差为预设时间差;(5)获得用于指示进行分区的分区指令。在一种可能的实现方式中,所述管理子系统确定所述第一散列基数、所述至少一个第一性能状态系数为用于确定新分配的主键ID所对应的数据库节点时采用的散列基数、性能状态系数,包括:所述管理子系统确定由所述当前所有可分配的主键ID组成的区间为第一主键ID区间,并获得所述第一主键ID区间与所述第一散列基数、所述至少一个第一性能状态系数间的第一对应关系;所述管理子系统记录所述第一对应关系、所述第一主键ID区间、所述第一散列基数、所述至少一个第一性能状态系数。在一种可能的实现方式中,在所述管理子系统确定对所述分布式数据库内当前所有可分配的主键ID进行分区时,所述方法还包括:所述管理子系统确定由前一次分区后至此次分区前所述分布式数据库系统内分配的主键ID组成的区间为第二主键ID区间,并获得所述第二主键ID区间与第二散列基数、至少一个第二性能状态系数间的第二对应关系;所述管理子系统记录所述第二对应关系、所述第二主键ID区间、所述第二散列基数、所述至少一个第二性能状态系数;其中,所述第二散列基数为前一次分区时确定的散列基数;所述至少一个第二性能状态系数为所述分布式数据库系统在前一次分区时包括的所有数据库节点中各数据库节点的性能状态系数。在一种可能的实现方式中,所述分布式数据库系统还包括路由子系统,用于在所述管理子系统与所述分布式数据库系统包括的数据库节点间路由数据,在所述管理子系统获得所述第一对应关系之后,所述方法还包括:所述管理子系统将所述第一对应关系、所述第一主键ID区间、所述第一散列基数、所述至少一个第一性能状态系数发送至所述路由子系统;所述路由子系统记录所述第一对应关系、所述第一主键ID区间、所述第一散列基数、所述至少一个第一性能状态系数;在所述管理子系统获得所述第二对应关系之后,所述方法还包括:所述管理子系统将所述第二对应关系、所述第二主键ID区间、所述第二散列基数、所述至少一个第二性能状态系数发送至所述路由子系统;所述路由子系统记录所述第二对应关系、所述第二主键ID区间、所述第二散列基数、所述至少一个第二性能状态系数。在一种可能的实现方式中,在所述路由子系统记录所述第一对应关系、所述第一主键ID区间、所述第一散列基数、所述至少一个第一性能状态系数之后,所述方法还包括:所述路由子系统从前端获得数据存储请求,所述数据存储请求用于指示所述分布式数据库系统存储待存储数据;所述路由子系统为所述待存储数据分配一可分配的主键ID,并以预设散列算法和所述第一散列基数对所述待存储数据分配的主键ID进行散列计算,以获得一散列值;所述路由子系统根据所述散列值和所述至少一个第一性能状态系数确定所述待存储数据分配的主键ID所对应的数据库节点;所述路由子系统将所述数据存储请求发送至所述对应的数据库节点;所述对应的数据库节点根据所述数据存储请求,存储所述待存储数据。第二方面,提供一种分布式数据库系统中的数据迁移方法,所述分布式数据库系统包括管理子系统,所述方法包括:所述管理子系统分别确定用于表示至少一个迁入数据库节点中各数据库节点当前性能状态的至少一个第三性能状态系数,并确定所述至少一个第三性能状态系数之和为第三散列基数;当所述管理子系统针对迁出数据库节点中任一待迁移数据执行操作时,获得所述待迁移数据的主键ID;以预设散列算法和所述第三散列基数得到所述待迁移数据的主键ID的散列值;根据所述散列值和所述至少一个第三性能状态系数,确定所述本文档来自技高网
...
应用于分布式数据库系统中的方法及分布式数据库系统

【技术保护点】
一种分布式数据库系统的分区管理方法,其特征在于,所述分布式数据库系统包括管理子系统,所述方法包括:所述管理子系统确定至少一个第一性能状态系数,并确定所述至少一个第一性能状态系数之和为所述分布式数据库系统当前的第一散列基数;其中,所述至少一个第一性能状态系数用于表示所述分布式数据库系统内当前所有数据库节点中各数据库节点的当前性能状态;所述管理子系统确定是否对所述分布式数据库内当前所有可分配的主键ID进行分区;在为是时,所述管理子系统确定所述第一散列基数、所述至少一个第一性能状态系数为用于确定新分配的主键ID所对应的数据库节点时采用的散列基数、性能状态系数;其中,所述新分配的主键ID为下一次分区前所述分布式数据库系统内新分配的主键ID。

【技术特征摘要】
1.一种分布式数据库系统的分区管理方法,其特征在于,所述分布式数据库系统包括管理子系统,所述方法包括:所述管理子系统确定至少一个第一性能状态系数,并确定所述至少一个第一性能状态系数之和为所述分布式数据库系统当前的第一散列基数;其中,所述至少一个第一性能状态系数用于表示所述分布式数据库系统内当前所有数据库节点中各数据库节点的当前性能状态;所述管理子系统确定是否对所述分布式数据库内当前所有可分配的主键ID进行分区;在为是时,所述管理子系统确定所述第一散列基数、所述至少一个第一性能状态系数为用于确定新分配的主键ID所对应的数据库节点时采用的散列基数、性能状态系数;其中,所述新分配的主键ID为下一次分区前所述分布式数据库系统内新分配的主键ID。2.如权利要求1所述的分区管理方法,其特征在于,所述管理子系统确定是否对所述分布式数据库内当前所有可分配的主键ID进行分区,包括:所述管理子系统确定是否满足至少一个预设条件中的任一条件;其中,所述至少一个预设条件包括以下条件中的任意一个或多个:(1)所述分布式数据库系统当前包括的数据库节点的数量不同于前一次分区时所述分布式数据库系统包括的数据库节点的数量;(2)所述第一散列基数与前一次分区时确定的散列基数的差值的绝对值大于第一预设阈值;(3)所述当前所有数据库节点中任一数据库节点当前的第一性能状态系数与前一次分区时确定的性能状态系数的差值的绝对值大于第二预设阈值;(4)当前次与前一次分区之间的时间差为预设时间差;(5)获得用于指示进行分区的分区指令。3.如权利要求1所述的分区管理方法,其特征在于,所述管理子系统确定所述第一散列基数、所述至少一个第一性能状态系数为用于确定新分配的主键ID所对应的数据库节点时采用的散列基数、性能状态系数,包括:所述管理子系统确定由所述当前所有可分配的主键ID组成的区间为第一主键ID区间,并获得所述第一主键ID区间与所述第一散列基数、所述至少一个第一性能状态系数间的第一对应关系;所述管理子系统记录所述第一对应关系、所述第一主键ID区间、所述第一散列基数、所述至少一个第一性能状态系数。4.如权利要求3所述的分区管理方法,其特征在于,在所述管理子系统确定对所述分布式数据库内当前所有可分配的主键ID进行分区时,所述方法还包括:所述管理子系统确定由前一次分区后至此次分区前所述分布式数据库系统内分配的主键ID组成的区间为第二主键ID区间,并获得所述第二主键ID区间与第二散列基数、至少一个第二性能状态系数间的第二对应关系;所述管理子系统记录所述第二对应关系、所述第二主键ID区间、所述第二散列基数、所述至少一个第二性能状态系数;其中,所述第二散列基数为前一次分区时确定的散列基数;所述至少一个第二性能状态系数为所述分布式数据库系统在前一次分区时包括的所有数据库节点中各数据库节点的性能状态系数。5.如权利要求4所述的分区管理方法,其特征在于,所述分布式数据库系统还包括路由子系统,用于在所述管理子系统与所述分布式数据库系统包括的数据库节点间路由数据,在所述管理子系统获得所述第一对应关系之后,所述方法还包括:所述管理子系统将所述第一对应关系、所述第一主键ID区间、所述第一散列基数、所述至少一个第一性能状态系数发送至所述路由子系统;所述路由子系统记录所述第一对应关系、所述第一主键ID区间、所述第一散列基数、所述至少一个第一性能状态系数;在所述管理子系统获得所述第二对应关系之后,所述方法还包括:所述管理子系统将所述第二对应关系、所述第二主键ID区间、所述第二散列基数、所述至少一个第二性能状态系数发送至所述路由子系统;所述路由子系统记录所述第二对应关系、所述第二主键ID区间、所述第二散列基数、所述至少一个第二性能状态系数。6.如权利要求5所述的分区管理方法,其特征在于,在所述路由子系统记录所述第一对应关系、所述第一主键ID区间、所述第一散列基数、所述至少一个第一性能状态系数之后,所述方法还包括:所述路由子系统从前端获得数据存储请求,所述数据存储请求用于指示所述分布式数据库系统存储待存储数据;所述路由子系统为所述待存储数据分配一可分配的主键ID,并以预设散列算法和所述第一散列基数对所述待存储数据分配的主键ID进行散列计算,以获得一散列值;所述路由子系统根据所述散列值和所述至少一个第一性能状态系数确定所述待存储数据分配的主键ID所对应的数据库节点;所述路由子系统将所述数据存储请求发送至所述对应的数据库节点;所述对应的数据库节点根据所述数据存储请求,存储所述待存储数据。7.一种分布式数据库系统中的数据迁移方法,其特征在于,所述分布式数据库系统包括管理子系统,所述方法包括:所述管理子系统分别确定用于表示至少一个迁入数据库节点中各数据库节点当前性能状态的至少一个第三性能状态系数,并确定所述至少一个第三性能状态系数之和为第三散列基数;当所述管理子系统针对迁出数据库节点中任一待迁移数据执行操作时,获得所述待迁移数据的主键ID;以预设散列算法和所述第三散列基数得到所述待迁移数据的主键ID的散列值;根据所述散列值和所述至少一个第三性能状态系数,确定所述至少一个迁入数据库中所述待迁移数据的主键ID所对应的待迁入数据库节点;将所述待迁移数据迁移至所述待迁入数据库节点;其中,所述至少一个迁入数据库节点和所述迁出数据库节点为所述分布式数据库系统包括的数...

【专利技术属性】
技术研发人员:杨雪皎赵跃明邓军
申请(专利权)人:北京神州绿盟信息安全科技股份有限公司北京神州绿盟科技有限公司
类型:发明
国别省市:北京,11

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

1