发明内容
有鉴于此,本发明实施例提供一种数据同步方法、装置、电子设备及存储 介质,能够提高数据同步效率。
第一方面,本发明实施例提供一种数据同步方法,包括步骤:
从第一节点群中选择至少一个第一节点;所述第一节点群中的节点上没有 待发数据;
获取第二节点群中携带有第一标记的节点;所述第二节点群中的节点上有 待发数据,所述标记用于标识节点群中的节点正在提供服务的个数,所述第一 标记的值小于预设标记阈值;
在所述携带有第一标记的节点中选取一个节点作为第二节点,以使第一节 点从第二节点上拉取数据。
根据本发明实施例的一种具体实现方式,所述在所述携带有第一标记的节 点中选取一个节点作为第二节点包括:在所述携带有第一标记的节点中选取一 个靠近所述第一节点的节点作为第二节点。
根据本发明实施例的一种具体实现方式,在所述携带有第一标记的节点中 选取一个靠近所述第一节点的节点作为第二节点包括:
获取第二节点群中的节点的IP地址;
将所述IP地址逐一与第一节点的IP地址求差;
将所述求差得到的结果值转换成整型数字;
比较所述整型数字的绝对值大小;
根据所述绝对值大小选择所述第二节点。
根据本发明实施例的一种具体实现方式,所述根据所述绝对值大小选择所 述第二节点包括:选择第二节点群中所述绝对值相对较小的节点作为第二节点。
根据本发明实施例的一种具体实现方式,在获取第二节点群中携带有第一 标记的节点之前包括:
将第二节点群中的节点携带的标记赋予初始化标记值;所述初始化标记值 为0;
在所述在所述携带有第一标记的节点中选取一个节点作为第二节点,以使 第一节点从第二节点上拉取数据之后包括:
判断所述第一节点是否从第二节点上拉取数据;
若第一节点从第二节点上拉取数据,则将所述第二节点上的标记值增加1。
根据本发明实施例的一种具体实现方式,在所述若第一节点从第二节点上 拉取数据,则将所述第二节点上的标记值增加1之后包括:
监听所述第一节点是否完成从第二节点上拉取数据;
若是,则将所述第一节点群中的节点数减1,并将所述第二节点的标记值减 1。
根据本发明实施例的一种具体实现方式,所述在所述在所述携带有第一标 记的节点中选取一个节点作为第二节点,以使第一节点从第二节点上拉取数据 之后还包括:
判断第一节点群中的节点数是否为空值;
若是,则结束数据同步任务;
若否,则继续判断第二节点群中的节点标记值是否大于所述预定标记阈值;
若否,则从第二节点群中选取携带有所述第一标记的第三节点,以使第一 节点群中的节点继续从所述第三节点上拉取数据。
所述判断第一节点群中的节点数是否为空值之后还包括:
判断第二节点群中是否还有正在被拉取数据的节点;
若是,则等待数据同步完成;
若否,则结束数据同步任务。
根据本发明实施例的一种具体实现方式,所述预设标记阈值为3。
第二方面,本发明实施例提供一种数据同步装置,包括:第一选取模块, 用于从第一节点群中选择至少一个第一节点;所述第一节点群中的节点上没有 待发数据;
获取模块,用于获取第二节点群中携带有第一标记的节点;所述第二节点 群中的节点上有待发数据,所述标记用于标识节点群中的节点正在提供服务的 个数,所述第一标记的值小于预设标记阈值;
第二选取模块,用于在所述携带有第一标记的节点中选取一个节点作为第二 节点,以使第一节点从第二节点上拉取数据。
根据本发明实施例的一种具体实现方式,第二选取模块包括选取单元,用 于在所述携带有第一标记的节点中选取一个靠近所述第一节点的节点作为第二 节点。
根据本发明实施例的一种具体实现方式,所述选取单元,具体用于:
获取第二节点群中的节点的IP地址;
将所述IP地址逐一与第一节点的IP地址求差;
将所述求差得到的结果值转换成整型数字;
比较所述整型数字的绝对值大小;
根据所述绝对值大小选择所述第二节点。
根据本发明实施例的一种具体实现方式,所述选取单元,具体还用于选择 第二节点群中所述绝对值相对较小的节点作为第二节点。
根据本发明实施例的一种具体实现方式,所述装置还包括:
赋值模块,用于在获取第二节点群中携带有第一标记的节点之前,将第二 节点群中的节点携带的标记赋予初始化标记值;所述初始化标记值为0;
第一判断模块,用于在所述在所述携带有第一标记的节点中选取一个节点 作为第二节点,以使第一节点从第二节点上拉取数据之后,判断所述第一节点 是否从第二节点上拉取数据;
若第一节点从第二节点上拉取数据,则将所述第二节点上的标记值增加1。
根据本发明实施例的一种具体实现方式,所述装置还包括:
监听判断模块,用于在所述若第一节点从第二节点上拉取数据,则将所述 第二节点上的标记值增加1之后:
监听所述第一节点是否完成从第二节点上拉取数据;
若是,则将所述第一节点群中的节点数减1,并将所述第二节点的标记值减 1。
根据本发明实施例的一种具体实现方式,所述装置还包括:第二判断模块, 用于在所述在所述携带有第一标记的携带有所述第一标记的节点中选取一个靠 近所述第一节点作为的第二节点,以使第一节点从第二节点上拉取数据之后:
判断第一节点群中的节点数是否为空值;
若是,则结束数据同步任务;
若否,则继续判断第二节点群中的节点标记标记值是否大于所述预定标记 标记阈值;
若是,则结束数据同步任务;
若否,则从第二节点群中选取携带有所述第一标记的第三节点,以使第一 节点群中的节点继续从所述第三节点上拉取数据。
根据本发明实施例的一种具体实现方式,所述第二判断模块,具体还用于 在所述判断第一节点群中的节点数是否为空值之后:
判断第二节点群中是否还有正在被拉取数据的节点;
若是,则等待数据同步完成;
若否,则结束数据同步任务。
根据本发明实施例的一种具体实现方式,所述预设标记阈值为3。
第三方面,本发明实施例提供一种电子设备,所述电子设备包括:壳体、 处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内 部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个 电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中 存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行第一方 面任一所述的方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机 可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者 多个处理器执行,以实现第一方面任一所述的方法。
本发明实施例提供的数据同步方法、装置、电子设备及存储介质,包括步 骤:从第一节点群中选择至少一个第一节点;所述第一节点群中的节点上没有 待发数据;获取第二节点群中携带有第一标记的节点;所述第二节点群中的节 点上有待发数据,所述标记用于标识节点群中的节点正在提供服务的个数,所 述第一标记的值小于预设标记阈值;在所述携带有第一标记的节点中选取一个 节点作为第二节点,以使第一节点从第二节点上拉取数据。通过上述步骤,提 供了一种具体的数据同步的方式,当有数据同步需求时,在无数据的节点群中 选择第一节点,获取有数据的节点群中携带有第一标记的节点,由于携带有第一标记的节点正在提供的服务个数小于预设标记阈值,使第一节点直接从携带 有第一标记的节点中拉取数据,无需将数据统一放到一个地方,让分布于不同 地点的节点循环从同一个地方的文件服务器上下载需要的数据,使得数据同步 过程相对较为简单。进一步地,由于所述第一标记的值小于预设标记阈值,限 制了有数据节点提供服务的个数,可以避免大量无数据节点从一个有数据的节 点中拉取数据拖慢进程,从而能够提高数据同步效率。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实 施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前 提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例一
本发明实施例提供一种数据同步方法,能够提高数据同步效率,适用于对 计算机等节点设备集群中的数据或节点进行管理维护。
图1为本发明一实施例的数据同步方法流程示意图。本实施例的方法可以 应用于大规模节点设备集群中,实现对集群中的节点设备上的数据调度、更新 节点设备的服务等管理任务,特别适用于对不同机房、不同交换机等隔离网络 环境下的通信节点设备的数据进行管理维护。
如图1所示,本实施例数据同步方法可以包括:
步骤101、从第一节点群中选择至少一个第一节点;所述第一节点群中的节 点上没有待发数据。
本实施例中,所述节点可以包括通信设备、服务器和/或通信终端设备,所 述通信设备主要指网络通信设备,例如路由器、交换机、调制解调器(m0dem) 等,所述服务器包括能够提供计算服务的设备,例如计算机;所述通信终端主 要包括计算机及移动终端设备,所述移动终端设备包括智能手机及平板电脑。
所述第一节点群中的节点可以是处于同一空间或同一网络区域中的节点, 例如为同一机房中的节点;也可以是分散于不同地点或不同网络网区域中的节 点。所述第一节点群是指代包含一个以上的有某一服务数据同步要求的节点的 集合,可以理解的是,该集合中的节点的本地存储中在未进行数据同步前是不 具有所述服务数据的。另外,需要说明的是,处于同一空间中的节点也可以是 分布于不同网络区域中的节点。
步骤102、获取第二节点群中携带有第一标记的节点;所述第二节点群中的 节点上有待发数据,所述标记用于标识节点群中的节点正在提供服务的个数, 所述第一标记的值小于预设标记阈值。
本实施例中,具体获取节点的方式可以是通过数据监听的方式获取;可以 理解的是,所述第二节点群中的节点可以是处于同一空间或同一网络区域中节 点,例如为同一机房中的节点。也可以是分布于不同地点或不同网络网区域中 的节点。所述第二节点群是指代包含一个以上的提供某一服务数据同步服务的 节点的集合,该集合中的节点携带有标记,所述标记用于标识节点群中的节点 正在提供服务的个数,所述正在提供服务指的是第二节点群中的某一节点正在 被第一节点群中的节点拉取数据,示例性地,若第二节点群中的某一节点的标 记为2,则标识该节点当前正在被两个第一节点群中的节点拉取数据,或者正在 向第一节点群中的两个节点推送数据。另外,需要说明的是,处于同一空间中 的节点也可以是分布于不同网络区域中的节点。
可以理解的是,数据在传输时,如果从同一节点上拉取数据的节点过多, 则信源到信宿传输的信道就会变得拥挤,相应会影响数据的传输效率。
本实施例中,为了提高数据传输效率,作为一可选实施例,对第二节点群 中的节点提供服务的个数设定阈值,限制其提供服务的数量,所述第一标记的 值小于预设标记阈值。所述预设标记阈值可根据第二节点群中的节点自身的服 务能力设定,例如当节点为计算机时,则可以根据计算机的CPU处理数据的速 率、寄存器的大小和/或数据接口的传输速率等来设定,还可以根据作为信道的 传输介质来确定,例如信道为光缆还是双绞线,当为光缆是则可将阈值设定大 些,当为双绞线时,则设定小些。需要说明的是,该处对标记阈值的具体设定 方式的举例不应理解为对本实施例中还可以涵盖的其它阈值设定方式的排他性 限制。
步骤103、在所述携带有第一标记的节点中选取一个节点作为第二节点,以 使第一节点从第二节点上拉取数据。
本实施例中,可以理解的是,通过在携带有第一标记的节点中选取一个作 为被无数据的节点群中的节点的信源,由于第一标记小于预设阈值,能够避免 作为信源的节点向过多的无数据的节点提供服务,从而拖慢数据传输的进程。
另外,本实施例中数据传输的方式采用的是拉取模式,具体根据系统的不 同可以选择不同的工具进行拉取,例如在可以用快速增量备份工具Rem0te Sync (简称rsync)进行数据拉取,具体可以使用scp命令、SSH等方式来传输数据, 其中scp命令用于在Linux下进行远程拷贝文件的命令,SSH为Secure Shell的 缩写,是一种可以用于多种操作平台下的数据传输的安全协议。当然也可以通 过直接的套接字Socket连接方式。所述数据传输的方式也可以选择推送模式, 当为推送模式时,则在所述携带有第一标记的节点中选取一个节点作为第二节 点之后包括:以使所述第二节点向所述第一节点上推送数据。可以理解的是, 还可以根据需要选择推、拉结合的模式进行数据的传输。
本发明实施例提供的数据同步方法,通过从第一节点群中选择至少一个第 一节点;所述第一节点群中的节点上没有待发数据;获取第二节点群中携带有 第一标记的节点;所述第二节点群中的节点上有待发数据,所述标记用于标识 节点群中的节点正在提供服务的个数,所述第一标记的值小于预设标记阈值; 在所述携带有第一标记的节点中选取一个节点作为第二节点,以使第一节点从 第二节点上拉取数据。提供了一种具体的数据同步的方式,当有数据同步需求 时,在无数据的节点群中选择第一节点,获取有数据的节点群中携带有第一标 记的节点,由于携带有第一标记的节点正在提供的服务个数小于预设标记阈值, 使第一节点直接从携带有第一标记的节点中拉取数据,无需将数据统一放到一个地方,让分布于不同地点的节点循环从同一个地方的文件服务器上下载需要 的数据,使得数据同步过程相对较为简单。
进一步地,由于所述第一标记的值小于预设标记阈值,限制了有数据节点 提供服务的个数,可以避免大量无数据节点从一个有数据的节点中拉取数据拖 慢进程,从而能够提高数据同步效率。
可以理解的是,本实施例中,作为实现数据同步方法的执行主体可以为具 有数据计算能力的中控机,所述中控机可以为大型计算机,也可以为个人PC机, 根据控制范围的大小和/或范围内的节点的数量选择,例如当用于控制管理一座 城市所有节点的数据时,可选用大型计算机;而当用于控制管理一个办公室的 数台计算机(属于本发明实施例的节点涵盖的设备之一)时,则选用个人PC机 即可。
本实施例中,作为一可选实施例,在所述携带有第一标记的节点中选取一 个节点作为第二节点包括:在所述携带有第一标记的节点中选取一个靠近所述 第一节点的节点作为第二节点。
本实施例中,具体的在选取第二节点时,作为一个确定靠近的依据:可以 是尽量在与第一节点所处的同一交换机或机房中选择,以使数据传输尽可能在 同一交换机或机房进行,其传输距离相对较近,数据同步效率相应较高。如果 是在较大范围内进行数据管理,则在数据同步时,具体的在确定是否处于同一 交换机或机房中时,可以根据节点所在的网段来判断。
为了清楚说明本发明实施例,现结合一具体应用实例详细说明。例如,在 一个大的工厂中,设有负责数据管理的中控机X及三个机房,该三个机房分别 命名为A和B,在A机房下有三台计算机分别为a1、a2和a3,在B机房中有三 台计算机分别为b1、b2和b3。在A机房中的a1和a2上有服务数据,其他计 算机上没有该数据,中控机X在接收到无数据的计算机的数据请求后或者中控 机主动进行数据的调度管理任务,从A机房中有数据的计算机a1和a2中选择 至少一个作为第一节点,并给所述第一节点打上标记,所述标记用于标识该节点正在提供的服务个数,中控机在接收数据请求时获取到了相应的计算机的IP 地址,根据相应网段确定出a3、a1和a2位于同一个机房,则会优先使a3从第 一节点a1或a2上拉取数据。从B机房中选择任意一台计算机,例如为b2,从 第一节点上拉取数据,当B机房中的b2上有数据后,则优先使B机房中的计算 机b1和b3从b2上拉取数据。如果遇到正在提供服务的计算机达到了所提供服 务的阈值,例如阈值为3,示例性地,a1正在被三台无数据的计算机拉取数据, 则调度其他计算机从a2上拉取数据。这样由于选择尽可能在同机房下进行数据的传输,能够避免过多的跨机房数据传输使得数据传输的时延变长,从而提高 数据传输效率。进一步地,由于在数据同步过程中,设定了每一台有数据的计 算机能够提供的服务数量,合理利用信道资源,避免了过多无数据的计算机从 信源计算机上拉取数据产生的传输信道拥挤的问题,从而可提高数据同步效率。 需要说明的是,该举例不应当理解为对本实施例包含的其他可实现方案的排他 性限定。
参看图2所示,本实施例中,作为一可选实施例,在所述携带有第一标记 的节点中选取一个靠近所述第一节点的节点作为第二节点包括:
1031、获取第二节点群中的节点的IP地址;
1032、将所述IP地址逐一与第一节点的IP地址求差;
1033、将所述求差得到的结果值转换成整型数字;
1034、比较所述整型数字的绝对值大小;
1035、根据所述绝对值大小选择所述第二节点。
本实施例提供了一种具体的选择第二节点的方案,将第二节点群中的IP地 址分别与第一节点的IP地址求差后转换成整型数字,通过比较整型数值的绝对 值大小,来选择第二节点,能够较为简单的筛选出靠近第一节点的第二节点。
本实施例中,具体地,所述根据所述绝对值大小选择所述第二节点包括: 选择第二节点群中所述绝对值相对较小的节点作为第二节点。
可以理解的是,本实施例中通过IP比较以选择第二节点的方案,能够尽量 使数据同步或传输在同一机房或同一交换机下完成,从而可提高数据传输效率。
实施例中,作为一可选实施例,在获取第二节点群中携带有第一标记的节 点之前包括:
将第二节点群中的节点携带的标记赋予初始化标记值;所述初始化标记值 为0。
在所述在所述携带有第一标记的节点中选取一个节点作为第二节点,以使 第一节点从第二节点上拉取数据之后包括:
判断所述第一节点是否从第二节点上拉取数据;若第一节点从第二节点上 拉取数据,则将所述第二节点上的标记值增加1。
本实施例中,可以理解的是,将所述第二节点群中节点的标记设置为变量, 通过对标记变量赋初始值,当标记变量的值达到设定的阈值时,则该节点不再 提供服务,能够避免同一节点被过多的节点拉取数据,影响整体数据同步效率。
本实施例中,作为一可选实施例,在所述若第一节点从第二节点上拉取数 据,则将所述第二节点上的标记值增加1之后包括:
监听所述第一节点是否完成从第二节点上拉取数据;
若是,则将所述第一节点群中的节点数减1,并将所述第二节点的标记值减 1。
本实施例中,实现监听的方案可以为在节点上安装agent客户端程序,以实 现对节点动态的监控。
为了清楚说明本发明实施例,再结合前述工厂中的具体应用场景予以表述 如下:
中控机在进行数据调度过程中,对有数据的计算机a1打上标记,该标记为 一变量,其初始化标记值为0;当有一台计算机从其上拉取数据时,则所述标记 值增加1,其值更新为1。
中控机可以通过安装在各计算机上的agent客户端程序监听某一无数据的 节点,例如监听内容为,b1是否完成从a1上拉取数据,如果监听到任务状态为 完成数据同步,则B机房中的节点的数量由原来的三台减去1台,变为两台, 相应地,a1的标记值减去1,更新为0,表示可以被其他无数据的计算机继续从 其上拉取数据。这样,可以避免有数据的节点在已经完成当前与某一节点的数 据同步时,可能会处于闲置状态而浪费网络资源的问题,从而可使其循环地提 供服务,以有效提高整体数据的同步效率。
本实施例中,为了保证所有节点上都有数据,作为另一可选地实施例,所 述在所述在所述携带有第一标记的节点中选取一个节点作为第二节点,以使第 一节点从第二节点上拉取数据之后还包括:判断第一节点群中的节点数是否为 空值;若是,则结束数据同步任务;若否,则继续判断第二节点群中的节点标 记值是否大于所述预定标记阈值;若否,则从第二节点群中选取携带有所述第 一标记的第三节点,以使第一节点群中的节点继续从所述第三节点上拉取数据。
本实施例中,作为再一可选地实施例,所述判断第一节点群中的节点数是 否为空值之后还包括:判断第二节点群中是否还有正在被拉取数据的节点;若 是,则等待数据同步完成;若否,则结束数据同步任务。
本实施例中,可以理解的是,在第一节点群中的节点为空时,有两种可能, 一种是所有节点上都已经存在数据,还有一种可能是,有一部分节点正在进行 数据拉取,这时候为了避免数据在同步还未完成时就结束任务,从而致使部分 节点数据同步任务中断而没有完整的数据,通过在判断第一节点群中的节点数 是否为空值之后,进一步判断第二节点群中是否还有正在被拉取数据的节点, 如果没有,才结束任务。提供了一种具体的判断是否可以结束同步任务的依据, 以保证所有节点上都已经存在数据。
为了清楚完整地说明本发明一个或多个实施例,现再结合一应用情景举例 具体阐述:
在A、B机房的计算机上安装或确认有可以操控计算机的程序,例如为rsync 工具,具体的拉取方式,可使用SSH协议,对数据进行拉取,可以保证数据在 拉取传输过程中的安全性。
获取两个机房中所有参与数据同步的计算机的IP地址,将其转换成整型数 字。对有数据的计算机Y初始化一个标记,所述标记为变量,标识当前正在提 供服务的个数,设定标记阈值为3,即当标记的值更新为3时,就不能再被其他 计算机从其上拉取数据;选择至少一台没有数据的计算机N,比较计算机N分别 与计算机Y中的每一台计算机的IP的差值的绝对值大小,绝对值越小则越近; 根据比较结果选取具有绝对值小的IP地址的计算机标识为Y1,中控机发送指令 给计算机N,计算机N从计算机Y1上拉取数据,这时Y1的标记值加1,标记变 为1,在计算机N同步任务完成后,将计算机N作为有数据的计算机,为其赋 予初始化标记值0,相应地,将Y1的标记值减1。
具体的,如果无数据的计算机群中的计算机数量有值,即还有没有数据的 计算机;且有数据的计算机Y中有携带的标记小于标记阈值3的,则重复执行 上述过程直到无数据的计算机的数量及正在拉取数据的计算机的数量均为空值 时结束任务。
具体的,如果无数据的计算机群中的计算机数量有值,且确定出有数据的 计算机Y中携带的标记均大于等于标记阈值3,则等待有数据计算机Y中有标 记值减小至2以下时,则重复上述数据拉取步骤,直到无数据的计算机的数量 及正在拉取数据的计算机的数量均为空值结束任务。
本实施例中提供了一种数据同步的方法,用以解决数据同步效率低的问题, 通过使第二节点群中的节点携带上标记,并且设置了一个标记阈值,在第二节 点群中选择携带的标记小于所述标记阈值的节点,使第一节点从其上拉取数据, 部分避免了过早的匹配上过多的计算机拖慢数据同步效率及消耗过多网络资源 的问题,以提高数据同步的效率。进一步地,本实施例通过IP数值比较的方式, 让数据同步或传输尽量在同一个交换机或者同一个机房下完成,部分避免了跨 机房同步数据的现象,从而可提高数据的同步效率。
实施例二
本发明实施例提供一种数据同步装置,能够提高数据同步效率,适用于对 计算机等节点设备集群中的数据或节点进行管理维护。
图3为本发明实施例数据同步装置结构示意框图,参看图3所示,本实施 例的装置,可包括第一选取模块201,用于从第一节点群中选择至少一个第一节 点;所述第一节点群中的节点上没有待发数据;
获取模块202,用于获取第二节点群中携带有第一标记的节点;所述第二节 点群中的节点上有待发数据,所述标记用于标识节点群中的节点正在提供服务 的个数,所述第一标记的值小于预设标记阈值;
第二选取模块203,用于在所述携带有第一标记的节点中选取一个节点作为 第二节点,以使第一节点从第二节点上拉取数据。
可以理解的是,本实施例中,所述第一选取模块、第二选取模块及获取模 块在实际应用中可以是集成于一个装置或设备之中,例如中控机,中控机可以 兼具三者的功能,实现对数据的调度管理。
本发明实施例提供的数据同步装置,包括第一选取模块、获取模块及第二 选取模块,通过第一选取模块从第一节点群中选择至少一个第一节点;所述第 一节点群中的节点上没有待发数据;通过获取模块获取第二节点群中携带有第 一标记的节点;所述第二节点群中的节点上有待发数据,所述标记用于标识节 点群中的节点正在提供服务的个数,所述第一标记的值小于预设标记阈值;通 过第二选取模块在所述携带有第一标记的节点中选取一个节点作为第二节点, 以使第一节点从第二节点上拉取数据。当有数据同步需求时,在无数据的节点 群中选择第一节点,获取有数据的节点群中携带有第一标记的节点,由于携带 有第一标记的节点正在提供的服务个数小于预设标记阈值,使第一节点直接从 携带有第一标记的节点中拉取数据,无需将数据统一放到一个地方,让分布于 不同地点的节点循环从同一个地方的文件服务器上下载需要的数据,使得数据 同步过程相对较为简单。
进一步地,由于所述第一标记的值小于预设标记阈值,限制了有数据节点 提供服务的个数,可以避免大量无数据节点从一个有数据的节点中拉取数据拖 慢进程,从而能够提高数据同步效率。
本实施例中,作为一可选地实施例,所述预设标记阈值为3。也可以根据具 体情况设置为其它值。
本实施例中,作为一可选地实施例,第二选取模块包括选取单元,用于在 所述携带有第一标记的节点中选取一个靠近所述第一节点的节点作为第二节 点。
本实施例中,作为一可选地实施例,所述选取单元,具体用于:
获取第二节点群中的节点的IP地址;
将所述IP地址逐一与第一节点的IP地址求差;
将所述求差得到的结果值转换成整型数字;
比较所述整型数字的绝对值大小;
根据所述绝对值大小选择所述第二节点。
本实施例中,作为一可选地实施例,所述选取单元,具体还用于选择第二 节点群中所述绝对值相对较小的节点作为第二节点。
本实施例中,作为一可选地实施例,所述装置还包括:
赋值模块,用于在获取第二节点群中携带有第一标记的节点之前,将第二 节点群中的节点携带的标记赋予初始化标记值;所述初始化标记值为0;
第一判断模块,用于在所述在所述携带有第一标记的节点中选取一个节点 作为第二节点,以使第一节点从第二节点上拉取数据之后,判断所述第一节点 是否从第二节点上拉取数据;
若第一节点从第二节点上拉取数据,则将所述第二节点上的标记值增加1。
本实施例中,作为一可选地实施例,所述装置还包括:
监听判断模块,用于在所述若第一节点从第二节点上拉取数据,则将所述 第二节点上的标记值增加1之后:
监听所述第一节点是否完成从第二节点上拉取数据;
若是,则将所述第一节点群中的节点数减1,并将所述第二节点的标记值减 1。
本实施例中,作为一可选地实施例,所述装置还包括:第二判断模块,用 于在所述在所述携带有第一标记的携带有所述第一标记的节点中选取一个靠近 所述第一节点作为的第二节点,以使第一节点从第二节点上拉取数据之后:
判断第一节点群中的节点数是否为空值;
若是,则结束数据同步任务;
若否,则继续判断第二节点群中的节点标记标记值是否大于所述预定标记 标记阈值;
若是,则结束数据同步任务;
若否,则从第二节点群中选取携带有所述第一标记的第三节点,以使第一 节点群中的节点继续从所述第三节点上拉取数据。
本实施例中,作为一可选地实施例,所述第二判断模块,具体还用于在所 述判断第一节点群中的节点数是否为空值之后:
判断第二节点群中是否还有正在被拉取数据的节点;
若是,则等待数据同步完成;
若否,则结束数据同步任务。
需要说明的是,对于前述的各方法或装置实施例,为了简单描述,将其都 表述为一系列的动作组合,依据本发明实施例或通过合理的逻辑推理,某些步 骤也可以采用其他顺序或者同时进行,说明书中的记载不能理解为排他性限定, 所描述的实施例均属于优选实施例。另外,由于各实施例描述的侧重点有所不 同,关联部分可以相互参见。
实施例三
本发明实施例还提供一种电子设备,所述电子设备包含前述任一实施例所 述的装置。
图4为本发明电子设备一个实施例的结构示意图,可以执行本发明实施例 一所述的方法,如图4所示,上述电子设备可以包括:壳体41、处理器42、存 储器43、电路板44和电源电路45,其中,电路板44安置在壳体41围成的空 间内部,处理器42和存储器43设置在电路板44上;电源电路45,用于为上述 电子设备的各个电路或器件供电;存储器43用于存储可执行程序代码;处理器 42通过读取存储器43中存储的可执行程序代码来运行与可执行程序代码对应 的程序,用于执行如下操作:
从第一节点群中选择至少一个第一节点;所述第一节点群中的节点上没有 待发数据;
获取第二节点群中携带有第一标记的节点;所述第二节点群中的节点上有 待发数据,所述标记用于标识节点群中的节点正在提供服务的个数,所述第一 标记的值小于预设标记阈值;
在所述携带有第一标记的节点中选取一个节点作为第二节点,以使第一节 点从第二节点上拉取数据。
处理器42对上述步骤的具体执行过程以及处理器42通过运行可执行程序 代码来进一步执行的步骤,可以参见本发明图1至图3所示实施例的描述,在 此不再赘述。
该电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、 数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、 功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处 理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设 备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括: 音频、视频播放器(例如ipod),掌上游戏机,电子书,以及智能玩具和便携 式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、 系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服 务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面 要求较高。
(5)其他具有数据交互功能的电子设备。
本发明实施例还提供了一种存储介质,所述计算机可读存储介质存储有一 个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实 现实施例一所述的数据同步方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程, 是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算 机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。 其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-0nly Memory, ROM)或随机存储记忆体(Rand0mAccess Memory,RAM)等。需要说明的是, 在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与 另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在 任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他 变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品 或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还 包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况 下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、 方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相 似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的 比较简单,相关之处参见方法实施例的部分说明即可。
为了描述的方便,描述以上装置是以功能分为各种装置/装置分别描述。当 然,在实施本发明时可以把各装置/装置的功能在同一个或多个软件和/或硬件中 实现。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程, 是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算 机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。 其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-0nly Memory, ROM)或随机存储记忆体(Rand0mAccess Memory,RAM)等。
以上所述,仅为本发明具体实施方式,但本发明保护范围并不局限于此, 任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变 化或替换,都应涵盖在本发明保护范围之内。因此,本发明保护范围应以权利 要求的保护范围为准。