分布式数据库访问控制方法和设备、分布式数据库系统及其扩容方法_2

文档序号:9667436阅读:来源:国知局
,其中i为Id除以表总数N的余数,Id和N是正整数。
[0035]在一种优选实施例中,所述表标识为0到N-1的整数。
[0036]接下来,图3示出了根据本发明的一种实施例的分布式数据库访问控制设备300的结构框图。所述分布式数据库包括分布在网络中不同位置处的两个或更多个数据库。所述设备300包括:指定装置310、映射建立装置320和路由控制装置330。所述指定装置310用于向分布式数据库中的每个表指定全局的唯一表标识。映射建立装置320用于基于所述表标识建立所述分布式数据库中的各个数据库与表之间的映射关系。路由控制装置330用于根据所述映射关系来路由针对所述分布式数据库中的内容的访问请求。
[0037]该分布式数据库访问控制设备300与上述分布式数据库访问控制方法200相对应。以上对方法200的具体描述和解释同样适用于设备300,在此不再赘述。
[0038]接下来,图4示出了根据本发明的一种实施例的分布式数据库系统400的结构框图。所述分布式数据库系统400包括:应用层410、分布在网络中不同位置处的两个或更多个数据库420和数据库控制层430。所述数据库控制层430连接在所述应用层与所述两个或更多个数据库420之间。所述数据库控制层430包括:库表设置模块440和数据路由模块450。所述库表设置模块440用于向所述两个或更多个数据库中的每个表指定全局的唯一表标识,并基于所述表标识建立所述分布式数据库中的各个数据库与表之间的映射关系。所述数据路由模块450用于根据所述映射关系来路由针对所述分布式数据库中的内容的访问请求。
[0039]优选地,所述数据路由模块被配置为通过以下方式路由访问请求:将针对内容标识Id的访问请求路由到第i个表,其中i为Id除以表总数N的余数,Id和N是正整数。
[0040]优选地,所述数据库控制层还包括:数据库操作模块,用于对将所述访问请求路由到的库进行操作,其中根据所述映射关系确定将所述访问请求路由到的库。
[0041]图5示出了对图4所示的分布式数据库系统400进行扩容的方法500的流程图。所述方法500开始于步骤S510,将一个或多个表移动到扩容增加的每个数据库中。然后,在步骤S520,相应地修改库与表之间的映射关系。
[0042]优选地,在实施所述方法500时,保持每个库在扩容后都包含至少一个表。
[0043]更为优选地,使经过扩容的系统中的各个数据库中的表的数量尽可能的接近。
[0044]举例来讲,对于以上在步骤220中提及的MySQL系统,其中MySQL库的数量为20,单个库中表的数量为32。当将系统扩容一倍时,可将新增的数据库相应地命名为db_0_new到db_19_new。然后,将原有数据库中的表一分为二,将其中的一份转移到新增的对应数据库中。比如,可将 db_0 分为 table_0 到 table_15 和 table_16 到 table_31,并将 table_16到table_31放入新的数据库db_0_new中,以此类推。
[0045]待所有的表都转移完毕后,相应地更新库与表的对应关系,扩容到此完毕。
[0046]在本发明的这种扩容方法中,无需对表进行任何修改,扩容快速简单,大大改善了数据库运行效率。
[0047]尽管以上已经结合本发明的优选实施例示出了本发明,但是本领域的技术人员将会理解,在不脱离本发明的精神和范围的情况下,可以对本发明进行各种修改、替换和改变。因此,本发明不应由上述实施例来限定,而应由所附权利要求及其等价物来限定。
【主权项】
1.一种分布式数据库访问控制方法,所述分布式数据库包括分布在网络中不同位置处的两个或更多个数据库,所述方法包括: 向分布式数据库中的每个表指定全局的唯一表标识; 基于所述表标识,建立所述分布式数据库中的各个数据库与表之间的映射关系;以及 根据所述映射关系来路由针对所述分布式数据库中的内容的访问请求。2.根据权利要求1所述的方法,其中,根据以下方式路由访问请求: 将针对内容标识Id的访问请求路由到第i个表,其中i为Id除以表总数N的余数,Id和N是正整数。3.根据权利要求2所述的方法,其中所述表标识为0到N-1的整数。4.一种分布式数据库访问控制设备,所述分布式数据库包括分布在网络中不同位置处的两个或更多个数据库,所述设备包括: 指定装置,用于向分布式数据库中的每个表指定全局的唯一表标识; 映射建立装置,用于基于所述表标识建立所述分布式数据库中的各个数据库与表之间的映射关系;以及 路由控制装置,用于根据所述映射关系来路由针对所述分布式数据库中的内容的访问请求。5.一种分布式数据库系统,包括: 应用层; 分布在网络中不同位置处的两个或更多个数据库; 数据库控制层,连接在所述应用层与所述两个或更多个数据库之间,包括: 库表设置模块,用于向所述两个或更多个数据库中的每个表指定全局的唯一表标识,并基于所述表标识建立所述分布式数据库中的各个数据库与表之间的映射关系; 数据路由模块,用于根据所述映射关系来路由针对所述分布式数据库中的内容的访问请求。6.根据权利要求5所述的系统,所述数据路由模块被配置为通过以下方式路由访问请求: 将针对内容标识Id的访问请求路由到第i个表,其中i为Id除以表总数N的余数,Id和N是正整数。7.根据权利要求6所述的系统,所述数据库控制层还包括:数据库操作模块,用于对将所述访问请求路由到的库进行操作,其中根据所述映射关系确定将所述访问请求路由到的库。8.一种对根据权利要求5-7中的任一项所述的分布式数据库系统进行扩容的方法,包括: 将一个或多个表移动到扩容增加的每个数据库中,并相应地修改库与表之间的映射关系Ο9.根据权利要求8所述的方法,还包括:保持每个库在扩容后都包含至少一个表。
【专利摘要】本发明公开了分布式数据库访问控制方法和设备、分布式数据库系统及其扩容方法。所述分布式数据库包括分布在网络中不同位置处的两个或更多个数据库。所述分布式数据库访问控制方法包括:向分布式数据库中的每个表指定全局的唯一表标识;基于所述表标识,建立所述分布式数据库中的各个数据库与表之间的映射关系;以及根据所述映射关系来路由针对所述分布式数据库中的内容的访问请求。
【IPC分类】G06F17/30
【公开号】CN105426487
【申请号】CN201510813082
【发明人】李尊敬, 张启祥
【申请人】北京京东尚科信息技术有限公司, 北京京东世纪贸易有限公司
【公开日】2016年3月23日
【申请日】2015年11月20日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1