分布式系统中元数据的迁移方法及装置的制造方法

文档序号:10666357阅读:329来源:国知局
分布式系统中元数据的迁移方法及装置的制造方法
【专利摘要】本发明提供了一种分布式系统中元数据的迁移方法及装置,其中该方法包括:接收来自分布式系统的通知消息,其中,该通知消息用于指示元数据分布路由规则发生了变化;依据通知消息比较调整前与调整后的元数据分布路由规则,得到元数据在元数据服务器集群的节点之间的迁移数据流,其中,迁移数据流用于指示元数据的迁移过程。通过本发明,解决了相关技术中调整元数据路由规则时,需要将部分元数据拆分或迁移到其它一个或多个元数据服务器群集,并同步修改受影响的元数据路由规则的问题。
【专利说明】
分布式系统中元数据的迁移方法及装置
技术领域
[0001]本发明涉及通信领域,具体而言,涉及一种分布式系统中元数据的迀移方法及装置。
【背景技术】
[0002]客户请求消息到达的分布式系统中处理客户请求消息的边界网关后,边界网关需要根据某种方法首先定位元数据服务器,之后由元数据服务器查询自身数据库将消息路由给下一级元数据服务器或路由给存储真实数据的服务器。在上述定位元数据服务器的过程中,相关技术中通常采用两种方案:预先配置元数据的路由信息或系统创建内部数据库以维护查询条件与元数据服务器的路由对照关系。但随着存储数据的增多,查询对照关系的操作将成为系统的瓶颈,并导致此方案将不再可行,因此在大容量数据库的方案中多采用预先配置元数据路由信息的方案。
[0003]针对预先配置元数据路由的方案,相关技术中存在的问题是:在该方案中,路由规则一旦确定,元数据的分布即与元数据的路由信息产生绑定。因此当系统需要调整元数据路由规则时,需要首先将元数据从现有某一个元数据服务器群集迀移到另外一个群集,并确保在元数据迀移完成后控制系统切换到新的元数据分布路由方案,例如,系统中需要修改一个用户号码段的路由信息到新的元数据服务器群集时,或者当某一个元数据服务器群集中元数据的增长达到系统瓶颈时,系统需要将部分元数据拆分到其他一个或多个元数据服务器群集,并同步修改受影响的元数据路由规则。
[0004]针对相关技术中调整元数据路由规则时,需要将部分元数据拆分或迀移到其它一个或多个元数据服务器群集,并同步修改受影响的元数据路由规则的问题,业界尚未提出有效的解决方案。

【发明内容】

[0005]本发明的主要目的在于提供一种分布式系统中元数据的迀移方法及装置,以解决相关技术中调整元数据路由规则时,需要将部分元数据拆分或迀移到其它一个或多个元数据服务器群集,并同步修改受影响的元数据路由规则的问题。
[0006]根据本发明的一个方面,提供了一种分布式系统中元数据的迀移方法,包括:接收来自分布式系统的通知消息,其中,该通知消息用于指示元数据分布路由规则发生了变化;依据所述通知消息比较调整前与调整后的所述元数据分布路由规则,得到所述元数据在元数据服务器集群的节点之间的迀移数据流,其中,所述迀移数据流用于指示所述元数据的迀移过程,所述迀移数据流包括:第一服务器集群中迀出所述元数据的迀出节点、第二服务器集群中迀入所述元数据的迀入节点、所述元数据的内容;依据所述迀移数据流通知所述迀出节点将所述元数据的内容复制到所述迀入节点中。
[0007]进一步地,在依据所述迀移数据流通知所述迀出节点将所述元数据的内容复制到所述迀入节点之前,所述方法还包括:记录迀出所述元数据的迀移启动信息,其中,所述启动信息包括:启动时间、所述分布式系统在启动数据迀移前最近一次的写操作信息,其中,所述写操作信息包括:写操作发生的时间、写操作的内容、写操作的序号;或,通知所述迀出节点申请第一锁,其中,所述第一锁用于锁住所述迀出节点中所有迀移数据的写操作。
[0008]进一步地,在所述迀移数据流启动后,并在复制所述元数据到所述迀入节点前,所述方法还包括:在所述记录所述元数据的所述迀移启动信息后,将在复制所述元数据到所述迀入节点前的所有写操作信息写入到同步队列;或,在通知所述迀出节点申请第一锁后,并在复制所述元数据到所述迀入节点前,所述方法还包括:禁止所述迀出节点执行所述写操作。
[0009]进一步地,在依据所述迀移数据流通知所述迀出节点将所述元数据的内容复制到所述迀入节点之后,包括:通知所述迀出节点申请第二锁,其中,所述第二锁用于锁住迀出的所述元数据的写操作;并向所述迀入节点发送所述同步队列中的所述写操作信息;在所述元数据的内容复制完成后,通知删除所述迀出节点中已复制的所述元数据,并释放所述第二锁;或,通知删除所述迀出节点中已复制的所述元数据,并释放所述第一锁。
[0010]进一步地,通知删除所述迀出节点中已复制的所述元数据包括:在所述迀入节点和所述迀出节点完成数据复制时,通知所述分布式系统当前数据迀移流复制的完成,并接收所述通知删除所述迀出节点中已复制的所述元数据的指示;或,向所述迀出节点和所述迀入节点发送用于查询所述迀移数据流的迀移状态的查询指令;接收所述迀出节点和所述迀入节点发送的响应于所述查询指令的响应指令,其中,所述响应指令用于指示所述迀移数据流迀移状态;在所述响应指令指示所述迀移数据流迀移成功时,通知所述分布式系统启用新的元数据分布路由规则,并通知所述迀出节点删除所述元数据的内容。
[0011]进一步地,所述方法还包括:在所述查询指令指示所述迀移数据流迀移异常时,向所述迀出节点和所述迀入节点发送回退请求,其中,所述回退请求用于指示通知所述迀出节点和所述迀入节点终止所述迀移流数据的复制操作,以及通知所述迀入节点删除已复制的所述元数据的内容。
[0012]进一步地,所述第一服务集群或所述第二服务集群可同时作为多个迀移数据流的迀入和迀出服务集群。
[0013]根据本发明的另一个方面,提供了一种分布式系统中元数据的迀移装置,包括:接收模块,用于接收来自分布式系统的通知消息,其中,该通知消息用于指示元数据分布路由规则发生了变化;比较模块,用于依据所述通知消息比较调整前与调整后的所述元数据分布路由规则,得到所述元数据在元数据服务器集群的节点之间的迀移数据流,其中,所述迀移数据流用于指示所述元数据的迀移过程,所述迀移数据流包括:第一服务器集群中迀出所述元数据的迀出节点、第二服务器集群中迀入所述元数据的迀入节点、所述元数据的内容;第一复制模块,用于依据所述迀移数据流通知所述迀出节点将所述元数据的内容复制到所述迀入节点中。
[0014]进一步地,在所述迀出节点将所述元数据的内容复制到所述迀入节点中之前,所述装置还包括:记录模块,用于记录迀出所述元数据的迀移启动信息,其中,所述启动信息包括:启动时间、所述分布式系统在启动数据迀移前最近一次的写操作信息,其中,所述写操作信息包括:写操作发生的时间、写操作的内容、写操作的序号;或,第一通知模块,用于通知所述迀出节点申请第一锁,其中,所述第一锁用于锁住所述迀出节点中所有迀移数据的写操作。
[0015]进一步地,在所述迀移数据流启动后,并在复制所述元数据到所述迀入节点前,所述装置还包括:第二复制模块,用于在所述记录所述元数据的所述迀移启动信息后,将在复制所述元数据到所述迀入节点前的所有写操作信息写入到同步队列;或,在通知所述迀出节点申请第一锁后,并在复制所述元数据到所述迀入节点前,所述装置还包括:禁止模块,用于禁止所述迀出节点执行所述写操作。
[0016]进一步地,在所述迀出节点将所述元数据的内容复制到所述迀入节点中之后,所述装置还包括:第二通知模块,用于通知所述迀出节点申请第二锁,其中,所述第二锁用于锁住迀出的所述元数据的写操作;并向所述迀入节点发送所述同步队列中的所述写操作信息;在所述元数据的内容复制完成后,通知删除所述迀出节点中已复制的所述元数据,并释放所述第二锁;或,第三通知模块,用于通知删除所述迀出节点中已复制的所述元数据,并释放所述第一锁。
[0017]进一步地,所述第二通知模块包括:第一通知单元,用于在所述迀入节点和所述迀出节点完成数据复制时,通知所述分布式系统当前数据迀移流复制的完成;第一接收单元,用于接收所述通知删除所述迀出节点中已复制的所述元数据的指示;所述第三通知模块包括:第一发送单元,用于向所述迀出节点和所述迀入节点发送用于查询所述迀移数据流的迀移状态的查询指令;第二接收单元,用于接收所述迀出节点和所述迀入节点发送的响应于所述查询指令的响应指令,其中,所述响应指令用于指示所述迀移数据流迀移状态;第二通知单元,用于在所述响应指令指示所述迀移数据流迀移成功时,通知所述分布式系统启用新的元数据分布路由规则,并通知所述迀出节点删除所述元数据的内容。
[0018]进一步地,所述第三通知模块还包括:第二发送单元,用于在所述查询指令指示所述迀移数据流迀移异常时,向所述迀出节点和所述迀入节点发送回退请求,其中,所述回退请求用于指示通知所述迀出节点和所述迀入节点终止所述迀移流数据的复制操作,以及通知所述迀入节点删除已复制的所述元数据的内容。
[0019]进一步地,所述第一服务集群或所述第二服务集群可同时作为多个迀移数据流的迀入和迀出服务集群。
[0020]通过本发明,采用在接收到分布式系统中的元数据的分布路由规则发生变化之后,通过比较调整前与调整后的元数据分布路由规则,得到元数据在元数据服务器集群的节点之间的迀移数据流,据迀移数据流通知迀出节点将元数据的内容复制到迀入节点中的方式,即通过用于指示元数据的迀移过程的移数据流,将需要迀移的元数据复制到需要迀入的节点,实现元数据的迀移,同时也不用改变其他元数据的路由规则,解决了相关技术中调整元数据路由规则时,需要将部分元数据拆分或迀移到其它一个或多个元数据服务器群集,并同步修改受影响的元数据路由规则的问题,进而达到了元数据平滑移动的效果。
【附图说明】
[0021]此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0022]图1是根据本发明实施例的分布式系统中元数据的迀移方法的流程图;
[0023]图2是根据本发明实施例的分布式系统中元数据的迀移装置结构框图;
[0024]图3是根据本发明实施例的分布式系统中元数据的迀移装置可选结构框图一;
[0025]图4是根据本发明实施例的分布式系统中元数据的迀移装置可选结构框图二 ;
[0026]图5是根据本发明实施例的分布式系统中元数据的迀移装置可选结构框图三;
[0027]图6是根据本发明可选实施例的元数据在元数据服务器群集重新分布的执行顺序不意图;
[0028]图7是根据本发明可选实施例的2个元数据群集之间的元数据调整方法流程图;
[0029]图8是根据本发明可选实施例的元数据重新分布的方法流程图;
[0030]图9是根据本发明可选实施例的待迀移元数据从迀出群集到迀入群集的复制方法的流程图;
[0031]图10是根据本发明可选实施例的数据重新分布的复制完成的方法流程图;
[0032]图11是根据本发明可选实施例的回退处理方法的流程图;
[0033]图12是根据本发明可选实施例的元数据的迀移完成处理方法流程图。
【具体实施方式】
[0034]需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
[0035]在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0036]本实施例提供了一种分布式系统中元数据的迀移方法,图1是根据本发明实施例的分布式系统中元数据的迀移方法的流程图,如图1所示,该流程包括以下步骤:
[0037]步骤S102:接收来自分布式系统的通知消息;
[0038]其中,该通知消息用于指示元数据分布路由规则发生了变化;
[0039]步骤S104:依据通知消息比较调整前与调整后的元数据分布路由规则,得到元数据在元数据服务器集群的节点之间的迀移数据流;
[0040]其中,迀移数据流用于指示元数据的迀移过程,迀移数据流包括:第一服务器集群中迀出元数据的迀出节点、第二服务器集群中迀入元数据的迀入节点、迀移涉及的元数据的内容;
[0041]步骤S106:依据迀移数据流通知迀出节点将元数据的内容复制到迀入节点中。
[0042]通过本实施例,采用在接收到分布式系统中的元数据的分布路由规则发生变化之后,通过比较调整前与调整后的元数据分布路由规则,得到元数据在元数据服务器集群的节点之间的迀移数据流,据迀移数据流通知迀出节点将元数据的内容复制到迀入节点中的方式,即通过用于指示元数据的迀移过程的移数据流,将需要迀移的元数据复制到需要迀入的节点,实现元数据的迀移,同时也不用改变其他元数据的路由规则,解决了相关技术中调整元数据路由规则时,需要将部分元数据拆分或迀移到其它一个或多个元数据服务器群集,并同步修改受影响的元数据路由规则的问题,进而达到了元数据平滑移动的效果。
[0043]在本实施例的可选实施例中,在上述步骤S106中依据迀移数据流通知迀出节点将元数据的内容复制到迀入节点之前,本实施例还可以包括:在依据迀移数据流通知迀出节点将元数据的内容复制到迀入节点之前,本实施例可以包括如下两种方式:
[0044]方式一:记录迀出元数据的迀移启动信息,其中,启动信息包括:启动时间、分布式系统在启动数据迀移前最近一次的写操作信息,其中,写操作信息包括:写操作发生的时间、写操作的内容、写操作的序号;
[0045]此外,在迀移数据流启动后,并在复制元数据到迀入节点前,方法还包括:在记录元数据的迀移启动信息后,将在复制元数据到迀入节点前的所有写操作信息写入到同步队列;
[0046]方式二:通知迀出节点申请第一锁,其中,第一锁用于锁住迀出节点中所有迀移数据的写操作。
[0047]此外,在通知迀出节点申请第一锁后,并在复制元数据到迀入节点前,方法还包括:禁止迀出节点执行写操作。
[0048]而在本实施例的一个可选实施方式中,基于上述方式一,在依据迀移数据流通知迀出节点将元数据的内容复制到迀入节点之后,本实施例的方法还可以包括:通知迀出节点申请第二锁,其中,第二锁用于锁住迀出的元数据的写操作;并向迀入节点发送同步队列中的写操作信息;在元数据的内容复制完成后,通知删除迀出节点中已复制的元数据,并释放第二锁。
[0049]基于上述方式二,在依据迀移数据流通知迀出节点将元数据的内容复制到迀入节点之后,本实施例的方法还可以包括:通知删除迀出节点中已复制的元数据,并释放第一锁。
[0050]也即,通过上述方式一同步需要迀移的元数据之后锁住同步之后的对迀移的元数据的写操作,或者通过上述方式二锁住迀出节点所有迀移数据的写操作,进而可以阻止迀出节点继续处理针对待迀移元数据或全部数据的写操作。也就是说,在迀移之前锁住需要迀移的元数据的写操作或者锁住迀出节点所有迀移数据的写操作,进而可以实现元数据更加平滑的迀移。需要说明的是,上述两种方式仅仅是本发明实施例的可选实施方式,并不构成对本发明的限定。
[0051 ] 针对本实施例中上述通知删除迀出节点中已复制的元数据的内容的方式,可以通过如下方式来实现,下面将通过本实施例中的两种可选实施方式进行举例说明:
[0052]可选实施方式一:在迀入节点和迀出节点完成数据复制时,通知分布式系统当前数据迀移流复制的完成,并接收通知删除迀出节点中已复制的元数据的指示。
[0053]可选实施方式二:向迀出节点和迀入节点发送用于查询迀移数据流的迀移状态的查询指令;接收迀出节点和迀入节点发送的响应于查询指令的响应指令,其中,响应指令用于指示迀移数据流迀移状态;在响应指令指示迀移数据流迀移成功时,通知分布式系统启用新的元数据分布路由规则,并通知迀出节点删除元数据的内容。
[0054]需要说明的是,上述两种可选实施方式中,可选实施方式一为迀入和迀出节点完成数据复制后会主动通知复制完成的方式;可选实施方式二维系统主动查询复制的完成状态的方式。
[0055]此外,在上述可选实施方式二中在查询指令指示迀移数据流迀移异常时,本实施例的方法还包括:需要向迀出节点和迀入节点发送回退请求,其中,回退请求用于指示通知迀出节点和迀入节点终止迀移流数据的复制操作,以及通知迀入节点删除已复制的元数据的内容。
[0056]可选地,对于本实施例中涉及到的第一服务集群或第二服务集群可同时作为多个迀移数据流的迀入和迀出服务集群。
[0057]在本实施例中还提供了一种分布式系统中元数据的迀移装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”“单元”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
[0058]图2是根据本发明实施例的分布式系统中元数据的迀移装置结构框图,如图2所示,该装置包括:接收模块22,用于接收来自分布式系统的通知消息,其中,该通知消息用于指示元数据分布路由规则发生了变化;比较模块24,与接收模块22耦合连接,用于依据通知消息比较调整前与调整后的元数据分布路由规则,得到元数据在元数据服务器集群的节点之间的迀移数据流,其中,迀移数据流用于指示元数据的迀移过程,迀移数据流包括:第一服务器集群中迀出元数据的迀出节点、第二服务器集群中迀入元数据的迀入节点、元数据的内容;第一复制模块26,与比较模块24耦合连接,用于依据迀移数据流通知迀出节点将元数据的内容复制到迀入节点中。
[0059]图3是根据本发明实施例的分布式系统中元数据的迀移装置可选结构框图一,如图3所示,在迀出节点将元数据的内容复制到迀入节点中之前,该装置还可以包括:记录模块32,与比较模块24耦合连接,用于记录迀出元数据的迀移启动信息,其中,启动信息包括:启动时间、分布式系统在启动数据迀移前最近一次的写操作信息,其中,写操作信息包括:写操作发生的时间、写操作的内容、写操作的序号;在迀移数据流启动后,并在复制元数据到迀入节点前,该装置还可以包括:第二复制模块34,与记录模块32耦合连接,用于在记录元数据的迀移启动信息后,将在复制元数据到迀入节点前的所有写操作信息写入到同步队列。
[0060]在本实施例中,在迀出节点将元数据的内容复制到迀入节点中之后,该装置包括:第二通知模块36,与第二复制模块34耦合连接并与第一复制模块耦合连接,用于通知迀出节点申请第二锁,其中,第二锁用于锁住迀出的元数据的写操作;并向迀入节点发送同步队列中的写操作信息;在元数据的内容复制完成后,通知删除迀出节点中已复制的元数据,并释放第二锁。
[0061]可选地,该第二通知模块36包括:第一通知单元,用于在迀入节点和迀出节点完成数据复制时,通知分布式系统当前数据迀移流复制的完成;第一接收单元,用于接收通知删除迀出节点中已复制的元数据的指示;
[0062]在本实施例的另一个可选结构框图中,图4是根据本发明实施例的分布式系统中元数据的迀移装置可选结构框图二,如图4所示,在迀出节点将元数据的内容复制到迀入节点中之前,该装置还可以包括:第一通知模块42,与比较模块24耦合连接,用于通知迀出节点申请第一锁,其中,第一锁用于锁住迀出节点中所有迀移数据的写操作;在通知迀出节点申请第一锁后,并在复制元数据到迀入节点前,该装置还可以包括:禁止模块44,与第一通知模块42耦合连接,用于禁止迀出节点执行写操作。
[0063]在迀出节点将元数据的内容复制到迀入节点中之后,装置还可以包括:第三通知模块46,与禁止模块44耦合连接,用于通知删除迀出节点中已复制的元数据,并释放第一锁。
[0064]图5是根据本发明实施例的分布式系统中元数据的迀移装置可选结构框图三,如图5所示,第三通知模块46包括:第一发送单元52,用于向迀出节点和迀入节点发送用于查询迀移数据流的迀移状态的查询指令;第二接收单元54,与第一发送单元52耦合连接,用于接收迀出节点和迀入节点发送的响应于查询指令的响应指令,其中,响应指令用于指示迀移数据流迀移状态;第二通知单元56,与第二接收单元54耦合连接,用于在响应指令指示迀移数据流迀移成功时,通知分布式系统启用新的元数据分布路由规则,并通知迀出节点删除元数据的内容。
[0065]而在查询指令指示迀移数据流迀移异常时,该第三通知模块46还可以包括:第二发送单元58,与第二接收单元54耦合连接,用于在查询指令指示迀移数据流迀移异常时,向迀出节点和迀入节点发送回退请求,其中,回退请求用于指示通知迀出节点和迀入节点终止迀移流数据的复制操作,以及通知迀入节点删除已复制的元数据的内容。
[0066]需要说明的是,对于本实施例迀移装置中涉及到的第一服务集群或第二服务集群可同时作为多个迀移数据流的迀入和迀出服务集群。
[0067]下面结合附图以及可选实施例对本发明进行举例说明。
[0068]本可选实施例提供了一种基于规划调整分布式系统中元数据分布的方法,图6是根据本发明可选实施例的元数据在元数据服务器群集重新分布的执行顺序示意图,如图6所示,按照执行的业务逻辑先后顺序,该方法的顺序包括:
[0069]步骤S1、元数据路由重新分布后的准备工作;
[0070]步骤S2、待迀移元数据从迀出群集到迀入群集的复制;
[0071]步骤S3、元数据重新分布的数据复制完成;
[0072]步骤S4、元数据重新分布的完成;
[0073]步骤S5、在上述步骤中可能出现的异常流程或人工干预时,触发系统执行回退操作。
[0074]下面针对上述步骤SI?S5进行--的解释,首先针对本可选实施例中上述元数据重新分布的准备工作的过程进行相应的解释;
[0075]元数据重新分布的准备工作可以在每次管理员调整元数据分布规则后自动/手工触发,也可以由管理员设置执行计划在预定的时候自动执行。
[0076]本可选实施例在元数据分配规则发生变化后,分布式系统中存在一个元数据重新分布的控制装置(其后简称装置),此装置将对比变化前与变化后的元数据分布路由规则,得到元数据在元数据服务器群集之间的迀移数据流集合,每个元数据迀移数据流用于定义一个元数据的迀移过程,该迀移数据流中包括:元数据迀出服务器群集,迀入服务器群集以及迀移元数据的内容。由于元数据分布的调整可能涉及同时向一个元数据服务器群集迀入部分数据和迀出数据,因此一个元数据服务器群集可能同时作为某一个迀移数据流的迀入服务器群集和另外一个迀移数据流的迀出服务器群集。
[0077]确定迀入迀出元数据群集后,装置针对每个迀移数据流,从迀出群集中选择一个可以处理写操作的正常服务器作为迀出节点,从迀入群集中选择一个可以处理写操作的正常服务器作为迀入节点。
[0078]所有迀移数据流的迀出节点和迀入节点确定后,装置将控制每个元数据迀移流的迀入和迀出节点启动数据迀移流程,或按照操作员的指示取消操作。
[0079]针对本可选实施例中待迀移元数据从迀出群集到迀入群集的复制的过程:
[0080]每个元数据迀移数据流,当元数据重新分布的控制装置通知迀出和迀入服务器启动元数据分布调整后,为实现系统的平滑迀移,元数据迀出服务器可记录启动数据复制的开始状态,例如开始时间,开始日志序号等信息,并将开始操作后发生的针对待迀移数据或本节点的所有写操作记录到同步队列中。此后元数据将持续从迀出节点流向迀入节点,当待迀移的元数据复制到迀入节点并保存成功后,迀入节点将通过本群集内部署的数据同步功能自动同步变化数据到本群集内的其他服务器节点;
[0081]当迀入服务器判断待迀移的数据全部复制完成后,可向系统申请写操作锁,锁定迀移的数据或整个节点的写操作,阻止迀出元数据服务器继续处理针对待迀移元数据或全部数据的写操作,之后开始同步缓存在同步队列中的操作信息。
[0082]当迀出和迀入服务器确定迀出服务器中的同步队列同步完成后,迀入服务器向元数据重新分布的控制装置上报当前处理的元数据迀移数据流。迀出元数据服务器释放本服务器申请的写操作锁,并向元数据重新分布的控制装置上报当前处理的元数据迀移数据流完成。
[0083]针对本可选实施例中待迀移元数据的数据复制完成的过程进行相应的解释:
[0084]装置收到元数据服务器通知后更新元数据迀移数据流的状态。为避免由于网络瞬时故障而引起的消息丢失,元数据重新分布的控制装置可启动查询机制,向涉及的元数据服务器查询每个迀移数据流的迀移状态。
[0085]当元数据重新分布的控制装置确认本次调整所涉及的元数据迀移数据流均迀移成功后,即可断定待迀移元数据的数据复制完成。当其中任何一个元数据迀移数据流执行异常终止后元数据重新分布的控制装置即判定本次元数据调整失败,系统可进入退回流程,或等待人工干预并解决故障后继续数据复制流程。
[0086]针对本可选实施例中涉及到的元数据重新分布的数据迀移完成实现过程进行相应的解释:
[0087]当元数据重新分布的控制装置确认本次调整涉及的所有元数据迀移数据流均完成后,系统将执行如下操作:
[0088]步骤A:向系统内负责元数据路由的网关或客户端发送通知,通知启用新的元数据分布、路由规则。
[0089]步骤B:向数据迀出群集发送通知消息,通知迀出元数据群集删除已复制并待删除的迀移元数据。
[0090]处理元数据路由的网关、客户端以及迀出服务器删除数据结束后向元数据重新分布的控制装置确认处理结果,本次元数据分布调整正确结束。
[0091]为提供系统稳定性,装置可启动定时查询机制向处理元数据路由的网关、客户端以及迀出服务器查询处理状态。
[0092]针对本可选实施例中的元数据重新分布的回退实现过程进行相应的解释:
[0093]元数据重新分布过程中在如下场景可触发回退操作,条件判断不分先后:
[0094]场景一:待迀移的元数据复制过程中,针对元数据迀移数据流,无法找合适的迀入和迀出元数据服务器。
[0095]场景二:待迀移的元数据复制过程中,数据复制失败。
[0096]场景三:元数据重新分布控制装置在元数据重新分布过程中与至少一个迀入,迀出元数据服务器群集失去通讯。
[0097]场景四:人工操作设置操作回退。
[0098]其中,回退操作的执行可支持如下方式:(I):系统立即执行;(2):
【申请人】工干预,需要人工选择执行回退或选择继续尝试直到故障消除。
[0099]回退操作启动后,元数据重新分布的控制装置向每个元数据迀移数据流涉及的迀入和迀出服务器发送回退请求,当收到回退请求后迀入和迀出服务器执行如下操作:
[0100]迀出服务器:按照要求终止对应的元数据迀移数据流的复制流程,清空同步队列。如已申请写操作锁,则释放操作锁。
[0101]迀入服务器:按照要求停止对应的元数据迀移数据流复制过程,删除已经复制的数据。
[0102]通过本可选实施例,当系统需要调整元数据的分布规则时,基于对比更新前后的元数据路由规则变化,确定需要执行数据迀移的元数据服务器群集,协作和控制元数据在元数据群集之间的迀移,实现元数据分布随着路由信息的调整而在系统中的平滑迀移。同时可以在控制系统调整完成后自动切换到新的元数据分布规则避免业务中断。
[0103]下面结合附图和具体实施例对本可选实施例进行详细的说明;
[0104]实施例一
[0105]图7是根据本发明可选实施例的2个元数据群集之间的元数据调整方法流程图,如图7所示,以2个元数据群集的系统为例,基于规划的元数据调整方法的步骤包括:
[0106]步骤S702?S704:客户端或负责分发客户消息的网关依照元数据分布的规则,访问元数据群集I和元数据群集2中的服务器节点。
[0107]步骤S706:系统管理员调整了元数据的分布规则,并根据系统触发的方式:自动、手动、定时在触发后;由分布规则调整后向系统中元数据重新分布装置提起元数据重新分布请求。
[0108]步骤S708:元数据重分布装置分析调整前和调整后的元数据分布规则,得到本次调整的变化内容:确认将部分元数据服务器群集I中的元数据调整到元数据服务器群集2中。同时,元数据重分布装置根据服务器的状态选取元数据服务器1-1作为迀出服务器,元数据服务器2-1作为迀入服务器。
[0109]步骤S710:元数据重分布装置请求元数据的迀出服务器需要执行数据迀出操作;
[0110]步骤S712:元数据重分布装置请求元数据的迀入服务器需要执行数据迀出操作;
[0111]步骤S714:元数据启动迀移,迀入和迀出服务器将按照元数据重分布装置给出的指示,将待迀移的元数据从迀出服务器向迀入服务器复制;
[0112]步骤S716:迀移的元数据进入迀入服务器并成功保存后,元数据迀入服务器将通过本群集中部署的数据同步机制将迀入的数据同步到本群集的其他节点;
[0113]步骤S718:元数据迀出服务器确认待迀出的元数据已完成向迀入元服务器的复制后,向元数据重分布装置上报完成状态;
[0114]步骤S720:元数据迀出服务器确认待迀入的数据已成功保存并向元数据重分布装置上报完成状态;
[0115]步骤S722:元数据重分布装置根据迀入和迀出服务器的确认消息,确认本次调整涉及的元数据迀移操作均已完成,向系统负责路由客户请求到元数据服务器的网关(或客户端,当客户端负责数据路由时)同步变化后的元数据分布规则。
[0116]步骤S724:路由客户请求的元数据服务器的网关或客户端生效新的元数据分布规则;
[0117]步骤S726:路由客户请求的元数据服务器的网关或客户端向元数据重分布装置确认新的元数据分布规则生效;
[0118]步骤S728:元数据重分布装置通知迀出服务器删除迀出数据,迀出服务器执行数据删除操作,删除已迀出的元数据;
[0119]步骤S730:元数据迀出服务器删除元数据后,通过本群集中部署的数据同步机制实现在本群集中其它服务器删除迀出的元数据;
[0120]在本实施例一中,元数据重分布装置可通过如下步骤的方式触发回退流程:
[0121]方式一:在步骤S708:中,元数据重分布装置无法从系统中选择状态正常的迀入或迀出服务器。
[0122]方式二:在步骤S710,S712中,迀出或迀入服务器确认无法执行数据迀移。
[0123]方式三:在步骤S714中元数据重分布装置失去与迀入或迀出服务器的通讯。
[0124]方式四:在步骤S718,S720中,迀出服务器上报数据迀出或迀入异常。
[0125]方式五:在步骤S720前,操作员提交回退请求。
[0126]其中,对本实施一涉及的回退流程的处理方式为:A:元数据重分布装置请求元数据迀出服务器停止数据迀出:元数据重分布装置请求元数据迀入服务器停止数据迀入,迀入服务器收到请求后将删除已复制的元数据,删除操作将通过本群集内部署的同步机制同步到本群集中的其它服务器。
[0127]图8是根据本发明可选实施例的元数据重新分布的方法流程图,如图8所示,本实施例中元数据重新分布的准备工作的步骤包括:
[0128]步骤S802:修改元数据分布路由规则;
[0129]步骤S804:向分布式系统确认修改并设置系统的执行方式;
[0130]其中,该执行方式可以立即执行:系统将立即执行元数据重新分布的准备工作;或,定时执行:管理员希望系统在将来的某个时间点执行;
[0131]步骤S806:设置执行方式,立即执行则进入步骤S810,否则进入步骤S808 ;
[0132]步骤S808:系统等待管理员设置的时间到达;
[0133]步骤S810:元数据重新分布控制装置对比变化前后的元数据路由规则,获得需要迀出和迀入的元数据服务器群集信息以及需要调整的元数据信息;
[0134]其中,由于元数据的分布规则调整,一个元数据节点在元数据分布调整过程中可能同时本发明在元数据分配规则发生变化后,分布式系统中存在一个元数据重新分布的控制装置,此装置将对比变化前与变化后的元数据分布规则,得到元数据在元数据服务器群集之间的迀移数据流,针对每个元数据迀移数据流,包含迀出服务器的群集以及迀入服务器的群集。
[0135]步骤S812:元数据重新分布控制装置检查本次调整是否需要执行数据迀移,需要则执行步骤S814,否则执行结束;
[0136]步骤S814:分别从每个迀移数据流涉及的迀入和迀出元数据服务器群集中,选择一个能够处理写操作的服务器;
[0137]其中,元数据重新分布控制装置针对每个迀移数据流,从迀出群集中选择一个可以处理写操作的正常服务器作为迀出节点,从迀出群集中选择一个可以处理写操作的正常服务器作为迀入节点。
[0138]步骤S816:检查所有迀移数据流均操作成功;如果成功,则执行步骤S818 ;如果失败,则执行步骤S820;
[0139]步骤S818:待迀移元数据从迀出群集到迀入群集的复制,执行结束;
[0140]步骤S820:系统进入回退流程判断。
[0141]图9是根据本发明可选实施例的待迀移元数据从迀出群集到迀入群集的复制方法的流程图,如图9所示,该方法的步骤包括:
[0142]步骤S902:元数据重新分布控制装置向每个迀移数据流的迀入和迀出服务器发起数据迀移请求;
[0143]步骤S904:迀入服务器记录数据迀移开始,其后所有涉及到待迀移数据的写操作或全部写操作将被记录同步队列;
[0144]步骤S906:迀入服务器根据指示,将待迀出的元数据发送到迀入服务器;
[0145]其中,数据迀移启动后,元数据将持续从迀出节点拷贝到迀入节点,当拷贝的元数据到达迀入节点并保存成功后,迀入节点将通过本群集内已存在的数据同步功能自动同步变化数据到本群集内的其他服务器节点。由于系统客户端在数据迀移完成后才会生效新的元数据分布规则,为保证业务的连续性,待迀出元数据从迀出元服务器群集复制到迀入元服务器群集后不能立即删除数据,必须得到元数据重新分布控制装置的确认或手工确认后迀出元数据库服务器才能执行删除操作。
[0146]步骤S908:迀出节点判断待迀移的数据是否全部拷贝到迀入服务器,如果是,则执行S910,否则继续执行步骤S906 ;
[0147]步骤S910:迀出服务器锁住待迀移元数据的写操作,向迀入服务器同步缓存在同步队列中的操作;
[0148]步骤S912:迀出服务器判断同步队列中的操作是否全部拷贝到迀入服务器,如果是,则执行S914:否则继续执行S910 ;
[0149]步骤S914:迀入和迀出服务器向“元数据重新分布控制装置”上报当前处理的元数据迀移数据流完成。
[0150]步骤S916:进入“元数据重新分布的数据迀移完成”流程,等待系统判定数据迀移完成;
[0151]图10是根据本发明可选实施例的数据重新分布的复制完成的方法流程图,如图10所示,该方法的步骤包括:
[0152]步骤S1002:元数据重新分布的控制装置判定装置内部的事件类型:
[0153]其中,A,如果是迀入和迀出服务器上报的状态信息或状态查询应答消息,则执行步骤S1004 ;
[0154]B,如果是元数据重新分布的控制装置内部的定时检查任务,则行步骤S1006 ;
[0155]步骤S1004:元数据重新分布的控制装置更新对应的元数据迀移数据流状态,流程结束;
[0156]步骤S1006:元数据重新分布的控制装置需要获得元数据迀移数据流的列表;
[0157]步骤S1008:元数据重新分布的控制装置检查元数据迀移数据流列表中的每个迀移数据流状态并检查是否存在执行状态异常的数据流;
[0158]A,如果存在,则进入步骤S1010的回退流程;
[0159]B,如果没有,则进入步骤S1012继续执行;
[0160]步骤S1010:装置执行回退流程处理;
[0161]步骤S1012:元数据重新分布的控制装置继续检查是否所有的迀移数据流均成功完成,并根据检查结果进行判断:如果全部执行完成,则进入步骤S1014执行;如果存在未完成的迀移数据流,则进入步骤S1016执行;
[0162]步骤S1014:进入“元数据重新分布的数据迀移完成”流程,参见本发明“元数据重新分布的数据迀移完成”流程描述,处理结束;
[0163]步骤S1016:检查是否存在元数据迀移数据流的迀入和迀出服务器未能在约定时间向元数据重新分布的控制装置上报状态:如果是,则执行步骤S1018 ;如果否,则执行步骤 S1020 ;
[0164]步骤S1018:元数据重新分布的控制装置向迀移数据流的迀入和迀出服务器发起状态查询请求并等待应答,流程处理结束;
[0165]步骤S1020:元数据重新分布的控制装置进入等待状态,等待下一次检查元数据迀移数据流是否全部结束。
[0166]需要说明的是上述涉及到的回退处理过程都是涉及到的图11中的回退处理过程。
[0167]图11是根据本发明可选实施例的回退处理方法的流程图,如图11所示,该回退处理方法的步骤包括:
[0168]步骤S1102:回退流程启动后首先检查本次回退流程是否为人工干预的回退:如果是,装置将立即执行回退操作,进入步骤S1104执行;如果否,则装置进入S1104执行根据系统的设置决定是立即回退或需要人工确认后才能执行回退。
[0169]步骤S1104:装置针对每一个元数据迀移数据流,向其中的迀入和迀出服务器节点发送回退请求;
[0170]步骤S1106:迀出服务器收到回退请求后清空复制队列,停止复制数据的发送,如已申请操作锁,则需要执行锁释放操作。迀入服务器收到回退请求后删除已复制的元数据,流程执行结束;
[0171]步骤S1108:装置需要检查系统设置的处理方式:如果系统设置为自动回退,则进入步骤S1104处理;如果系统设置为需要人工干预确认是否回退,则执行步骤SlllO ;
[0172]步骤SlllO:检查人工干预的结果:如果人工确认结果为执行回退,则进入步骤S1104处理;如果人工确认结果为不执行退回,则装置判断结束,装置会通过图11中的定时检测流程等待故障消除后继续数据迀移。
[0173]图12是根据本发明可选实施例的元数据的迀移完成处理方法流程图,如图12所示,本实施例的元数据的迀移完成的处理方法的步骤包括:
[0174]步骤S1202:装置判断当前是否为定时检查消息:
[0175]如果是,则进入步骤S1216处理,定时检查系统中使用元数据分布规则的消息分发网关/客户端和涉及的迀移元数据服务器状态。
[0176]如果否,进入步骤S1204处理,通知系统完成元数据迀移操作。
[0177]步骤S1204:装置向元数据路由网关/系统客户端发出通知,要求其切换为新的元数据路由规则;
[0178]步骤S1206:装置判断是否收到元数据路由网关/系统客户端返回的确认消息:如果是,则执行步骤S1208 ;如果否,则执行步骤S1214继续等待;
[0179]步骤S1208:向每个元数据迀移流中的迀出服务器发送请求,删除迀移数据。
[0180]步骤S1210:装置判断迀出服务器是否执行结束并向装置返回处理结果:如果是,执行步骤S1212,如果否,执行步骤S1214 ;
[0181]步骤S1212:更新元数据操作状态为完成,处理结束;
[0182]步骤S1214:设置定时状态查询,查询迀出服务器和元数据分发网关/客户端的执行状态,流程处理结束;
[0183]步骤S1216:判断为定时器操作,装置向元数据分发网关/客户端和迀出元数据服务器查询执行操作的结果;
[0184]步骤S1218:检查元数据分发网关/客户端是否完成路由规则切换:如果是,执行步骤S1220 ;如果否,处理流程结束;
[0185]步骤S1220:检查迀出服务器是否完成迀出数据删除:如果是,执行步骤S1212 ;如果否,流程处理结束。
[0186]通过本可选实施例,当系统需要调整元数据的分布规则时,基于对比更新前后的元数据路由规则变化,确定需要执行数据迀移的元数据服务器群集,协作和控制元数据在元数据群集之间的迀移,实现元数据分布随着路由信息的调整而在系统中的平滑迀移。同时可以在控制系统调整完成后自动切换到新的元数据分布规则避免业务中断。
[0187]以上仅为本发明的可选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种分布式系统中元数据的迀移方法,其特征在于,包括: 接收来自分布式系统的通知消息,其中,该通知消息用于指示元数据分布路由规则发生了变化; 依据所述通知消息比较调整前与调整后的所述元数据分布路由规则,得到所述元数据在元数据服务器集群的节点之间的迀移数据流,其中,所述迀移数据流用于指示所述元数据的迀移过程,所述迀移数据流包括:第一服务器集群中迀出所述元数据的迀出节点、第二服务器集群中迀入所述元数据的迀入节点、所述元数据的内容; 依据所述迀移数据流通知所述迀出节点将所述元数据的内容复制到所述迀入节点中。2.根据权利要求1所述的方法,其特征在于,在依据所述迀移数据流通知所述迀出节点将所述元数据的内容复制到所述迀入节点之前,所述方法还包括: 记录迀出所述元数据的迀移启动信息,其中,所述启动信息包括:启动时间、所述分布式系统在启动数据迀移前最近一次的写操作信息,其中,所述写操作信息包括:写操作发生的时间、写操作的内容、写操作的序号;或, 通知所述迀出节点申请第一锁,其中,所述第一锁用于锁住所述迀出节点中所有迀移数据的写操作。3.根据权利要求2所述的方法,其特征在于, 在所述迀移数据流启动后,并在复制所述元数据到所述迀入节点前,所述方法还包括:在所述记录所述元数据的所述迀移启动信息后,将在复制所述元数据到所述迀入节点前的所有写操作信息写入到同步队列;或, 在通知所述迀出节点申请第一锁后,并在复制所述元数据到所述迀入节点前,所述方法还包括:禁止所述迀出节点执行所述写操作。4.根据权利要求3所述的方法,其特征在于,在依据所述迀移数据流通知所述迀出节点将所述元数据的内容复制到所述迀入节点之后,包括: 通知所述迀出节点申请第二锁,其中,所述第二锁用于锁住迀出的所述元数据的写操作;并向所述迀入节点发送所述同步队列中的所述写操作信息;在所述元数据的内容复制完成后,通知删除所述迀出节点中已复制的所述元数据,并释放所述第二锁;或, 通知删除所述迀出节点中已复制的所述元数据,并释放所述第一锁。5.根据权利要求4所述的方法,其特征在于,通知删除所述迀出节点中已复制的所述元数据包括: 在所述迀入节点和所述迀出节点完成数据复制时,通知所述分布式系统当前数据迀移流复制的完成,并接收所述通知删除所述迀出节点中已复制的所述元数据的指示;或, 向所述迀出节点和所述迀入节点发送用于查询所述迀移数据流的迀移状态的查询指令;接收所述迀出节点和所述迀入节点发送的响应于所述查询指令的响应指令,其中,所述响应指令用于指示所述迀移数据流迀移状态;在所述响应指令指示所述迀移数据流迀移成功时,通知所述分布式系统启用新的元数据分布路由规则,并通知所述迀出节点删除所述元数据的内容。6.根据权利要求5所述的方法,其特征在于,所述方法还包括: 在所述查询指令指示所述迀移数据流迀移异常时,向所述迀出节点和所述迀入节点发送回退请求,其中,所述回退请求用于指示通知所述迀出节点和所述迀入节点终止所述迀移流数据的复制操作,以及通知所述迀入节点删除已复制的所述元数据的内容。7.根据权利要求1所述的方法,其特征在于,所述第一服务集群或所述第二服务集群可同时作为多个迀移数据流的迀入和迀出服务集群。8.一种分布式系统中元数据的迀移装置,其特征在于,包括: 接收模块,用于接收来自分布式系统的通知消息,其中,该通知消息用于指示元数据分布路由规则发生了变化; 比较模块,用于依据所述通知消息比较调整前与调整后的所述元数据分布路由规则,得到所述元数据在元数据服务器集群的节点之间的迀移数据流,其中,所述迀移数据流用于指示所述元数据的迀移过程,所述迀移数据流包括:第一服务器集群中迀出所述元数据的迀出节点、第二服务器集群中迀入所述元数据的迀入节点、所述元数据的内容; 第一复制模块,用于依据所述迀移数据流通知所述迀出节点将所述元数据的内容复制到所述迀入节点中。9.根据权利要求8所述的装置,其特征在于,在所述迀出节点将所述元数据的内容复制到所述迀入节点中之前,所述装置还包括: 记录模块,用于记录迀出所述元数据的迀移启动信息,其中,所述启动信息包括:启动时间、所述分布式系统在启动数据迀移前最近一次的写操作信息,其中,所述写操作信息包括:写操作发生的时间、写操作的内容、写操作的序号;或, 第一通知模块,用于通知所述迀出节点申请第一锁,其中,所述第一锁用于锁住所述迀出节点中所有迀移数据的写操作。10.根据权利要求9所述的装置,其特征在于, 在所述迀移数据流启动后,并在复制所述元数据到所述迀入节点前,所述装置还包括:第二复制模块,用于在所述记录所述元数据的所述迀移启动信息后,将在复制所述元数据到所述迀入节点前的所有写操作信息写入到同步队列;或, 在通知所述迀出节点申请第一锁后,并在复制所述元数据到所述迀入节点前,所述装置还包括:禁止模块,用于禁止所述迀出节点执行所述写操作。11.根据权利要求10所述的装置,其特征在于,在所述迀出节点将所述元数据的内容复制到所述迀入节点中之后,所述装置还包括: 第二通知模块,用于通知所述迀出节点申请第二锁,其中,所述第二锁用于锁住迀出的所述元数据的写操作;并向所述迀入节点发送所述同步队列中的所述写操作信息;在所述元数据的内容复制完成后,通知删除所述迀出节点中已复制的所述元数据,并释放所述第二锁;或, 第三通知模块,用于通知删除所述迀出节点中已复制的所述元数据,并释放所述第一锁。12.根据权利要求11所述的装置,其特征在于, 所述第二通知模块包括:第一通知单元,用于在所述迀入节点和所述迀出节点完成数据复制时,通知所述分布式系统当前数据迀移流复制的完成;第一接收单元,用于接收所述通知删除所述迀出节点中已复制的所述元数据的指示; 所述第三通知模块包括:第一发送单元,用于向所述迀出节点和所述迀入节点发送用于查询所述迀移数据流的迀移状态的查询指令;第二接收单元,用于接收所述迀出节点和所述迀入节点发送的响应于所述查询指令的响应指令,其中,所述响应指令用于指示所述迀移数据流迀移状态;第二通知单元,用于在所述响应指令指示所述迀移数据流迀移成功时,通知所述分布式系统启用新的元数据分布路由规则,并通知所述迀出节点删除所述元数据的内容。13.根据权利要求12所述的装置,其特征在于,所述第三通知模块还包括: 第二发送单元,用于在所述查询指令指示所述迀移数据流迀移异常时,向所述迀出节点和所述迀入节点发送回退请求,其中,所述回退请求用于指示通知所述迀出节点和所述迀入节点终止所述迀移流数据的复制操作,以及通知所述迀入节点删除已复制的所述元数据的内容。14.根据权利要求8所述的装置,其特征在于,所述第一服务集群或所述第二服务集群可同时作为多个迀移数据流的迀入和迀出服务集群。
【文档编号】H04L29/08GK106034080SQ201510105459
【公开日】2016年10月19日
【申请日】2015年3月10日
【发明人】姬庆发
【申请人】中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1