[发明专利]基于二级映射的集群动态扩展方法有效
申请号: | 201010597139.0 | 申请日: | 2010-12-10 |
公开(公告)号: | CN102033938A | 公开(公告)日: | 2011-04-27 |
发明(设计)人: | 李阳;何清法;顾云苏;冯柯;蒋志勇;徐岩;谢卫平;李晓鹏;刘荣;贾宗秀 | 申请(专利权)人: | 天津神舟通用数据技术有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京北新智诚知识产权代理有限公司 11100 | 代理人: | 张卫华 |
地址: | 100094*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 二级 映射 集群 动态 扩展 方法 | ||
技术领域
本发明涉及一种基于二级映射的集群动态扩展方法,属于数据库系统应用技术领域。
背景技术
无论是网络还是数据库集群,业务量的发展都超出了过去最乐观的估计,即使按照当时最优配置,也会很快遇到硬件的瓶颈。如何高效、快速、可靠地存储日益增长的用户数据,就需要用到集群的扩展技术。
根据扩展过程中是否需要停止原系统,将集群的扩展性分为静态扩展和动态扩展。静态扩展是指系统增减节点时,需要先停止当前运行的系统,然后根据节点增减的情况进行重新配置,最后重新启动整个系统,使之得以正常工作。动态扩展则是一种在线扩展,系统增减节点时能够自动适应这种变化,自动完成资源的迁移和重新配置,在无人干涉的情况下进行自动管理和自我维护。
当前的多数集群系统都只实现静态扩展,只能实现数据节点的自动增加,但不能适应节点减少的变化情况。静态扩展不需要考虑数据容错、分布式的元数据管理、资源动态分配等问题,因而在实现上相对容易,但由此也带来一些的问题,如系统扩展过程繁琐、可用性不高、管理和维护困难等。当节点数增加到几十或几百时,静态扩展的繁琐程度将使管理员难以忍受,因为中间任何环节出错都将导致系统扩展失败。更为重要的是,在此期间整个系统不能对外提供服务,这对于实时性和可用性要求高的应用业务来说是致命的。
数据库集群需要在元数据库里保存管理节点和数据节点的分布信息。这些分布信息是集群系统里最重要的基础性信息,它维护了整个集群的部署架构,集群就是赖于这些信息运转。一个Share-Nothing架构的数据库集群的部署架构信息类似一个树结构,无论采用什么存储方法,都必须在元数据库里保存整个树形结构。集群扩展的目的就是要对这个树形结构进行更改,增加或删除树的叶子节点,基本原理如图1所示。
与集群架构相似的,分布在集群中各个节点上的数据也需要维护这样一个树形结构来描述这些数据的分布情况。但是Share-Nothing架构的集群为了实现数据的负载均衡,都需要通过一定的分布方法对数据进行均匀分发,最常用的均匀分发方法就是hash(哈希)方法。但是hash方法要求实现固定hash基数,一旦hash分发之后基数就不能再改动,这与集群的动态扩展理念是相悖的。
发明内容
为了解决上述问题,本发明提出了一种基于二级映射集群动态扩展的方法,它可以在满足负载分布均衡的基础上,实现对数据库集群进行任意规模的扩展,而不需要停止集群服务和应用业务。
本发明采用的技术方案如下:
一种基于二级映射的集群动态扩展方法,包括以下步骤:
1)在第一维对集群的数据按照hash方法进行负载的均衡分布,这是第一级映射,在第一维的基础上采用一个M:N的映射表来进行第二级的映射;
2)通过更改第二维的映射表来动态增加新增节点,即实现集群的动态扩展。
所述步骤1)进一步分为以下步骤:
1.1)为集群创建表和hash分布,该表中包括字段Oid、BucketID、Ddl,并将第一级的分布信息存储在元数据库中,其中:Oid为对象在数据库中的唯一标识;BucketID为经过hash分布之后的hash桶号;Ddl为创建该表的sql语句;
1.2)建立映射表,将hash桶号对节点号的映射关系信息存入元数据库中;
1.3)导入数据,并提供查询服务。
所述步骤2)进一步分为以下步骤:
2.1)对新节点进行表模式定义,由于新增节点要存储表数据,因此必须对新增节点创建同其它节点一样的表模式,根据元数据库中保存的表的模式信息对新节点进行模式定义;
2.2)对元数据库的二级映射表通过进行增加操作,来更改桶号BucketID所对应的数据节点号NodeID;
2.3)新增节点之后,当需要导入数据时,为了维持负载的均衡,将该hash桶的新增数据都导入新增节点,直到同一个hash桶对应的节点负载一致之后,新增数据将被循环地导入该hash桶对应的各个节点;如果是查询,首先根据表名查找一级映射表获得该表对应的所有桶号,然后根据桶号查找二级映射表获得对应所有节点位置,并对所有位置应用该查询。
在所述步骤1.1)中,Hash桶数的选择至少为节点数的2倍。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津神舟通用数据技术有限公司,未经天津神舟通用数据技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010597139.0/2.html,转载请声明来源钻瓜专利网。