CN109189855A - 基于分布存储技术的数据同步方法及终端设备 - Google Patents

基于分布存储技术的数据同步方法及终端设备 Download PDF

Info

Publication number
CN109189855A
CN109189855A CN201810920950.4A CN201810920950A CN109189855A CN 109189855 A CN109189855 A CN 109189855A CN 201810920950 A CN201810920950 A CN 201810920950A CN 109189855 A CN109189855 A CN 109189855A
Authority
CN
China
Prior art keywords
node
head
distributed
cluster
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201810920950.4A
Other languages
English (en)
Inventor
段林
方奕博
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Puhui Enterprise Management Co Ltd
Original Assignee
Ping An Puhui Enterprise Management Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ping An Puhui Enterprise Management Co Ltd filed Critical Ping An Puhui Enterprise Management Co Ltd
Priority to CN201810920950.4A priority Critical patent/CN109189855A/zh
Publication of CN109189855A publication Critical patent/CN109189855A/zh
Pending legal-status Critical Current

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明适用于数据处理技术领域,提供了一种基于分布存储技术的数据同步方法、终端设备及计算机可读存储介质,包括:通过在分布式节点***里中所有分布式节点中的选择一个数据更新时间最早、数据较为完整的首领节点来,再将***中除首领节点之外的其他分布式节点划分成至少两个簇群,并在每个簇群中选出一个簇首节点,通过将首领节点的数据同步至簇首节点,再由簇首节点将数据同步至簇群中的其他节点,避免了***中的其他节点直接向首领节点获取数据的网络拥塞和数据延迟,降低了分布式节点在数据同步时的传输能量和数据负载的消耗,保证了***中的所有节点都能高效、快速地实现数据同步。

Description

基于分布存储技术的数据同步方法及终端设备
技术领域
本发明属于数据处理技术领域,尤其涉及基于分布存储技术的数据同步方法、终端设备及计算机可读存储介质。
背景技术
大数据技术的诞生让计算机***的性能有新的突破,并且支持硬件以水平扩展的方式来获得线性增长的性能和存储,这些都是过去传统关系型数据库所无法提供的。另外,大数据技术也抛弃了运行环境必须足够好的硬性要求,而是允许用户通过批量廉价X86服务器与本地磁盘结合的方式搭建规模集群,从而获得比过去依赖硬件垂直扩展所提供的更强的计算能力和更多的存储空间,通过将一个大的工作任务分解成多个小任务,然后通过分布式并发操作的方式将其完成,从而提高整个***的计算效率或者是存储能力。而在分布式环境下,由于硬件的要求降低,必然需要大数据产品提供较高的服务质量。
现有技术中一份数据通过异步或者同步的方式在多台机器或多个分布式节点中保存或者被处理,从而保障数据的安全和服务质量。但是分布式的数据处理方式在解决服务质量的问题之后,又引入了一个新的技术问题,就是在整个分布式***中,分布式节点之间在数据同步过程中的网络资源消耗较大,且数据同步的效率较低的问题。
发明内容
有鉴于此,本发明实施例提供了基于分布存储技术的数据同步方法、终端设备及计算机可读存储介质,以解决现有技术中在整个分布式***中,分布式节点之间在数据同步过程中的网络资源消耗较大,且数据同步的效率较低的问题。
本发明实施例的第一方面提供了一种基于分布存储技术的数据同步方法,包括:
从分布式节点***的所有分布式节点中选择一个作为首领节点;所述首领节点用于将自身存储的数据同步至其他所述分布式节点中;
划分除所述首领节点之外的所有所述分布式节点,得到至少两个簇群,并确定每个所述簇群中的簇首节点;
将所述首领节点的数据同步至每个所述簇首节点,再将每个簇首节点中的所述数据同步至所述簇群内的每个所述分布式节点。
本发明实施例的第二方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
从分布式节点***的所有分布式节点中选择一个作为首领节点;所述首领节点用于将自身存储的数据同步至其他所述分布式节点中;
划分除所述首领节点之外的所有所述分布式节点,得到至少两个簇群,并确定每个所述簇群中的簇首节点;
将所述首领节点的数据同步至每个所述簇首节点,再将每个簇首节点中的所述数据同步至所述簇群内的每个所述分布式节点。
本发明实施例的第三方面提供了一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面的方法。
本发明实施例与现有技术相比存在的有益效果是:
本发明实施例首先选择出分布式节点***里中所有分布式节点中的一个首领节点来,再将***中除首领节点之外的其他分布式节点划分成至少两个簇群,并在每个簇群中选出一个簇首节点,通过将首领节点的数据同步至簇首节点,再由簇首节点将数据同步至簇群中的其他节点,避免了***中的其他节点直接向首领节点获取数据的网络拥塞和数据延迟,降低了分布式节点在数据同步时的传输能量和数据负载的消耗,保证了***中的所有节点都能高效、快速地实现数据同步。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的基于分布存储技术的数据同步方法的流程图;
图2是本发明实施例二提供的基于分布存储技术的数据同步方法S101的具体实现流程图;
图3是本发明实施例三提供的基于分布存储技术的数据同步方法S102的具体实现流程图;
图4是本发明实施例四提供的终端设备的示意图;
图5是本发明实施例五提供的终端设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定***结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的***、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
参见图1,图1是本发明实施例一提供的基于分布存储技术的数据同步方法的流程图。本实施例中基于分布存储技术的数据同步方法的执行主体包括但不限于计算机、服务器、平板电脑或者终端等装置,这些装置都具有数据同步功能。如图1所示的基于分布存储技术的数据同步方法可以包括以下步骤:
在S101中,根据预设的选举机制,从分布式节点***的所有分布式节点中选择一个所述分布式节点作为首领节点;所述首领节点用于将自身存储的数据同步至其他所述分布式节点中。
分布式***是建立在网络之上的软件***,它具有高度的内聚性和透明性。因此,网络和分布式***之间的区别更多的在于高层软件,其具有较高的内聚性和透明性。分布式***中的每一个数据库分布节点高度自治,有本地的数据库管理***。并且,每一个数据库分布节点对用户的应用来说都是透明的,看不出是本地还是远程。在分布式数据库***中,用户感觉不到数据是分布的,即用户不须知道关系是否分割、有无副本、数据存于哪个站点以及事务在哪个站点上执行等。
在一个分布式***中,一组独立的计算机展现给用户的是一个统一的整体,就好像是一个***似的。***拥有多种通用的物理和逻辑资源,可以动态的分配任务,分散的物理和逻辑资源通过计算机网络实现信息交换。***中存在一个以全局的方式管理计算机资源的分布式操作***。通常,对用户来说,分布式***只有一个模型或范型。在操作***之上有一层软件中间件负责实现这个模型。一个著名的分布式***的例子是万维网,在万维网中,所有的一切看起来就好像是一个文档页面一样。
在本实施例中的分布式***中,由一台或多台计算机组成的中心节点,数据集中存储在这个中心节点中,并且整个***的所有业务单元都集中部署在这个中心节点上,***的所有功能均由其集中处理。分布式***中的计算机没有主从之分,既没有控制整个***的主机,也没有被控制的从机,组成分布式***的所有计算机节点都是对等的。
进一步的,为了对外提供高可用的服务,对数据和服务进行副本处理,在不同的分布式节点上持久化同一份数据,当某一个分布式节点上存储的数据丢失时,可以从副本上读取到该数据,以解决分布式***数据丢失问题。本实施例中改的服务副本用于表示多个分布式节点提供同样的服务,每个分布式节点都有能力接受来自外部的请求并进行相应的处理。同时,在同一分布式***中的多个分布式节点,可能会并发地操作一些共享资源,诸如数据库或分布式存储等。
分布式***中的数据同步一项非常巨大的挑战。如果光看物理时间戳的话我们无法确定哪个版本的数据才是最新的,因为无法确保所有的实体的物理时钟都是完美同步的。比如说,两台同步的服务器将时间戳写入到同一个***中。如果一台服务器慢了哪怕只有几毫秒,很快它就无法得知事件的真实顺序了。为了解决这一问题,在本实施例中通过选举机制,从分布式节点***的所有分布式节点中选择一个分布式节点作为首领节点,以通过该首领节点将首领节点自身存储的数据同步至其他所述分布式节点中。
需要说明的是,由于分布式***的数据同步需要在这个***中将最新的、全面的数据同步至所有的分布式节点中,因此,在选择首领节点时,我们可以通过衡量每一个分布式节点的数据更新时间和数据全面程度,选择更新时间最早且数据较完整的分布式节点作为首领节点。数据更新时间可以通过为逻辑时钟的方式,标明分布式***中的事件的版本或者数据的更新时间。通过查看这些有序的集合,就能确定***中的数据逻辑,可以知道哪些数据是最新的,并且可以识别出哪些事件是并发的,之后便可以确定出最新数据所对应的分布式节点,将这个分布式节点确定为首领节点。
进一步的,为了防止至选择一个首领节点的情况下,该首领节点发生故障而使得首领节点的数据不能同步至网络中的其他节点,因此,在本实施例中,通过中心控制节点为一个节点发放租约,表示该节点可以作为首领节点工作预设的一段时长。当发现首领节点有问题时,只需要等到这个首领节点的租约过期,就可以安全地颁发新的租约给新的首领节点,而不会出现“双主”问题。在实际应用中,若用一个中心控制节点作为配置中心发送租约也有很大的风险,因此使用多个中心控制节点互为副本,成为一个小的集群,该小集群具有高可用性,对外提供颁发租约的功能。
在S102中,划分除所述首领节点之外的所有所述分布式节点,得到至少两个簇群,并确定每个所述簇群中的簇首节点。
在确定了首领节点之后,便可以通过首领节点发送自己存储空间中的数据至分布式***中的其他分布式节点中,但是,如果是首领节点直接发送数据至每个分布式节点的话,变回消耗掉首领节点较多的内存和能量,使首领节点自身的运作发生延迟。考虑到这种情况,在本实施例中,将分布式***中除了首领节点之外的其他分布式节点划分成簇群。其中,簇群的数量可以是两个或者两个以上。
由于分布式***中的每个分布式节点具有各自的属性,每个分布式节点都需要独立的处理事件,因此,可以根据分布式节点的属性将其划分,确定每个簇群的节点成员。
具体的,可以将分布式***中的每个分布式节点编号,每个分布式节点都有独一无二的一个ID标识。同时衡量单位时间内该该分布式节点的数据访问量,通过设定一定的数值分段区间,将在统一区间的分布式节点划分到相同的簇群中,通过这种数据访问量的方式划分簇群,可以将较小或者较大的数据访问量的分布式节点放在相同改的簇群中,进而可以通过数据负载分流,给数据访问量较小的簇群分出较少的带宽或者网络资源,而给数据访问量较大的簇群分出较多的网络资源,以提供良好的数据交换环境,保证分布式***中的数据可以高效、可靠的完成数据同步。
在将分布式***中的分布式节点划分簇群之后,需要在每个簇群中选择一个分布式节点作为簇首节点,以通过该簇首节点将首领节点的数据传送至簇群内的分布式节点中。因此,这个簇首节点的选择也决定了数据同步的效率和准确性。
在一个簇群中,簇首节点负责接收首领节点的同步数据,之后向簇群中所有的分布式节点发送这些数据,因此,簇首节点具有较高的数据收发任务,需要较多的内存支持和带宽支持。在本实施例中,通过确定每个分布式节点在进程中的忙碌程度、接收首领节点数据需要的资源、发送数据需要的资源衡量一个分布式节点是否适合做簇首节点。
具体的,在衡量一个分布式节点是否可以成为簇首节点时,确定该分布式节点的忙碌程度,以及该节点将数据发送给簇内任意一个分布时间的资源消耗值的总量,选择忙碌程度和资源消耗值总量较低的分布式节点作为簇首节点。
在S103中,将所述首领节点的数据同步至每个所述簇首节点,再将每个簇首节点中的所述数据同步至所述簇群内的每个所述分布式节点。
在确定好首领节点以及每个簇群的簇首节点之后,首领节点将数据同步至每个簇首节点,再由每个簇首节点将这些数据同步至簇内的每个分布式节点,簇内节点接收到这些数据之后,根据这些数据将自己内存中的数据覆盖。
具体的,当一个簇群中确定好簇首节点之后,由簇首节点将自己的节点标识和簇群标识发送给首领节点,首领节点在接收到之后,确定该节点标识对应的节点即为簇群标识对应的簇群中的簇首节点,首领节点发送数据至该簇首节点处,簇首节点在接收到数据之后,向首领节点发送数据接收成功信息,同时向簇内的其他分布式节点广播数据,簇内的分布式节点接收到广播数据之后,可以向簇首节点发送同步成功信息。
进一步的,簇内的分布式节点接收到广播数据之后,还可以向首领节点发送同步成功信息。在本实施例的分布式***中,每个分布式节点都有整个***的节点信息,首领节点根据节点信息和同步成功信息排查没有同步成功的分布式节点,并直接向该节点发送数据进行同步。
需要说明的是,在本实施例中,分布式***中的分布式节点的数据同步时间可以是固定的、周期性的,也可以是实时通过接收控制***的指令进行数据同步,此处不做限定。由于分布式***中的数据逻辑在执行时会发生变化,且同步时间不确定,因此在每一次进行数据同步时,需要重新选择首领节点、划分簇群并选择每个簇群的簇首节点,通过这种方式可以保证分布式节点在每一次的同步过程中可以选择合理的首领节点,提高节点数据同步的可靠性和适用性。
在实际应用中,如果发生某个分布式节点失效时,无法快速实现数据通过。为了解决单点故障的问题,我们为每个节点都增加一个备用节点,当某个节点失效时,就自动切换到备用节点上,类似于数据库的master和slave。但是依然无法解决增加或删除节点后,需要做hash重分布的问题,也就是无法动态增删节点。这时就引入了一致性hash的概念,将所有的节点分布到一个hash环上,每个请求都落在这个hash环上的某个位置,只需要按照顺时针方向找到的第一个节点,就是自己需要的服务节点。当某个节点发生故障时,只需要在环上找到下一个可用节点即可。
进一步的,在步骤S103之后,还可以包括:
检测每个所述分布式节点的数据是否一致;
若每个所述分布式节点的数据一致,则所述簇首节点发送同步成功信息至所述首领节点处;
若每个所述分布式节点的数据不一致,则确定同步失败的分布式节点,并将所述首领节点的数据同步至所述同步失败的分布式节点。
具体的,在分布式***中的所有节点都进行了数据同步之后,可能存在同步不成功的节点,考虑到这种情况,我们先检测每个分布式节点的数据是否一致,如果数据一致,则说明所有的分布式节点都数据同步成功,由簇首节点发送同步成功信息至所述首领节点处;若每个所述分布式节点的数据不一致,则说明存在数据同步不成功的节点,通过确定同步失败的分布式节点,并将所述首领节点的数据直接发送给同步失败的分布式节点,实现分布式***中所有节点的数据同步。
上述方案,通过选择出分布式节点***里中所有分布式节点中的一个首领节点来,再将***中除首领节点之外的其他分布式节点划分成至少两个簇群,并在每个簇群中选出一个簇首节点,通过将首领节点的数据同步至簇首节点,再由簇首节点将数据同步至簇群中的其他节点,避免了***中的其他节点直接向首领节点获取数据的网络拥塞和数据延迟,降低了分布式节点在数据同步时的传输能量和数据负载的消耗,保证了***中的所有节点都能高效、快速地实现数据同步。
参见图2,图2是本发明实施例二提供的基于分布存储技术的数据同步方法S101的具体实现流程图。本实施例中基于分布存储技术的数据同步方法的执行主体包括但不限于计算机、服务器、平板电脑或者终端等装置,这些装置都具有数据同步功能。如图2所示的基于分布存储技术的数据同步方法可以包括以下步骤:
在S201中,检测所述分布式节点***中的每个所述分布式节点是否接收到来自所在簇群中的所述簇首节点的信息,若未收到,则向每个所述分布式节点发送重新投票选举首领节点的指令。
在本实施例的分布式***中选择首领节点之前,先检测***中是否存在首领节点。具体的检测方式为,检测分布式节点***中的每个所述分布式节点是否接收到来自所在簇群中的所述簇首节点的信息,若未收到,则说明当前分布式***各种不存在首领节点向簇首节点发送数据,簇首节点或者首领节点可能已经瘫痪,因此簇群节点也接收不到出簇首节点的数据。这种情况下便需要重新开始选择首领节点及其属下的簇首节点,控制分布式***中的每个节点发起投票。
具体的投票方式为,在分布式***中的每个分布式节点中设定一个等待时间,控制发起竞选者向其他节点发起投票邀请,以使网络中的其余分布式节点都投票给该节点,若该节点所得票数最高,则将该节点识别为首领节点,在本实施例的分布式网络中,向每个分布式节点发送重新投票选举首领节点的指令,以控制每一个分布式节点发起投票、通过竞选成为首领节点,在本实施例中,首领节点有一个功能:在一个预设的时间段之内,负责所有节点间的数据同步。
进一步的,为了避免分布式***中所有的分布式节点都同时发起竞选,错开大家的发起竞选时间。在每个节点自己的等待时间里,这个节点必须耐心等待,过了这段时间才可以发起竞选,争取当主节点。
示例性的,通过定时器定时的方式确定每个分布式节点发起投票的时间,设定节点A的等待时间是100ms,节点B的等待时间是200ms,节点C的等待时间是300ms。大家的定时器都是从0开始,节点A等待时间最短,100ms后率先发起竞选,并投自己一票,由于节点B和节点C的等待时间没到,就只好投票给节点A,则在当前时刻节点A总共有3票,节点A成为首领节点,大家把自己的定时器重置0,下一次节点A又可以继续发起投票续任主节点。
进一步的,如果节点A出现故障不能投票,那他在100ms后就发起不了竞选,节点B就可以在200ms后发起竞选,并投自己一票,节点C只能投节点B,则当前时刻节点B总共有2票,节点B就可以当首领节点。如果是节点C出现故障不能投票,则节点A和节点B就会轮流竞选。
在S202中,将投票票数最多的分布式节点识别为所述首领节点。
如上所述,在分布式***的每个正常的分布式节点投票之后,通过每个分布式节点的票数,并确定票数最多的分布式节点作为首领节点。通过确定票数最高的分布式节点作为首领节点,可以使该节点在分布式***中更具有较高的权威以发送数据至下一层的簇首节点,保证分布式***中节点之间具有稳定的层级结构,并能准确的同步数据。
在S203中,生成首领节点信息,并将所述首领节点信息发送至每个所述分布式节点。
在分布式***中确定了首领节点之后,根据该首领节点的节点标识生成该首领节点信息,并将该首领节点信息发送给分布式***中改的每一个分布式节点。
进一步的,为了避免向每个分布式节点发送数据时造成的内存和网络负载消耗,考虑到在本实施例中,首领是直接与簇首节点之间进行数据通信,而没有关系到***中其他节点,也可以只向分布式***中的簇首节点发送首领节点信息,减少数据通信的对象,使每个簇群的簇首节点获取到分布式***中的首领节点的信息,并接收需要同步的数据,减少了***中的冗余通信和网络负载,提高了数据同步的效率。
上述方案,通过检测分布式节点***中的所述分布式节点是否接收到来自所在簇群中的簇首节点的信息,并在未收到时指示每个分布式节点进行投票,同时选择票数最多的所述分布式节点作为所述首领节点,并生成首领节点信息,将首领节点信息发送至每个所述分布式节点。通过分布式***中的每个分布式节点都参与投票选举出首领节点的方式,保证了首领节点在所有分布式节点中的权威性和公信度,进而使首领节点的数据同步至分布式***中的所有分布式节点中,提高了分布式节点数据同步的可靠性。
参见图3,图3是本发明实施例三提供的基于分布存储技术的数据同步方法S102的具体实现流程图。本实施例中基于分布存储技术的数据同步方法的执行主体包括但不限于计算机、服务器、平板电脑或者终端等装置,这些装置都具有数据同步功能。如图3所示的基于分布存储技术的数据同步方法可以包括以下步骤:
在S301中,将分布式节点***中除所述首领节点之外的所有所述分布式节点划分成均匀的簇群,每个所述簇群中包含相同数量的所述分布式节点。
在确定分布式***中的首领节点之后,将除去首领节点之外的其他分布式节点划分簇群,在本实施例中,将所有的分布式节点划分为均匀的簇群,使每个簇群中包含相同数据量的分布式节点,以保证每个簇群的平等和数据传输的稳定性。
进一步的,当分布式***中的节点数量不可能保证平均分配的情况下,例如,网络中节点数量在除以簇群数量之后存在余数,则将这些剩余的节点分散在各个簇群中,使节点数量较多的簇群和数量较少的簇群中的节点数量只相差1个节点,通过这种方法,可以考虑到分布式***中节点数量不均衡的情况下,保证簇群之间可以有稳定、较为平衡的节点数量。
在S302中,根据每个所述簇群中的所述分布式节点的节点特征,确定每个所述簇群的所述簇首节点。
在确定了分布式***中的簇群之后,根据每个所述簇群中的所述分布式节点的节点特征,确定每个所述簇群的所述簇首节点。
进一步的,在本实施例的S302中,可以具体包括S3021~S3024:
在S3021中,根据所述首领节点和每个所述分布式节点在网络中传输属性,将所述首领节点和每个所述分布式节点坐标化,得到所述分布式节点i的坐标为(xi,yi),所述首领节点的坐标为(xLeader,yLeader)。
在分布式***中,每个节点都有各自对应的功能,各个节点之间通过一定的通信方式相连,以完成整个数据处理任务。根据分布式节点在分布式***中的连接方式,确定每个分布式节点的坐标,得到分布式节点i的坐标为(xi,yi),所述首领节点的坐标为(xLeader,yLeader)。
在S3022中,根据所述首领节点的坐标以及每个所述分布式节点的坐标,通过如下公式计算所述簇群中的所述分布式节点与所述首领节点之间的距离:
在确定了首领节点和每个分布式节点的坐标之后,通过计算每个分布式节点与首领节点之间的距离,衡量分布式***中的每个分布式节点与首领节点之间进行数据通信消耗的网络资源的多少、数据传输的效率高低等。在本实施例中,通过计算分布式节点与所述首领节点之间的欧式距离,确定两个节点的差距。
进一步的,还可以通过如下公式计算曼哈顿距离,确定两者之间的距离:
Range(i)=|xi-xLeader|+|yi-yLeader|。
除此之外,还可以计算闵可夫斯基距离、标准化欧氏距离、马氏距离等。通过计算两者之间的距离,衡量每个分布式节点与首领节点之间的通信代价。
在S3023中,通过如下公式计算所述分布式节点的簇头权重:E(i)=n·Expen(i)+m·Range(i);
其中,Expen(i)用于表示所述分布式节点i的数据同步至其所在簇群中的每个分布式节点所需要的能耗开销;n、m用于表示预设的参数常量,且m+n=1。
在本实施例中,通过确定在数据同步时,簇群内的每个节点向其余及节点发送数据的能耗总开销,用来衡量簇内数据传输的通信代价,同时通过分布式节点与所述首领节点之间的距离用来衡量簇外首领节点与分布式节点的通信代价,并确定两个数值的权重。通过公式E(i)=n·Expen(i)+m·Range(i)确定每个分布式节点成为簇首节点的权重。
需要说明的是,在本实施例中,n、m用于表示预设的参数常量,这两个数据值是通过多次的实验计算得到,并且满足m+n=1。
在S3024中,将所述簇头权重最大的分布式节点识别为所述簇首节点。
在确定了簇群中每个分布式节点的簇头权重之后,确定簇头权重最大的分布式节点为所述簇首节点。通过将簇头权重最大的分布式节点作为簇首节点,可以保证簇首节点接收到首领节点的数据,并将其同步至簇内的其他分布式节点,保证了数据传输的可靠性和高效性。
上述方案,通过先将分布式***中的首领节点和各个分布式节点按照***的传输属性和连接方式坐标化,得到每个节点的坐标,再根据每个节点的坐标计算其与首领节点之间的距离,同时根据簇群中每个分布式节点将其数据传送给其他节点所需要的能耗开销和网络资源,确定簇内的分布式成为簇首节点的簇首权重,并确定具有最大簇首权重的分布式节点成为该簇群内的簇首节点,以使该簇首节点可以高效、可靠地接收首领节点的数据,并将这些数据传送给簇内的其他分布式节点,在降低数据传输开销和网络负载的前提下,提高了分布式***中的数据同步的效率和可靠性。
参见图4,图4是本发明实施例四提供的一种终端设备的示意图。终端设备400可以为计算机、服务器等装置,该装置具有数据同步功能。本实施例的终端设备400包括的各单元用于执行图1对应的实施例中的各步骤,具体请参阅图1及图1对应的实施例中的相关描述,此处不赘述。本实施例的终端设备400包括:首领选择单元401、簇首选择单元402以及数据同步单元403。
首领选择单元401,用于从分布式节点***的所有分布式节点中选择一个作为首领节点;所述首领节点用于将自身存储的数据同步至其他所述分布式节点中;
簇首选择单元402,用于划分除所述首领节点之外的所有所述分布式节点,得到至少两个簇群,并确定每个所述簇群中的簇首节点;
数据同步单元403,用于将所述首领节点的数据同步至每个所述簇首节点,再将每个簇首节点中的所述数据同步至所述簇群内的每个所述分布式节点。
进一步的,所述首领选择单元401可以包括:
信息检测单元,用于检测分布式节点***中的每个所述分布式节点是否接收到来自所在簇群中的所述簇首节点的信息,若未收到,则指示每个所述分布式节点之间进行投票;
首领选票单元,用于选择票数最多的所述分布式节点作为所述首领节点;
首领信息生成单元,用于生成首领节点信息,并将所述首领节点信息发送至每个所述分布式节点。
进一步的,所述簇首选择单元402可以包括:
簇群划分单元,用于将分布式节点***中除所述首领节点之外的所有所述分布式节点划分成均匀的簇群,每个所述簇群中包含相同数量的所述分布式节点;
簇首确定单元,用于根据每个所述簇群中的所述分布式节点的节点特征,确定每个所述簇群的所述簇首节点。
进一步的,所述簇首确定单元可以包括:
坐标确定单元,用于根据所述首领节点和每个所述分布式节点在网络中传输属性,将所述首领节点和每个所述分布式节点坐标化,得到所述分布式节点i的坐标为(xi,yi),所述首领节点的坐标为(xLeader,yLeader);
距离确定单元,用于根据所述首领节点的坐标以及每个所述分布式节点的坐标,通过如下公式计算所述簇群中的所述分布式节点与所述首领节点之间的距离:
权重计算单元,用于通过如下公式计算所述分布式节点的簇头权重:
E(i)=n·Expen(i)+m·Range(i);
其中,Expen(i)用于表示所述分布式节点i的数据同步至其所在簇群中的每个分布式节点所需要的能耗开销;n、m用于表示预设的参数常量,且m+n=1;
簇头识别单元,用于将所述簇头权重最大的分布式节点识别为所述簇首节点。
进一步的,所述终端设备还可以包括:
数据检测单元,用于检测每个所述分布式节点的数据是否一致;
同步成功单元,用于若每个所述分布式节点的数据一致,则所述簇首节点发送同步成功信息至所述首领节点处;
补充同步单元,用于若每个所述分布式节点的数据不一致,则确定同步失败的分布式节点,并将所述首领节点的数据同步至所述同步失败的分布式节点。
上述方案,通过选择出分布式节点***里中所有分布式节点中的一个首领节点来,再将***中除首领节点之外的其他分布式节点划分成至少两个簇群,并在每个簇群中选出一个簇首节点,通过将首领节点的数据同步至簇首节点,再由簇首节点将数据同步至簇群中的其他节点,避免了***中的其他节点直接向首领节点获取数据的网络拥塞和数据延迟,降低了分布式节点在数据同步时的传输能量和数据负载的消耗,保证了***中的所有节点都能高效、快速地实现数据同步。
图5是本发明实施例五提供的终端设备的示意图。如图5所示,该实施例的终端设备5包括:处理器50、存储器51以及存储在所述存储器51中并可在所述处理器50上运行的计算机程序52。所述处理器50执行所述计算机程序52时实现上述各个基于分布存储技术的数据同步方法实施例中的步骤,例如图1所示的步骤101至103。或者,所述处理器50执行所述计算机程序52时实现上述各装置实施例中各模块/单元的功能,例如图4所示单元401至403的功能。
示例性的,所述计算机程序52可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器51中,并由所述处理器50执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序52在所述终端设备5中的执行过程。
所述终端设备5可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器50、存储器51。本领域技术人员可以理解,图5仅仅是终端设备5的示例,并不构成对终端设备5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器50可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器51可以是所述终端设备5的内部存储单元,例如终端设备5的硬盘或内存。所述存储器51也可以是所述终端设备5的外部存储设备,例如所述终端设备5上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card,FC)等。进一步地,所述存储器51还可以既包括所述终端设备5的内部存储单元也包括外部存储设备。所述存储器51用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器51还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述***中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于分布存储技术的数据同步方法,其特征在于,包括:
从分布式节点***的所有分布式节点中选择一个作为首领节点;所述首领节点用于将自身存储的数据同步至其他所述分布式节点中;
将除所述首领节点之外的所有所述分布式节点进行划分为至少两个簇群,并确定每个所述簇群中的簇首节点;
将所述首领节点中的数据同步至每个所述簇首节点,再将每个簇首节点中的所述数据同步至所述簇群内的每个所述分布式节点。
2.如权利要求1所述的基于分布存储技术的数据同步方法,其特征在于,所述从分布式节点***的所有分布式节点中选择一个作为首领节点,包括:
检测所述分布式节点***中的每个所述分布式节点是否接收到来自所在簇群中的所述簇首节点的信息,若未收到,则向每个所述分布式节点发送重新投票选举首领节点的指令;
将投票票数最多的分布式节点识别为所述首领节点;
生成首领节点信息,并将所述首领节点信息发送至每个所述分布式节点。
3.如权利要求1或2所述的基于分布存储技术的数据同步方法,其特征在于,所述划分除所述首领节点之外的所有所述分布式节点,得到至少两个簇群,并确定每个所述簇群中的簇首节点,包括:
将分布式节点***中除所述首领节点之外的所有所述分布式节点划分成均匀的簇群,每个所述簇群中包含相同数量的所述分布式节点;
根据每个所述簇群中的所述分布式节点的节点特征,确定每个所述簇群的所述簇首节点。
4.如权利要求3所述的基于分布存储技术的数据同步方法,其特征在于,所述根据每个所述簇群中的所述分布式节点的节点特征,确定每个所述簇群的所述簇首节点,包括:
根据所述首领节点和每个所述分布式节点在网络中传输属性,将所述首领节点和每个所述分布式节点坐标化,得到所述分布式节点i的坐标为(xi,yi),所述首领节点的坐标为(xLeader,yLeader);
根据所述首领节点的坐标以及每个所述分布式节点的坐标,通过如下公式计算所述簇群中的所述分布式节点与所述首领节点之间的距离:
通过如下公式计算所述分布式节点的簇头权重:
E(i)=n·Expen(i)+m·Range(i);
其中,Expen(i)用于表示所述分布式节点i的数据同步至其所在簇群中的每个分布式节点所需要的能耗开销;n、m用于表示预设的参数常量,且m+n=1;
将所述簇头权重最大的分布式节点识别为所述簇首节点。
5.如权利要求1或2所述的基于分布存储技术的数据同步方法,其特征在于,所述将所述首领节点的数据同步至每个所述簇首节点,再将每个簇首节点中的所述数据同步至所述簇群内的每个所述分布式节点之后,还包括:
检测每个所述分布式节点的数据是否一致;
若每个所述分布式节点的数据一致,则所述簇首节点发送同步成功信息至所述首领节点处;
若每个所述分布式节点的数据不一致,则确定同步失败的分布式节点,并将所述首领节点的数据同步至所述同步失败的分布式节点。
6.一种终端设备,其特征在于,包括存储器以及处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,实现如下步骤:
从分布式节点***的所有分布式节点中选择一个作为首领节点;所述首领节点用于将自身存储的数据同步至其他所述分布式节点中;
划分除所述首领节点之外的所有所述分布式节点,得到至少两个簇群,并确定每个所述簇群中的簇首节点;
将所述首领节点的数据同步至每个所述簇首节点,再将每个簇首节点中的所述数据同步至所述簇群内的每个所述分布式节点。
7.如权利要求6所述的终端设备,其特征在于,所述从分布式节点***的所有分布式节点中选择一个作为首领节点,包括:
检测分布式节点***中的每个所述分布式节点是否接收到来自所在簇群中的所述簇首节点的信息,若未收到,则指示每个所述分布式节点之间进行投票;
选择票数最多的所述分布式节点作为所述首领节点;
生成首领节点信息,并将所述首领节点信息发送至每个所述分布式节点。
8.如权利要求6或7所述的终端设备,其特征在于,所述划分除所述首领节点之外的所有所述分布式节点,得到至少两个簇群,并确定每个所述簇群中的簇首节点,包括:
将分布式节点***中除所述首领节点之外的所有所述分布式节点划分成均匀的簇群,每个所述簇群中包含相同数量的所述分布式节点;
根据每个所述簇群中的所述分布式节点的节点特征,确定每个所述簇群的所述簇首节点。
9.如权利要求8所述的终端设备,其特征在于,所述根据每个所述簇群中的所述分布式节点的节点特征,确定每个所述簇群的所述簇首节点,包括:
根据所述首领节点和每个所述分布式节点在网络中传输属性,将所述首领节点和每个所述分布式节点坐标化,得到所述分布式节点i的坐标为(xi,yi),所述首领节点的坐标为(xLeader,yLeader);
根据所述首领节点的坐标以及每个所述分布式节点的坐标,通过如下公式计算所述簇群中的所述分布式节点与所述首领节点之间的距离:
通过如下公式计算所述分布式节点的簇头权重:
E(i)=n·Expen(i)+m·Range(i);
其中,Expen(i)用于表示所述分布式节点i的数据同步至其所在簇群中的每个分布式节点所需要的能耗开销;n、m用于表示预设的参数常量,且m+n=1;
将所述簇头权重最大的分布式节点识别为所述簇首节点。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述方法的步骤。
CN201810920950.4A 2018-08-14 2018-08-14 基于分布存储技术的数据同步方法及终端设备 Pending CN109189855A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810920950.4A CN109189855A (zh) 2018-08-14 2018-08-14 基于分布存储技术的数据同步方法及终端设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810920950.4A CN109189855A (zh) 2018-08-14 2018-08-14 基于分布存储技术的数据同步方法及终端设备

Publications (1)

Publication Number Publication Date
CN109189855A true CN109189855A (zh) 2019-01-11

Family

ID=64921395

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810920950.4A Pending CN109189855A (zh) 2018-08-14 2018-08-14 基于分布存储技术的数据同步方法及终端设备

Country Status (1)

Country Link
CN (1) CN109189855A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110853376A (zh) * 2019-09-30 2020-02-28 重庆中信科信息技术有限公司 智能网络交通信号灯
CN110958293A (zh) * 2019-10-12 2020-04-03 平安普惠企业管理有限公司 基于云服务器的文件传输方法、***、服务器及存储介质
CN111045794A (zh) * 2019-12-17 2020-04-21 深圳前海环融联易信息科技服务有限公司 分布式事务处理方法、装置、***、计算机设备及存储介质
CN111866133A (zh) * 2020-07-20 2020-10-30 成都民航空管科技发展有限公司 一种多源大批量客户端数据同步方法及***
WO2021072862A1 (zh) * 2019-10-15 2021-04-22 平安科技(深圳)有限公司 大数据集群的更新方法、装置、计算机设备和存储介质
CN112910861A (zh) * 2021-01-19 2021-06-04 浙江大学 基于群组认证和分段鉴权的电力物联网终端设备认证方法
CN113064554A (zh) * 2021-04-08 2021-07-02 易联众信息技术股份有限公司 基于分布式存储的最优存储节点匹配方法、装置及介质
CN113709240A (zh) * 2021-08-26 2021-11-26 上海燧原科技有限公司 初始化参数的集群同步方法、装置、设备、介质及***
CN114363357A (zh) * 2021-12-28 2022-04-15 山东浪潮科学研究院有限公司 一种基于Gossip的分布式数据库网络连接管理方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6980537B1 (en) * 1999-11-12 2005-12-27 Itt Manufacturing Enterprises, Inc. Method and apparatus for communication network cluster formation and transmission of node link status messages with reduced protocol overhead traffic
CN101652959A (zh) * 2007-03-12 2010-02-17 Lm爱立信电话有限公司 涉及网络管理的设备及方法
US20130336316A1 (en) * 2012-06-15 2013-12-19 Cisco Technology, Inc. Reliable on-demand distributed data management in a sensor-actuator fabric
CN106102104A (zh) * 2016-06-08 2016-11-09 江苏中兴微通信息科技有限公司 一种基于节点簇的快速网络切换方法
WO2018000185A1 (en) * 2016-06-28 2018-01-04 Telefonaktiebolaget Lm Ericsson (Publ) Method and device for determining cluster-heads
US20180222043A1 (en) * 2017-02-04 2018-08-09 Sas Institute Inc. Controlling operation of a machine by performing reconciliation using a distributed cluster of nodes

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6980537B1 (en) * 1999-11-12 2005-12-27 Itt Manufacturing Enterprises, Inc. Method and apparatus for communication network cluster formation and transmission of node link status messages with reduced protocol overhead traffic
CN101652959A (zh) * 2007-03-12 2010-02-17 Lm爱立信电话有限公司 涉及网络管理的设备及方法
US20130336316A1 (en) * 2012-06-15 2013-12-19 Cisco Technology, Inc. Reliable on-demand distributed data management in a sensor-actuator fabric
CN106102104A (zh) * 2016-06-08 2016-11-09 江苏中兴微通信息科技有限公司 一种基于节点簇的快速网络切换方法
WO2018000185A1 (en) * 2016-06-28 2018-01-04 Telefonaktiebolaget Lm Ericsson (Publ) Method and device for determining cluster-heads
US20180222043A1 (en) * 2017-02-04 2018-08-09 Sas Institute Inc. Controlling operation of a machine by performing reconciliation using a distributed cluster of nodes

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
孙龙;徐汀荣;马菲;: "一种新的基于链簇式的WSN不均匀分簇路由协议", 计算机应用与软件, no. 01, 15 January 2015 (2015-01-15), pages 106 - 109 *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110853376A (zh) * 2019-09-30 2020-02-28 重庆中信科信息技术有限公司 智能网络交通信号灯
CN110958293A (zh) * 2019-10-12 2020-04-03 平安普惠企业管理有限公司 基于云服务器的文件传输方法、***、服务器及存储介质
CN110958293B (zh) * 2019-10-12 2023-10-24 陕西合友网络科技有限公司 基于云服务器的文件传输方法、***、服务器及存储介质
WO2021072862A1 (zh) * 2019-10-15 2021-04-22 平安科技(深圳)有限公司 大数据集群的更新方法、装置、计算机设备和存储介质
CN111045794B (zh) * 2019-12-17 2023-04-25 深圳前海环融联易信息科技服务有限公司 分布式事务处理方法、装置、***、计算机设备及存储介质
CN111045794A (zh) * 2019-12-17 2020-04-21 深圳前海环融联易信息科技服务有限公司 分布式事务处理方法、装置、***、计算机设备及存储介质
CN111866133A (zh) * 2020-07-20 2020-10-30 成都民航空管科技发展有限公司 一种多源大批量客户端数据同步方法及***
CN112910861A (zh) * 2021-01-19 2021-06-04 浙江大学 基于群组认证和分段鉴权的电力物联网终端设备认证方法
CN113064554A (zh) * 2021-04-08 2021-07-02 易联众信息技术股份有限公司 基于分布式存储的最优存储节点匹配方法、装置及介质
CN113064554B (zh) * 2021-04-08 2022-08-30 易联众信息技术股份有限公司 基于分布式存储的最优存储节点匹配方法、装置及介质
CN113709240A (zh) * 2021-08-26 2021-11-26 上海燧原科技有限公司 初始化参数的集群同步方法、装置、设备、介质及***
CN114363357A (zh) * 2021-12-28 2022-04-15 山东浪潮科学研究院有限公司 一种基于Gossip的分布式数据库网络连接管理方法
CN114363357B (zh) * 2021-12-28 2024-01-19 上海沄熹科技有限公司 一种基于Gossip的分布式数据库网络连接管理方法

Similar Documents

Publication Publication Date Title
CN109189855A (zh) 基于分布存储技术的数据同步方法及终端设备
US11894972B2 (en) System and method for data replication using a single master failover protocol
US11899684B2 (en) System and method for maintaining a master replica for reads and writes in a data store
US20220239602A1 (en) Scalable leadership election in a multi-processing computing environment
US11789938B1 (en) Ensuring globally consistent transactions
Nawab et al. Dpaxos: Managing data closer to users for low-latency and mobile applications
US9201742B2 (en) Method and system of self-managing nodes of a distributed database cluster with a consensus algorithm
CN101252603B (zh) 基于存储区域网络san的集群分布式锁管理方法
EP3191984B1 (en) Scalable log-based transaction management
US8930312B1 (en) System and method for splitting a replicated data partition
US9489434B1 (en) System and method for replication log branching avoidance using post-failover rejoin
US9069827B1 (en) System and method for adjusting membership of a data replication group
JP6353086B2 (ja) マルチアイテムトランザクションサポートを有するマルチデータベースログ
US11216346B2 (en) Coordinated replication of heterogeneous database stores
Novakovic et al. The case for RackOut: Scalable data serving using rack-scale systems
WO2017080257A1 (zh) 一种基于键值对的数据处理方法及***
CN112199427A (zh) 一种数据处理方法和***
CN103399894A (zh) 一种基于共享存储池的分布式事务处理方法
CN111552701B (zh) 确定分布式集群中数据一致性的方法及分布式数据***
CN112654978A (zh) 分布式异构存储***中数据一致性实时检查的方法、设备和***
CN109600430A (zh) 一种数据管理方法、***及电子设备和存储介质
CN108228698A (zh) 用于具有全局同步时间的多版本并发控制的高吞吐量算法
WO2022178976A1 (zh) 基于大数据的信息处理方法、装置及相关设备
EP3140735A1 (en) System and method for running application processes
CN115422184A (zh) 一种数据获取方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination