一种选举方法、装置及数据库镜像集群节点的制作方法_2

文档序号:8361489阅读:来源:国知局

[0034]优选地,所述多个节点中每个节点自身维护的数据中包括日志,所述多个节点中每个节点自身维护的表征量包括该节点自身维护的最新日志的序号;
[0035]所述选择模块包括:
[0036]第一选择单元,用于在监听到所述多个节点中大于第一设定数目的节点广播的表征量时,根据所述大于第一设定数目的节点广播的广播信息中包括的序号,从所述至少两个节点中选择出所广播的广播信息中包括的序号最大的所述第二节点。
[0037]优选地,所述选择模块包括:
[0038]第二选择单元,用于根据所述大于第一设定数目的节点广播的广播信息中包括的表征量,从所述大于第一设定数目的节点中选择出自身维护数据的新旧程度最新的所有节占.
[0039]第三选择单元,用于在所述所有节点的数目大于一个时,从所述所有节点中选择出对应选择优先级最高的所述第二节点。
[0040]本发明实施例还提供一种包括以上所述的选举装置的数据库镜像集群节点。
[0041]从以上所述可以看出,本发明实施例至少具有如下有益效果:
[0042]通过数据库镜像集群中的多个节点中的第一节点根据监听到的所述多个节点中大于第一设定数目的节点广播的表征量,从所述至少两个节点中选择出自身维护数据的新旧程度最新的第二节点,向其发送赞同信息,同时开始监听所述多个节点发送的赞同信息,在监听到所述多个节点中大于第二设定数目的节点向其发送的赞同信息时,将自身设置为主节点,又第二设定数目大于或等于所述多个节点的数目的二分之一的向下取整值,则所述第一节点监听到大于所述第二设定数目的节点向其发送的赞同信息时,也就表明所述多个节点中的其它节点不可能监听到所述设定数目的节点向其发送的赞同信息,从而不可能将自身设置为主节点,即这种情况下所述多个节点中只有所述第一节点将自身设置为主节点,从而实现了选举出唯一主节点,又赞同信息是向选择出的大于设定数目的节点中自身维护数据的新旧程度最新的节点发送的,且大于第一设定数目的节点广播的消息中包括的表征量不完全相同、亦即选择最新的节点所依据的节点所维护数据新旧程度不完全相同,从而所述多个节点中存在比成为主节点的节点所维护数据更旧的节点,从而保证了将所述多个节点中自身维护数据并非最旧的节点选举为唯一主节点,与现有技术相比,避免了因选择所维护数据最旧的节点作为唯一主节点而造成的数据的丢失,提升了用户体验。
【附图说明】
[0043]图1表示本发明实施例提供的一种选举方法的步骤流程图;
[0044]图2表示本发明实施例的较佳实施方式提供的一种在数据库镜像集群中选取唯一 Master节点的方法的步骤流程图;
[0045]图3表示本发明实施例提供的一种选举装置的结构示意图。
【具体实施方式】
[0046]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明实施例进行详细描述。
[0047]图1表示本发明实施例提供的一种选举方法的步骤流程图,参照图1,本发明实施例提供一种选举方法,用于数据库镜像集群中的多个节点中的第一节点,所述多个节点中每个节点自身均维护一用于表征自身维护数据的新旧程度的表征量,所述方法包括如下步骤:
[0048]步骤101,向所述多个节点广播包括自身维护的表征量的广播信息,同时开始监听所述多个节点广播的包括自身维护的表征量的广播信息;
[0049]步骤102,在监听到所述多个节点中大于第一设定数目的节点广播的广播信息时,根据所述大于第一设定数目的节点广播的广播信息中包括的表征量,从所述大于第一设定数目的节点中选择出自身维护数据的新旧程度最新的第二节点,其中,所述第一设定数目大于或等于一个节点,所述大于第一设定数目的节点广播的消息中包括的表征量不完全相同;
[0050]步骤103,向所述第二节点发送赞同其成为主节点的赞同信息,同时开始监听所述多个节点向其发送的赞同其成为主节点的赞同信息;
[0051]步骤104,在监听到所述多个节点中大于第二设定数目的节点向其发送的赞同信息时,将自身设置为主节点,其中,所述第二设定数目大于或等于所述多个节点的数目的二分之一的向下取整值。
[0052]可见,通过数据库镜像集群中的多个节点中的第一节点根据监听到的所述多个节点中大于第一设定数目的节点广播的表征量,从所述至少两个节点中选择出自身维护数据的新旧程度最新的第二节点,向其发送赞同信息,同时开始监听所述多个节点发送的赞同信息,在监听到所述多个节点中大于第二设定数目的节点向其发送的赞同信息时,将自身设置为主节点,又第二设定数目大于或等于所述多个节点的数目的二分之一的向下取整值,则所述第一节点监听到大于所述设定数目的节点向其发送的赞同信息时,也就表明所述多个节点中的其它节点不可能监听到所述设定数目的节点向其发送的赞同信息,从而不可能将自身设置为主节点,即这种情况下所述多个节点中只有所述第一节点将自身设置为主节点,从而实现了选举出唯一主节点,又赞同信息是向选择出的大于设定数目的节点中自身维护数据的新旧程度最新的节点发送的,且大于第一设定数目的节点广播的消息中包括的表征量不完全相同、亦即选择最新的节点所依据的节点所维护数据新旧程度不完全相同,从而所述多个节点中存在比成为主节点的节点所维护数据更旧的节点,从而保证了将所述多个节点中自身维护数据并非最旧的节点选举为唯一主节点,与现有技术相比,避免了因选择所维护数据最旧的节点作为唯一主节点而造成的数据的丢失,提升了用户体验。
[0053]其中,节点自身维护数据的新旧程度可以通过各种方式来表征,例如:自身维护的最新日志的序号,自身的镜像类型等。其中,自身维护的最新日志的序号越大表明自身维护数据越新。自身的镜像类型为同步镜像的节点自身维护数据比自身的镜像类型为异步镜像的节点新。
[0054]< 方式一 >
[0055]对于通过最新日志的序号来表征的情况,所述多个节点中每个节点自身维护的数据中可以包括日志,相应地,可以有:
[0056]所述多个节点中每个节点自身维护的表征量包括该节点自身维护的最新日志的序号;
[0057]所述在监听到所述多个节点中大于第一设定数目的节点广播的广播信息时,根据所述大于第一设定数目的节点广播的广播信息中包括的表征量,从所述大于第一设定数目的节点中选择出自身维护数据的新旧程度最新的第二节点包括:
[0058]在监听到所述多个节点中大于第一设定数目的节点广播的表征量时,根据所述大于第一设定数目的节点广播的广播信息中包括的序号,从所述至少两个节点中选择出所广播的广播信息中包括的序号最大的所述第二节点。
[0059]< 方式二 >
[0060]对于通过镜像类型来表征的情况,所述多个节点中只包括一个同步镜像节点,相应地,可以有:
[0061]所述每个节点自身维护的表征量为该节点的镜像类型;
[0062]所述在监听到所述多个节点中大于第一设定数目的节点广播的表征量时,从所述大于第一设定数目的节点中选择出自身维护数据的新旧程度最新的第二节点包括:
[0063]从所述大于第一设定数目的节点中选择出镜像类型为同步镜像的所述第二节点。
[0064]这种情况下,由所述大于第一设定数目的节点广播的消息中包括的表征量不完全相同,也即所述大于第一设定数目的节点广播的消息中包括的镜像类型不完全相同,于是选择出的节点的镜像类型就是同步镜像,从而选举出的唯一主节点是镜像类型为同步镜像的节点,也就是说,选举出的唯一主节点所维护数据在所述多个节点中是最新的。
[0065]在本发明实施例中,数目的二分之一的向下取整值是指,对数目的二分之一进行向下取整后得到的值。例如:10的二分之一的向下取整值为5,17的二分之一的向下取整值为8。
[0066]在本发明实施例中,考虑到所述大于第一设定数目的节点中自身维护数据的新旧程度最新的节点的数目可能大于一个,于是可以有:
[0067]所述根据
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1