一种分布式内存数据库在线扩展节点的方法及系统技术方案

技术编号:16188223 阅读:71 留言:0更新日期:2017-09-12 11:26
本发明专利技术涉及一种分布式内存数据库在线扩展节点的方法及系统,该方法包括:新增节点,生成新路由规则;将相关数据从旧节点迁移到对应的新增节点;将相关REDO日志从旧节点迁移到对应的新增节点;向应用客户端发送切换指令,应用客户端待REDO日志迁移完成后,在新路由规则下访问分布式内存数据库;该系统包括路由规则生成模块、数据迁移模块、REDO日志迁移模块以及切换访问模块。通过本发明专利技术在不停止对外服务的情况下,在线扩展节点,使应用系统可以平滑的过渡,自动路由到新节点上。

Method and system for on-line expansion node of distributed memory database

The invention relates to a distributed memory database system and online expansion node method, the method comprises: a new node, generating new routing rules; the relevant data migration from the old node to the new node corresponding to the relevant REDO; log from the old node to migrate to the new node corresponding to the application of increasing; the client sends switching instruction, application the client to the REDO log after the migration is complete, access to distributed memory database in the new routing rules; the system includes a routing rule generation module, data transfer module, REDO module and a switching module access log migration. The invention extends the node on the line without stopping the external service, so that the application system can be smoothly transferred and automatically routed to the new node.

【技术实现步骤摘要】
一种分布式内存数据库在线扩展节点的方法及系统
本专利技术涉及分布式内存数据库领域,尤其涉及一种分布式内存数据库在线扩展节点的方法及系统。
技术介绍
分布式内存数据库凭借其超高的内存访问速度,在电信计费、实时在线交易等系统中有着广泛的应用,内存数据通过切片方式均匀分布在各个单机内存数据库节点上,对外提供统一的数据服务。随着业务量的变化,分布式内存数据库可能需要动态的增加节点以满足数据量增长的需求。传统技术中,一般会暂时停止分布式内存数据库服务,将各节点原有的数据按照新的HASH算法重新计算路由规则,并重新均匀分布在新的节点上,然后重新启动分布式内存数据库服务。由于涉及到海量数据的重新分布,耗时比较长,会导致分布式内存数据库长时间不能对外提供服务。使用内存数据库服务的系统,一般都是在线实时系统,对实时性和事务一致性有着很高的要求,无法接受内存数据库服务长时间中断。
技术实现思路
本专利技术所要解决的技术问题是:分布式内存数据库动态的扩展节点时,涉及到海量数据的重新分布,会暂时停止分布式内存数据库服务,耗时比较长,导致分布式内存数据库服务长时间中断,为解决上述技术问题,本专利技术提供了一种分布式内存数据库在线扩展节点的方法及系统。本专利技术解决上述技术问题的技术方案如下:一种分布式内存数据库在线扩展节点的方法,该方法包括以下步骤:步骤1:新增节点,根据新增节点重新规划路由对应关系,生成新路由规则;步骤2:读取旧节点的数据,将在新路由规则下属于新增节点的数据从旧节点迁移到对应的新增节点;步骤3:读取旧节点的REDO日志,将在新路由规则下属于新增节点的REDO日志从旧节点迁移到对应的新增节点;步骤4:向应用客户端发送切换指令,应用客户端待REDO日志迁移完成后,在新路由规则下访问分布式内存数据库。本专利技术的有益效果是:本专利技术采用路由对照表规则重新分布数据,使迁移的数据量降低到最小程度;采用多阶段数据迁移,在不停止对外服务的情况下,在线扩展节点,使应用系统可以平滑的过渡,自动路由到新节点上,本专利技术采用路由对照表方式,仅从旧节点迁移部分数据到新节点,即可使数据重新平均分布,降低了数据迁移规模,加快了迁移速度。在上述技术方案的基础上,本专利技术还可以做如下改进。进一步地,所述步骤1包括以下步骤:步骤1.1:新增节点;步骤1.2:创建新的路由规则对照表;步骤1.3:根据新增节点重新规划路由对应关系。进一步地,所述步骤2包括以下步骤:步骤2.1:记录数据迁移开始时间点T;步骤2.2:将新增节点添加到分布式内存数据库集群中;步骤2.3:读取所有旧节点数据,所有旧节点同时在新路由规则下属于新增节点的数据从旧节点迁移到对应的新增节点。进一步地,所述步骤3包括以下步骤:步骤3.1:从所述时间点T开始,读取旧节点的REDO日志;步骤3.2:所有旧节点同时将在新路由规则下属于新增节点的REDO日志从旧节点迁移到对应的新增节点。进一步地,所述步骤4包括以下步骤:步骤4.1:判断待迁移的REDO日志是否存在积压,若是,则继续执行步骤3,若否,执行步骤4.2;步骤4.2:将分布式内存数据库置成中间状态,分布式内存数据库服务隐藏旧节点上与所述新路由规则不符的REDO日志;步骤4.3:向应用客户端发送切换指令,应用客户端待REDO日志迁移完成后,在新路由规则下访问分布式内存数据库。采用上述进一步技术方案的有益效果是:在数据迁移结束后,由于原有的旧节点上还存在冗余数据,本专利技术根据新路由规则,隐藏那些本节点上与路由规则不符的记录,可以确保对外提供的数据准确性。进一步地,所述方法还包括步骤5:删除旧节点冗余数据。进一步地,所述方法还包括步骤6:将分布式内存数据库由中间状态改为正常状态。进一步地,所述冗余数据为与新路由规则不符的数据。本专利技术提供的另一种技术方案如下:一种分布式内存数据库在线扩展节点的系统,该系统包括路由规则生成模块、数据迁移模块、REDO日志迁移模块以及切换访问模块;所述路由规则生成模块用于新增节点,根据新增节点重新规划路由对应关系,生成新路由规则;所述数据迁移模块用于读取旧节点的数据,将在新路由规则下属于新增节点的数据从旧节点迁移到对应的新增节点;所述REDO日志迁移模块用于读取旧节点的REDO日志,将在新路由规则下属于新增节点的REDO日志从旧节点迁移到对应的新增节点;所述切换访问模块用于向应用客户端发送切换指令,应用客户端待REDO日志迁移完成后,在新路由规则下访问分布式内存数据库。进一步地,所述系统还包括删除模块和状态切换模块;所述删除模块用于删除旧节点冗余数据;所述状态切换模块用于将分布式内存数据库由中间状态改为正常状态。附图说明图1为本专利技术一种分布式内存数据库在线扩展节点的方法流程示意图;具体实施方式以下结合附图对本专利技术的原理和特征进行描述,所举实例只用于解释本专利技术,并非用于限定本专利技术的范围。如图1所示,为本专利技术实施例提供的一种分布式内存数据库在线扩展节点的方法,该方法包括以下步骤:步骤1:新增节点,根据新增节点重新规划路由对应关系,生成新路由规则;步骤2:读取旧节点的数据,将在新路由规则下属于新增节点的数据从旧节点迁移到对应的新增节点;步骤3:读取旧节点的REDO日志,将在新路由规则下属于新增节点的REDO日志从旧节点迁移到对应的新增节点;步骤4:向应用客户端发送切换指令,应用客户端待REDO日志迁移完成后,在新路由规则下访问分布式内存数据库。其中,步骤1包括以下步骤:步骤1.1:新增节点;步骤1.2:创建新的路由规则对照表:_T_HASH_RULES_NEW表,根据新增节点重新规划路由对应关系,原则是尽量均匀,迁移量最小。其中,步骤2包括以下步骤:步骤2.1:记录数据迁移开始时间点T;步骤2.2:将新增节点添加到分布式内存数据库集群中;步骤2.3:读取所有旧节点数据,所有旧节点同时在新路由规则下属于新增节点的数据从旧节点迁移到对应的新增节点。其中,步骤3包括以下步骤:步骤3.1:从所述时间点T开始,读取旧节点的REDO日志;步骤3.2:所有旧节点同时将在新路由规则下属于新增节点的REDO日志从旧节点迁移到对应的新增节点。其中,步骤4包括以下步骤:步骤4.1:判断待迁移的REDO日志是否存在积压,若是,则继续执行步骤3,若否,执行步骤4.2;步骤4.2:更新路由规则对照表,将分布式内存数据库置成中间状态,中间状态即分布式内存数据库服务隐藏旧节点上与所述新路由规则不符的REDO日志;步骤4.3:向应用客户端发送切换指令,提示应用重新加载路由规则,此时,应用如果访问旧节点,仍然是正常的,如果访问新节点,则只能等待,应用客户端待积压的REDO日志迁移完成后,在新路由规则下访问分布式内存数据库。在上述过程中,涉及迁移的数据及REDO日志记录在新旧节点上都有一份,因此在多节点并发查询时,会造成查询结果不正确(数据是冗余的)。而删除这些记录需要较长时间,应用也不可能长时间等待。因此需要提前隐藏掉这些冗余数据,方法如下:创建一张新表_T_ALTER_NODE,在更新路由规则对照表之前,将新增加的节点插入到这张表。分布式内存数据库在对外提供数据服务时,检查此表是否有数据,如果没有,按照正常的逻辑执行。如果有数据时,则校验待查记录是否符合新规则,如果本文档来自技高网...
一种分布式内存数据库在线扩展节点的方法及系统

【技术保护点】
一种分布式内存数据库在线扩展节点的方法,其特征在于,该方法包括以下步骤:步骤1:新增节点,根据新增节点重新规划路由对应关系,生成新路由规则;步骤2:读取旧节点的数据,将在新路由规则下属于新增节点的数据从旧节点迁移到对应的新增节点;步骤3:读取旧节点的REDO日志,将在新路由规则下属于新增节点的REDO日志从旧节点迁移到对应的新增节点;步骤4:向应用客户端发送切换指令,应用客户端待REDO日志迁移完成后,在新路由规则下访问分布式内存数据库。

【技术特征摘要】
1.一种分布式内存数据库在线扩展节点的方法,其特征在于,该方法包括以下步骤:步骤1:新增节点,根据新增节点重新规划路由对应关系,生成新路由规则;步骤2:读取旧节点的数据,将在新路由规则下属于新增节点的数据从旧节点迁移到对应的新增节点;步骤3:读取旧节点的REDO日志,将在新路由规则下属于新增节点的REDO日志从旧节点迁移到对应的新增节点;步骤4:向应用客户端发送切换指令,应用客户端待REDO日志迁移完成后,在新路由规则下访问分布式内存数据库。2.根据权利要求1所述的一种分布式内存数据库在线扩展节点的方法,其特征在于,步骤1包括以下步骤:步骤1.1:新增节点;步骤1.2:创建新的路由规则对照表;步骤1.3:根据新增节点重新规划路由对应关系。3.根据权利要求1或2所述的一种分布式内存数据库在线扩展节点的方法,其特征在于,步骤2包括以下步骤:步骤2.1:记录数据迁移开始时间点T;步骤2.2:将新增节点添加到分布式内存数据库集群中;步骤2.3:读取所有旧节点数据,所有旧节点同时在新路由规则下属于新增节点的数据从旧节点迁移到对应的新增节点。4.根据权利要求3所述的一种分布式内存数据库在线扩展节点的方法,其特征在于,步骤3包括以下步骤:步骤3.1:从所述时间点T开始,读取旧节点的REDO日志;步骤3.2:所有旧节点同时将在新路由规则下属于新增节点的REDO日志从旧节点迁移到对应的新增节点。5.根据权利要求1或4所述的一种分布式内存数据库在线扩展节点的方法,其特征在于,步骤4包括以下步骤:步骤4.1:判断待迁移的REDO日志是否存在积压,若是,则继续执行步骤3,若否,执行步骤4.2;步骤...

【专利技术属性】
技术研发人员:王金山
申请(专利权)人:北京思特奇信息技术股份有限公司
类型:发明
国别省市:北京,11

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

1