数据传输系统和方法与流程

文档序号:24938280发布日期:2021-05-04 11:30阅读:91来源:国知局
数据传输系统和方法与流程

本文涉及信息处理领域,尤其涉及一种数据传输系统和方法。



背景技术:

在网络数据的传输系统中,数据节点向存储所需数据的数据源节点获取数据,数据源节点为各个数据节点提供所需的数据。在数据节点的数量不断增加后,会对数据源节点的造成巨大的性能压力和带宽压力,产生巨大的成本开销,甚至对服务质量造成影响。



技术实现要素:

为克服相关技术中存在的任一问题,本文提供一种数据传输系统和方法。

根据本文的一方面,提供一种数据传输系统,包括至少两个数据节点,其中所述至少两个数据节点请求获取的数据均来自同一目标数据;其中所述至少两个数据节点中的至少一个数据节点作为根结点;其中所述根结点从数据源节点获取所述数据,除根结点之外的其他数据节点从所述根结点获取所述数据。

在一个示例性实施例中,所述至少两个数据节点请求获取的数据均来自同一目标数据,包括如下至少一个,包括:

所有数据节点请求均请求获取所述目标数据的完整数据;

至少一个数据节点请求获取所述目标数据的完整数据,至少一个数据节点请求获取所述目标数据中的部分数据;

至少一个数据节点请求获取所述目标数据中的第一部分的数据,至少一个节点请求获取所述目标数据的第二部分的数据。

在一个示例性实施例中,所述除根结点之外的其他数据节点从所述根结点获取所述数据包括如下至少一个:

所述除根结点之外的其他数据节点直接从所述根结点获取所述数据;

在所述除根结点之外的其他数据节点中的一个数据节点得到所述数据后,另一数据节点从所述得到数据的数据节点获取所述数据。

在一个示例性实施例中,除根结点之外的其他数据节点,用于获取对所述数据获取所需的传输路径信息,并根据所述传输路径获取所述数据。

在一个示例性实施例中,所述系统还包括:

管理节点,用于以所述根结点为树形结构,将所述至少两个数据节点按照树形结构进行排列,根据所述树形结构确定每个数据节点获取所述数据所需的传输路径信息,并发送所述传输路径信息至所述除根结点之外的其他数据节点。

在一个示例性实施例中,所述管理节点,具体用于获取所述树形结构上第i层和第i+1层的数据节点,确定第i+1层的数据节点与第i层的数据节点在树形结构上的连接信息,根据所述连接信息,确定所述树形结构中第i+1层的数据节点向第i层的数据节点获取数据的传输路径信息,其中i为整数。

在一个示例性实施例中,所述管理节点,用于在检测到根结点获取到数据后,确定位于所述树形结构中的第二层的数据节点,并在检测到位于所述树形结构中的第二层的数据节点获取到所述数据之后,再确定位于所述树形结构中的第三层的数据节点,以此类推,直到检测到所述树形结构中的最底层的数据节点获取到所述数据为止。

在一个示例性实施例中,所述除根结点之外的其他数据节点中每个数据节点为双亲节点或叶子节点,其中:

所述双亲节点,用于从根结点或一个双亲节点获取所述数据,并发送所述数据给叶子节点或另一个双亲节点;

所述叶子节点,用于从根结点或双亲节点获取所述数据。

在一个示例性实施例中,所述根结点是根据所述至少两个数据节点的资源空余量确定的。

在一个示例性实施例中,所述根结点是通过如下方式得到,包括:

获取每个数据节点的各个资源的空余量信息;

根据每个资源的空余量和预先设置的各个资源的系数信息,计算每个数据节点的资源空余量信息;

选择资源空余量信息符合资源空余充足的判断条件的数据节点作为根结点。

在一个示例性实施例中,所述双亲节点和所述叶子节点是通过如下方式得到,包括:

根据所述数据节点的资源空余量信息,从除根结点之外的其他数据节点中,选出一部分节点作为双亲节点,其中:

节点的资源空余量越高,被选中为双亲节点的概率越高;

节点的资源空余量越低,被选中为双亲节点的概率越低。

在一个示例性实施例中,所述树形结构中第i层中数据节点的资源空余量高于第i+1层的资源空余量,其中i为正整数。

根据本文的另一方面,提供一种数据传输方法,包括:

确定请求获取的数据来自同一目标数据的至少两个数据节点;

从所述至少两个数据节点中的至少一个数据节点作为根结点;

控制所述根结点从数据源节点获取所述数据;以及,控制除根结点之外的其他数据节点从所述根结点获取所述数据。

在一个示例性实施例中,所述至少两个数据节点请求获取的数据均来自同一目标数据,包括如下至少一个,包括:

所有数据节点请求均请求获取所述目标数据的完整数据;

至少一个数据节点请求获取所述目标数据的完整数据,至少一个数据节点请求获取所述目标数据中的部分数据;

至少一个数据节点请求获取所述目标数据中的第一部分的数据,至少一个节点请求获取所述目标数据的第二部分的数据。

在一个示例性实施例中,所述控制除根结点之外的其他数据节点从所述根结点获取所述数据包括如下至少一个:

控制所述除根结点之外的其他数据节点直接从所述根结点获取所述数据;

在所述除根结点之外的其他数据节点中的一个数据节点得到所述数据后,控制另一数据节点从所述得到数据的数据节点获取所述数据。

在一个示例性实施例中,所述控制除根结点之外的其他数据节点从所述根结点获取所述数据,包括:

向所述除根结点之外的其他数据节点发送用于从所述根结点直接或间接地获取所述数据所需的传输路径信息,并指示所述除根结点之外的其他数据节点根据所述传输路径获取所述数据。

在一个示例性实施例中,所述传输路径信息是通过如下方式得到,包括:

获取所述树形结构上第i层和第i+1层的数据节点;

确定第i+1层的数据节点与第i层的数据节点在树形结构上的连接信息;

根据所述连接信息,确定所述树形结构中第i+1层的数据节点向第i层的数据节点获取数据的传输路径信息,其中i为整数。

在一个示例性实施例中,所述根据所述树形结构确定每个数据节点获取所述数据所需的传输路径信息,包括:

根据所述树形结构,确定除根结点之外的其他数据节点以所述根结点为源逐层获取所述数据的传输路径信息。

在一个示例性实施例中,所述向所述除根结点之外的其他数据节点发送用于从所述根结点直接或间接地获取所述数据所需的传输路径信息,包括:

在检测到根结点获取到数据后,确定位于所述树形结构中的第二层的数据节点,并在检测到位于所述树形结构中的第二层的数据节点获取到所述数据之后,再确定位于所述树形结构中的第三层的数据节点,以此类推,直到检测到所述树形结构中的最底层的数据节点获取到所述数据为止。

在一个示例性实施例中,所述控制除根结点之外的其他数据节点从所述根结点获取所述数据,包括:

设置所述除根结点之外的其他数据节点中每个数据节点为双亲节点或叶子节点,其中:

所述双亲节点为从根结点或一个双亲节点获取所述数据,并发送所述数据给叶子节点或另一个双亲节点;

所述叶子节点为从根结点或双亲节点获取所述数据。

在一个示例性实施例中,所述根结点是根据所述至少两个数据节点的资源空余量确定的。

在一个示例性实施例中,所述根结点是通过如下方式得到,包括:

获取每个数据节点的各个资源的空余量信息;

根据每个资源的空余量和预先设置的各个资源的系数信息,计算每个数据节点的资源空余量;

选择资源空余量符合资源空余充足的判断条件的数据节点作为根结点。

在一个示例性实施例中,所述双亲节点和所述叶子节点是通过如下方式得到,包括:

根据所述数据节点的资源空余量,从除根结点之外的其他数据节点中,选出一部分节点作为双亲节点,其中:

节点的资源空余量越高,被选中为双亲节点的概率越高;

节点的资源空余量越低,被选中为双亲节点的概率越低。

在一个示例性实施例中,所述树形结构中第i层中数据节点的资源空余量高于第i+1层的数据节点的资源冗余空余量,其中i为正整数。

根据本文的另一方面,提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被执行时实现上文任意一项所述方法的步骤。

根据本文的另一方面,提供一种计算机设备,包括处理器、存储器和存储于所述存储器上的计算机程序,所述处理器执行所述计算机程序时实现上文任意一项所述方法的步骤。

本文示例性实施例提供的方案,获取至少两个数据节点,其中所述至少两个数据节点请求获取的数据均来自同一目标数据,从所述至少两个数据节点中的至少一个数据节点作为根结点,并控制所述根结点从数据源节点获取所述数据;以及,控制除根结点之外的其他数据节点从所述根结点获取所述数据,减少数据节点全部直接回源操作的执行次数,降低了数据源节点的压力和开销。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本文。

附图说明

构成本文的一部分的附图用来提供对本文的进一步理解,本文的示意性实施例及其说明用于解释本文,并不构成对本文的不当限定。在附图中:

图1是根据一示例性实施例示出的一种数据传输方法的流程图。

图2是根据一示例性实施例示出的数据传输方法的示意图。

图3是根据一示例性实施例示出的随机树的示意图。

图4是根据一示例性实施例示出的随机树的使用方法的流程图。

图5是根据一示例性实施例示出的一种计算机设备的框图。

具体实施方式

为使本文实施例的目的、技术方案和优点更加清楚,下面将结合本文实施例中的附图,对本文实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本文一部分实施例,而不是全部的实施例。基于本文中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本文保护的范围。需要说明的是,在不冲突的情况下,本文中的实施例及实施例中的特征可以相互任意组合。

针对相关技术中存在的进行数据获取时遇到的问题,发明人对问题存在的原因进行分析,内容如下:

1、数据节点在执行数据获取操作时,大量数据节点需直接回溯数据源节点以获取资源,由于执行直接回源的操作过多,给数据源节点带来巨大处理压力,给系统带来巨大资源开销;

2、随着数据节点的数量和规模变得越来越庞大,数据节点执行数据获取操作对上层的压力和开销也逐渐增大,数据获取的困难度随数据节点数量的增长而增长;

3、不同的数据节点所得到资源空余存在较大差异,如节点带宽、机器性能等,资源空余多的节点难以得到充分利用,而空余少的节点又容易被数据获取任务压垮,不能正常执行服务。

基于上述分析,本申请实施例提供如下解决方案:

本文示例性实施例提供一种数据传输系统,包括至少两个数据节点,其中所述至少两个数据节点请求获取的数据均来自同一目标数据;其中所述至少两个数据节点中的至少一个数据节点作为根结点;其中所述根结点从数据源节点获取所述数据,除根结点之外的其他数据节点从所述根结点获取所述数据。

本文中cdn中的数据节点、上层节点(也称为父节点、父层),是特定的实体存在,另一种是采用的树形图概念中的结点,是一个描述关系和结构的抽象概念,即上文提到的根结点。

在一个示例性实施例中,所述至少两个数据节点请求获取的数据均来自同一目标数据,包括如下至少一个,包括:

所有数据节点请求均请求获取所述目标数据的完整数据;

至少一个数据节点请求获取所述目标数据的完整数据,至少一个数据节点请求获取所述目标数据中的部分数据;

至少一个数据节点请求获取所述目标数据中的第一部分的数据,至少一个节点请求获取所述目标数据的第二部分的数据。

在上述示例性实施例中,以内容分发网络(contentdeliverynetwork,cdn)中的应用场景为例,数据节点为cdn中的边缘节点,数据源节点可以为cdn中的源站或上层节点,在至少两个边缘节点对相同数据有预取操作时,可以确定至少两个数据节点请求均请求获取所述目标数据;其中,对相同的数据有预取操作的数据节点可以根据数据节点发送的预热请求中携带的url来确定,如果有至少两个数据节点发送的url的信息相同,则所述至少两个数据节点要获取的数据是相同的,将对相同的数据有预取需要的数据节点作为一个预取任务,该预取任务中的数据节点作为数据组。

在一个示例性实施例中,如果至少两个数据节点均需要进行数据更新或数据同步的操作,由于每个数据节点当前所需执行的更新操作和同步操作的状态不同,因此,在进行数据更新或同步时所需的数据也存在差异,会出现至少一个数据节点请求获取所述目标数据的完整数据,至少一个数据节点请求获取所述目标数据中的部分数据;或者,至少一个数据节点请求获取所述目标数据中的第一部分的数据,至少一个节点请求获取所述目标数据的第二部分的数据。其中第一部分的数据可以与第二部分的数据有部分重叠,或者,完全不重叠。

举例来说,系统包括m个数据节点,每个节点均进行数据更新操作,更新所需的数据a,数据a包括3个文件,分别为a1、a2和a3;其中数据节点1所需获取的数据为a2和a3、数据节点2所需获取的a1,数据节点3获取的数据为a1和a2,数据节点4获取的数据为a,数据节点5获取的数据为a;

在上例中,数据节点4和数据节点5所获取数据的内容相同,对应尚未第一种情况;

数据节点1至数据节点3仅需获取数据a的部分数据,由于所需的数据均来自数据a,也可以与数据节点4和数据节点5构成数据组;

在数据节点1至数据节点3中,数据节点1与数据节点2所需获取数据中无相似的数据,数据节点3与数据节点2所需获取的数据有相似的数据(数据a2)。由于数据节点1至数据节点3所需获取的数据均来自同一数据,所以也可以独立单独构成一个数据组;或者,与数据节点4和数据节点构成一个数据组。

在实际数据传输过程中,可以向数据节点1至3发送数据a,由数据节点1至3根据自身需要,选择所需的数据进行存储。如果数据节点1至3作为数据的中转站,还具有向其他节点转发该数据的功能,数据节点1至3将数据a发送出去。

在一个示例性实施例中,所述目标数据可以为用户请求获取的文件、数据节点所需同步的数据(如业务数据或管理数据)、数据节点所需更新的数据(如升级数据、配置参数等)。

在一个示例性实施例中,从所述至少两个数据节点中选择至少一个数据节点作为根结点执行直接回源的操作,有效减少了对数据源节点的处理压力;同时,借助根结点获取到所需的数据,除根结点之外的其他数据节点从根结点获取所述数据,保证所述至少两个数据节点均获取到所需的数据。

在一个示例性实施例中,除根结点之外的其他数据节点直接从所述根结点获取数据,可以为该数据节点与所述根结点直接相连,从所述根结点获取数据;除根结点之外的其他数据节点间接从所述根结点获取数据,可以为除根结点之外的其他数据节点被划分为多层,位于第二层的数据节点与根结点相连,其他位于第n层的数据节点都是与位于第n-1层的数据节点直接相连,不再与根结点直接相连,借助其他数据节点对所述数据的传递从所述根结点获取数据。

根结点在获取到数据后,除根结点之外的其他数据节点如果均直接从根结点获取数据,势必作为根结点的数据节点也会产生数据源节点压力和开销过大的问题,为解决该问题,将获取到数据的数据节点作为提供数据方,大大分担了根结点的压力;同时,随着得到数据的数据节点的不断增多,数据的扩散速度也在逐渐提升,有效提升数据的获取效率。

具体通过如下方式:

在一个示例性实施例中,所述除根结点之外的其他数据节点从所述根结点获取所述数据包括如下至少一个:

所述除根结点之外的其他数据节点直接从所述根结点获取所述数据;

在所述除根结点之外的其他数据节点中的一个数据节点得到所述数据后,另一数据节点从所述得到数据的数据节点获取所述数据。

举例来说,数据节点1、数据节点2和数据节点3均对相同的数据有数据获取需求,数据节点1作为根结点,数据节点2与根结点(数据节点1)直接相连,数据节点3通过数据节点2与根结点(数据节点1)相连。在根结点(数据节点1)获取到数据后,数据节点2直接从根结点(数据节点1)获取,数据节点3则是从数据节点2获取,即间接从根结点(数据节点1)获取数据。

在上例中,数据节点3从数据节点2来获取数据,而不是从根结点(数据节点1)来获取数据,数据节点2分担了根结点(数据节点1)的处理压力。

在一个示例性实施例中,除根结点之外的其他数据节点,用于获取对所述数据获取所需的传输路径信息,并根据所述传输路径获取所述数据。

通过获取传输路径信息,实现数据在数据节点间的传输,保证数据节点成功获取数据。

在一个示例性实施例中,所述系统还包括:

管理节点,用于以所述根结点为树形结构的根结点,将所述至少两个数据节点按照树形结构进行排列,根据所述树形结构确定每个数据节点获取所述数据所需的传输路径信息,并发送所述传输路径信息至所述除根结点之外的其他数据节点。

在一个示例性实施例中,在cdn系统中,管理节点可以为预取中心,统一管理数据节点的预取操作。

在一个示例性实施例中,管理节点在获取到数据节点的数据获取操作后,对请求获取的数据均来自同一目标数据的数据节点进行管理,并为数据节点生成所需的传输路径信息。

在一个示例性实施例中,树形结构的结点度数可以根据实际需要设置,例如,树形结构可以为二叉树,且结点的排列采用加权随机的方式,方便利用对数据节点的排列。

所述管理节点,具体用于根据所述树形结构,确定除根结点之外的其他数据节点以所述根结点为源逐层获取所述数据的传输路径信息。

在一个示例性实施例中,所述管理节点,具体用于根据所述树形结构,确定除根结点之外的其他数据节点以所述根结点为源逐层获取所述数据的传输路径信息。

在所述树形结构中,位于第i层的数据节点的传输路径信息中是从第i-1层的数据节点获取所述数据的传输路径信息。

由于数据只从树形结构中上下两层的数据节点中进行传递,实现数据节点间互传数据,提高数据的传输效率,将数据发送到各个数据节点的压力分担到多个数据节点,降低对根结点的压力和开销。

在一个示例性实施例中,所述管理节点,用于在检测到根结点获取到数据后,确定位于所述树形结构中的第二层的数据节点,并在检测到位于所述树形结构中的第二层的数据节点获取到所述数据之后,再确定位于所述树形结构中的第三层的数据节点,以此类推,直到检测到所述树形结构中的最底层的数据节点获取到所述数据为止。

在一个示例性实施例中,数据获取任务是一个一个执行的,对每个数据获取任务都要生成一个树。

管理节点并不需要在任务刚开始时就生成整个树或是保存树的结构,而是可以从根结点开始一边执行任务一边逐步生成下层的节点,使得生成的属性结构不会发生等待的现象,效率更高。

在一个示例性实施例中,所述除根结点之外的其他数据节点中每个数据节点为双亲节点或叶子节点,其中:

所述双亲节点,用于从根结点或一个双亲节点获取所述数据,并发送所述数据给叶子节点或另一个双亲节点;

所述叶子节点,用于从根结点或双亲节点获取所述数据。

在一个示例性实施例中,以上文例子中的数据节点1、数据节点2和数据节点3为例,数据节点2为双亲节点,数据节点3为叶子节点。

在一个示例性实施例中,所述根结点是根据所述至少两个数据节点的资源空余量确定的。

根据数据节点的资源空余量来选择根结点,可以保证充分利用数据节点的资源,达到资源的合理利用。

在一个示例性实施例中,所述根结点是通过如下方式得到,包括:

获取每个数据节点的各个资源的空余量信息;

根据每个资源的空余量和预先设置的各个资源的系数信息,计算每个数据节点的资源空余量;

选择资源空余量符合资源空余充足的判断条件的数据节点作为根结点。

在一个示例性实施例中,可以获取数据节点的资源空余数据,可以是节点空余带宽、机器性能负载等;再计算并保存每个数据节点的资源空余量;其中所使用的计算表达式如下:

w=r1*k1+r2*k2+…+rn*kn;

其中,w表示资源空余量,rn表示资源n的空余量,kn表示资源n对应的系数,其中n表示第n种资源,n为正整数。

在上述计算表达式中,kn可以根据实际情况进行调整。

在一个示例性实施例中,所述双亲节点和所述叶子节点是通过如下方式得到,包括:

根据所述数据节点的资源空余量,从除根结点之外的其他数据节点中,选出一部分节点作为双亲节点,其中:

节点的资源空余量越高,被选中为双亲节点的概率越高;

节点的资源空余量越低,被选中为双亲节点的概率越低。

在传输数据时,双亲节点既要获取数据又要输出数据,负担较大;而叶子节点只需获取数据不需要输出数据,负担较小,因此,根据资源空余量来实现双亲节点和叶子节点的选择,可实现资源空余多的节点的资源得到充分利用,而空余少的节点又能正常执行服务,不被数据获取任务压垮,实现对资源的合理利用。

在一个示例性实施例中,所述树形结构中第i层中数据节点的资源空余量高于第i+1层的数据节点的资源冗余空余量,其中i为正整数。

在建立树形结构过程中,以资源空余量作为被选择的概率,按照树形结果从上到下的排列方式,每次选出一个数据节点,然后再从剩余的数据节点中取出下一个节点,循环往复,直到所有数据节点被顺序取出,组成树形结构,可以实现树形结构上从上到下的节点依次为根结点、双亲节点和叶子节点,实现资源的充分利用。

在上述系统中,有如下技术效果:

在有至少两个数据节点请求获取的数据均来自同一目标数据时,只有作为根结点的数据节点以传统方式回溯数据源节点,其他数据节点则直接或间接地从根结点获取数据,实现直接回源的操作的个数仅为根结点,显著减少对上层带来的处理压力,保证系统工作的稳定性;

随着数据节点的数量和规模变得越来越庞大,在根结点获取到数据后,数据节点间的数据获取操作是在数据节点间互相传递而实现的,不会对上层产生任何新的压力和新的开销,同时,借助数据节点间数据的互相传输,减低了数据的获取难度;

根据数据节点的资源空余量决定了数据节点在树形结构的位置,其中:空余越多的节点在随机树中成为根结点或双亲节点的概率越大,空余越少的节点在随机树中成为叶子节点的概率越大。因为,根结点和双亲节点既要获取资源又要输出资源,负担较大;而叶子节点只需获取资源不需要输出资源,负担较小,实现资源空余多的节点的资源得到充分利用,而空余少的节点又能正常执行服务,不被数据获取任务压垮,实现对资源的合理利用。

图1是根据一示例性实施例示出的一种数据传输方法的流程图。图1所示方法,包括:

步骤101、确定请求获取的数据来自同一目标数据的至少两个数据节点;

步骤102、从所述至少两个数据节点中的至少一个数据节点作为根结点;

步骤103、控制所述根结点从数据源节点获取所述数据;以及,控制除根结点之外的其他数据节点从所述根结点获取所述数据。

本文示例性实施例提供的方法,获取至少两个数据节点,其中所述至少两个数据节点请求获取的数据均来自同一目标数据,从所述至少两个数据节点中的至少一个数据节点作为根结点,并控制所述根结点从数据源节点获取所述数据;以及,控制除根结点之外的其他数据节点从所述根结点获取所述数据,减少数据节点全部直接回源操作的执行次数,降低了数据源节点的压力和开销。

在一个示例性实施例中,所述至少两个数据节点请求获取的数据均来自同一目标数据,包括如下至少一个,包括:

所有数据节点请求均请求获取所述目标数据的完整数据;

至少一个数据节点请求获取所述目标数据的完整数据,至少一个数据节点请求获取所述目标数据中的部分数据;

至少一个数据节点请求获取所述目标数据中的第一部分的数据,至少一个节点请求获取所述目标数据的第二部分的数据。

在一个示例性实施例中,所述控制除根结点之外的其他数据节点从所述根结点获取所述数据包括如下至少一个:

控制所述除根结点之外的其他数据节点直接从所述根结点获取所述数据;

在所述除根结点之外的其他数据节点中的一个数据节点得到所述数据后,控制另一数据节点从所述得到数据的数据节点获取所述数据。

在一个示例性实施例中,所述控制除根结点之外的其他数据节点从所述根结点获取所述数据,包括:

向所述除根结点之外的其他数据节点发送用于从所述根结点直接或间接地获取所述数据所需的传输路径信息,并指示所述除根结点之外的其他数据节点根据所述传输路径获取所述数据。

在一个示例性实施例中,所述传输路径信息是通过如下方式得到,包括:

以所述根结点为树形结构,将所述至少两个数据节点按照树形结构进行排列,根据所述树形结构确定每个数据节点获取所述数据所需的传输路径信息。

在一个示例性实施例中,所述根据所述树形结构确定每个数据节点获取所述数据所需的传输路径信息,包括:

根据所述树形结构,确定除根结点之外的其他数据节点以所述根结点为源逐层获取所述数据的传输路径信息。

在一个示例性实施例中,所述向所述除根结点之外的其他数据节点发送用于从所述根结点直接或间接地获取所述数据所需的传输路径信息,包括:

在检测到根结点获取到数据后,确定位于所述树形结构中的第二层的数据节点,并在检测到位于所述树形结构中的第二层的数据节点获取到所述数据之后,再确定位于所述树形结构中的第三层的数据节点,以此类推,直到检测到所述树形结构中的最底层的数据节点获取到所述数据为止。

在一个示例性实施例中所述控制除根结点之外的其他数据节点从所述根结点获取所述数据,包括:

设置所述除根结点之外的其他数据节点中每个数据节点为双亲节点或叶子节点,其中:

所述双亲节点为从根结点或一个双亲节点获取所述数据,并发送所述数据给叶子节点或另一个双亲节点;

所述叶子节点为从根结点或双亲节点获取所述数据。

在一个示例性实施例中所述根结点是根据所述至少两个数据节点的资源空余量确定的。

在一个示例性实施例中,所述根结点是通过如下方式得到,包括:

获取每个数据节点的各个资源的空余量信息;

根据每个资源的空余量和预先设置的各个资源的系数信息,计算每个数据节点的资源空余量;

选择资源空余量符合资源空余充足的判断条件的数据节点作为根结点。

在一个示例性实施例中,所述双亲节点和所述叶子节点是通过如下方式得到,包括:

根据所述数据节点的资源空余量,从除根结点之外的其他数据节点中,选出一部分节点作为双亲节点,其中被选中的每个节点的资源空余量均高于未被选中的节点的资源空余量。

在一个示例性实施例中,所述树形结构中第i层中数据节点的资源空余量高于第i+1层的资源空余量,其中i为正整数。

上述方法达到如下技术效果:

数据节点间相互回源,改变传统回源路径,减轻数据源节点压力和成本开销;

在需要数据获取的数据节点不断增多时,可用来分担数据获取压力的节点也随之增多,因此数据获取的难易度不受数据节点数量影响;

根据不同数据节点的资源空余来分配压力,解决不同数据节点资源空余差异的问题,充分利用空余资源,减少资源浪费。

下面对本文示例性提供的方法进行说明:

图2是根据一示例性实施例示出的数据传输方法的示意图。如图2所示,本文示例性提出的数据传输方法,改变传统的数据节点回上层机制,让数据节点之间互相回源,即数据节点间互取。通过数据节点的资源空余动态地生成权重表,其中该权重表用于指示数据节点的资源空余量,然后根据权重表生成随机树,基于随机树决定每个资源数据获取时的传播路径。在某个数据节点执行数据获取任务时,使用该节点在该任务所属随机树上的双亲节点进行回源。这种方案实现了以数据节点来承载大部分数据获取压力的效果,且同一资源需要回溯上层的次数最少可以只有一次,达到了大幅度减轻数据源节点压力和节约成本开销的目的。

在实现上述方法中,需要数据节点根据每个资源的随机树进行资源的传递。首先,只有根结点需要以传统方式回溯数据源节点,而无论数据节点总数是多少,只需控制根结点数量,便可控制数据源节点被回溯的次数,即减轻了数据源节点的压力和开销。其次,数据节点的权重决定了数据节点出现在随机树中不同位置的概率,空余越多的节点在随机树中成为根结点或双亲节点的概率越大,空余越少的节点在随机树中成为叶子节点的概率越大。因为,根结点和双亲节点既要获取资源又要输出资源,负担较大;而叶子节点只需获取资源不需要输出资源,负担较小。所以,不同数据节点资源空余差异的问题得以解决,空余资源得以充分利用。

为了达到上述技术效果,有如下三个关键步骤,分别为:

根据数据节点资源空余动态地生成权重表;

根据生成的权重表给每个数据获取任务生成一个随机树;

利用随机树传输数据。

下面分别对上述三个步骤进行说明,包括:

一、数据节点权重表的生成,具体通过如下方式:

a)根据数据获取任务所属业务的数据获取方案,得到需要数据获取的数据节点列表。

b)管理节点从其它平台获取数据节点的资源空余数据,通常是节点空余带宽、机器性能负载等。

c)计算并保存每个数据节点的权重;其中计算表达式如下:

i.w=r1*k1+r2*k2+…+rn*kn;

其中,w表示权重,rn表示资源n的空余量,kn表示资源n对应的系数,其中n表示第n种资源,n为正整数。

在上述计算表达式中,kn可以根据实际情况进行调整。

二、每个数据获取任务的随机树的生成,具体通过如下方式:

a)以权重作为概率,每次随机选出一个节点,然后再从剩余的节点中继续以权重作为概率的方式取出下一个节点,循环往复,直到所有节点被按顺序取出。

b)将节点1作为根结点,其余节点按照随机树的叉数n进行连接,组成后续的子节点。

图3是根据一示例性实施例示出的随机树的示意图。如图3所示,在随机树的第二层,节点2和节点3成为节点1的子节点,而节点4和节点5成为节点2的子节点,节点6、节点7成为节点3的子节点……以此类推,形成经典的二叉树结构。

三、数据节点对随机树的使用,具体通过如下方式:

图4是根据一示例性实施例示出的随机树的使用方法的流程图。如图4所示,所述方法包括:

a)管理节点并不需要在任务刚开始就生成整个树或是保存树的结构,而是可以从根结点开始一边执行任务一边逐步生成下层的节点。这样的好处是,新的双亲节点直接产生于要完成任务的叶子节点,不会发生等待的现象,效率更高。

b)首先,任务开始时,选出根结点,下发至对应节点进行数据获取。

c)根结点数据获取完成后,向管理节点回报任务结果,然后从剩余节点中选出n个叶子节点,对这批叶子节点下发以根结点为源的数据获取任务。

d)当上一步的任意一个叶子节点先完成任务并向管理节点回报任务结果后,如果还有剩余节点,则将该节点作为双亲节点,继续从剩余节点中取出新的叶子节点向该节点进行回源。

e)重复步骤d直到所有剩余节点都接收到数据获取任务为止。

f)所有节点完成任务并回报数据获取结果,则这个数据获取任务完整结束。

在上述方法中,改变了由数据源节点承担所有回源流量的局面,大幅减轻数据源节点的压力和开销;随着数据节点的增多,用来分担压力的节点也越多,数据获取的难易度不受数据节点数量影响;基于数据节点资源空余来分配数据节点互取的压力,解决了不同地区数据节点资源差异问题,充分利用空余资源,减少资源浪费。

本文示例性实施例提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被执行时实现上文任一所述方法的步骤。

图5是根据一示例性实施例示出的一种计算机设备500的框图。例如,计算机设备500可以被提供为一服务器。参照图5,计算机设备500包括处理器501,处理器的个数可以根据需要设置为一个或者多个。计算机设备500还包括存储器502,用于存储可由处理器501的执行的指令,例如应用程序。存储器的个数可以根据需要设置一个或者多个。其存储的应用程序可以为一个或者多个。处理器501被配置为执行指令,以执行上述方法。

本领域技术人员应明白,本文的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本文可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本文可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式。计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质,包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质等。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

本文是参照根据本文实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的物品或者设备中还存在另外的相同要素。

尽管已描述了本文的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本文范围的所有变更和修改。

显然,本领域的技术人员可以对本文进行各种改动和变型而不脱离本文的精神和范围。这样,倘若本文的这些修改和变型属于本文权利要求及其等同技术的范围之内,则本文的意图也包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1