CN108429635B - 一种用于分布式环境下的数据传输方法 - Google Patents
一种用于分布式环境下的数据传输方法 Download PDFInfo
- Publication number
- CN108429635B CN108429635B CN201810092907.3A CN201810092907A CN108429635B CN 108429635 B CN108429635 B CN 108429635B CN 201810092907 A CN201810092907 A CN 201810092907A CN 108429635 B CN108429635 B CN 108429635B
- Authority
- CN
- China
- Prior art keywords
- executing
- current
- data
- subnum
- pull
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及一种用于分布式环境下的数据传输方法,属于分布式环境下的数据传输领域。本发明通过获取当前节点的前驱节点数和后继节点数决定执行不同的传输策略。本发明定义了分布式环境中节点间的数据传输关系,这样有助于减少当前节点传输的不确定性;其次,所有节点之间传输模式都采用混合推拉的模式,每个节点根据实际情况来进行混合推拉并行传输,这样可以减少数据的传输时间,提高整体的传输效率。
Description
技术领域
本发明涉及一种用于分布式环境下的数据传输方法,属于分布式环境下的数据传输领域。
背景技术
随计算机网络技术和信息处理技术的不断发展和完善,用户对信息处理的需求也在不断加强。在分布式环境中,许多系统要求各站点具有高度自治性,但同时也经常进行必要的数据传输。而目前最常用的数据传输模式即为推拉模式。推、拉模式由生产者、消费者、目录服务三部分组成。生产者收集监控资源的状态信息,消费者利用这些状态信息。目录服务负责定位消费者和生产者,辅助双方互相通信。在消费者与生产者有推的模式、拉的模式两种基本的通信方式。在分布式环境下,现有方法只考虑了文件之类的传输从源节点到目的节点之间做多路径并行传输,并没有通过混合推拉应用到整体节点去做数据传输,比如说一对多,多对多情况的数据传输下。
发明内容
针对现有技术存在的不足,本发明提供了一种用于分布式环境下的数据传输方法,。
本发明的技术方案是:一种用于分布式环境下的数据传输方法,所述方法的具体步骤如下:
S1、首先获取当前节点的前驱节点数PreNum和后继节点数SubNum:将分布式环境下节点拓扑结构由有向图组成,通过有向图的邻接矩阵来存储分布式节点拓扑结构图,根据当前节点Vcurrent∈V找到其在邻接矩阵中对应的列,查找值为1对应的行名即为Vcurrent的前驱节点;根据当前节点Vcurrent找到其在邻接矩阵中对应的行,查找值为1对应的列名即为Vcurrent的后继节点;最后获得的前驱节点数PreNum即为前驱节点集合Vpre中元素的个数,获得后继节点数SubNum即为后继节点集合Vnext中元素的个数;其中,V代表图中顶点的非空有限集合,0表示两个相邻节点没有传输关系,1表示两个相邻节点有传输关系;
S2、如果PreNum=0并且SubNum≥1时,执行步骤S2.0;
S2.0、初始化i=1,j=1,保持Vcurrent上一次推送的数据:c_now=0.0;
S2.1、根据获取的前驱节点数PreNum和后继节点数SubNum,执行S2.2;
S2.2、判断Vcurrent的Datacurrent是否符合推送:如果符合推送,exist=true,执行S2.3;否则,执行S2.8;
S2.3、判断i≤SubNum:如果是,执行S2.4;否则,执行S2.12;
S2.4、并行获取Vcurrent的Vnext_i的拉请求reqFlag;执行S2.5;
S2.5、判断Vnext_i的reqFlag=“pull”:如果是,执行S2.6;否则,执行S2.7;
S2.6、Datacurrent被Vnext_i拉取,i++,执行S2.3;
S2.7、Vcurrent将Datacurrent向Vnext_i进行推送;i++;执行S2.3;
S2.8、判断j≤SubNum:如果是,执行S2.9;否则,执行S2.12;
S2.9、并行获取Vcurrent的Vnext_j的拉请求reqFlag;执行S2.10;
S2.10、判断Vnext_j的reqFlag=“pull”:如果是,执行S2.11;否则,j++,执行S2.8;
S2.11、Datacurrent被Vnext_j拉取;j++;执行S2.8;
S2.12、c_now=Datacurrent;结束;
其中,Vcurrent表示当前节点,Vpre代表Vcurrent的前驱节点集合,Vnext代表Vcurrent的后继节点集合;Vpre集合中的元素:Vpre={Vpre_t|Vpre_t∈V},t=1,2,…,PreNum;Vnext集合中的元素:Vnext={Vnext_s|Vnext_s∈V},s=1,2,…,SubNum;前驱节点数PreNum即为前驱节点集合Vpre中元素的个数;后继节点数SubNum即为后继节点集合Vnext中元素的个数;exist表示数据就绪标记;reqFlag表示监听拉请求标记,Datacurrent表示Vcurrent获取的当前数据;
S3、如果PreNum≥1并且SubNum≥1时,执行步骤S3.0;
S3.0、初始化p=1,k=1,m=1,n=1;保持Vcurrent上一次推送的数据:c_now=0.0;
S3.1、根据获取的前驱节点数PreNum和后继节点数SubNum,执行S3.2;
S3.2、判断Vcurrent的Datacurrent是否符合推送:如果符合推送,exist=true,执行S3.3;否则,执行S3.12;
S3.3、判断p≤PreNum;如果是,执行S3.4;否则,执行S3.7;
S3.4、判断Vpre_p的recFlag=0:如果是,执行S3.5;否则,执行S3.6;
S3.5、向Vpre_p发送“pull”请求拉取数据,将拉取Vpre_p本身的数据存入receivePullDataList,Vpre_p的recFlag=1,p++;执行S3.3;
S3.6、将Vpre_p接收到的数据存入receivePushDataList;p++;执行S3.3;
S3.7、判断m≤SubNum:如果是,执行S3.8;否则,执行S3.21;
S3.8、并行获取Vcurrent的Vnext_m的拉请求reqFlag,执行S3.9;
S3.9、判断Vnext_m的reqFlag=“pull”:如果是,执行S3.10;否则,执行S3.11;
S3.10、Datacurrent和receivePullDataList集合以及receivePushDataList集合的数据同时被Vnext_m拉取;m++;执行S3.7;
S3.11、Vcurrent将Datacurrent和receivePullDataList集合以及receivePushDataList集合中的数据同时推送到Vnext_m;m++;执行S3.7;
S3.12、判断k≤PreNum:如果是,执行S3.13;否则,执行S3.16;
S3.13、判断Vpre_k的recFlag=0:如果是,执行S3.14;否则,执行S3.15;
S3.14、向Vpre_k发送“pull”请求拉取数据;将拉取Vpre_k的数据存入receivePullDataList;Vpre_k的recFlag=1;k++;执行S3.12;
S3.15、将接收到Vpre_k的数据存入receivePushDataList;k++;执行S3.12;
S3.16、判断n≤SubNum:如果是,执行S3.17;否则,执行S3.22;
S3.17、并行获取Vcurrent的Vnext_n的拉请求reqFlag;执行S3.18;
S3.18、Vnext_n的reqFlag=“pull”:如果是,执行S3.19;否则,执行S3.20;
S3.19、receivePullDataList集合以及receivePushDataList中的数据被Vnext_n拉取;n++;执行S3.16;
S3.20、Vcurrent将receivePullDataList集合以及receivePushDataList中的数据推送到Vnext_n;n++;执行S3.16;
S3.21、c_now=Datacurrent;执行S3.22;
S.22、清空两个集合中的数据以及Datacurrent;执行S.23;
S.23、结束;
其中,receivePullDataList表示拉数据集合;rceivePushDataList表示接收推数据集合;recFlag表示接收到数据标记recFlag;
S4、如果PreNum≥1并且SubNum=0时,执行步骤S4.0;:
S4.0、初始化q=1;轮询周期pollTime;
S4.1、根据获取的前驱节点数PreNum和后继节点数SubNum,执行S4.2;
S4.2、判断pollTime=0:如果是,执行S4.3;否则,pollTime--;执行S4.2;
S4.3、判断q≤PreNum:如果是,执行S4.4;否则,执行S4.7;
S4.4、Vpre_q的recFlag=0:如果是,执行S4.5;否则,执行S4.6;
S4.5、向Vpre_q发送“pull”请求拉取数据;将拉取Vpre_q本身的数据存入receivePullDataList;Vpre_q的recFlag=1;q++;执行S4.3;
S4.6、将Vpre_q接收到的数据存入receivePushDataList;q++;执行S4.3;
S4.7、将receivePushDataList和receivePullDataList集合中的数据插入到数据库,并清空两个集合;轮询周期重置;执行S4.8;
S4.8、结束。
所述判断Vcurrent的Datacurrent是否符合推送具体为:如果符合推送;否则,不符合;其中:change_degree表示当前被监控资源状态值与上次已经推送的值之间的状态变化程度;Datacurrent表示当前采集的资源状态值,即当前数据;c_now表示上一次符合推送的被监控资源状态值;Max和Min表示资源状态值的上限和下限;UTD表示用户容忍度,其值在[0,1]之间,值越小表示用户对被监控资源状态值有严格的精度要求,越大表示用户对被监控资源状态值的要求的精度越低。
本发明的有益效果是:本发明定义了分布式环境中节点间的数据传输关系,这样有助于减少当前节点传输的不确定性;其次,所有节点之间传输模式都采用混合推拉的模式,每个节点根据实际情况来进行混合推拉并行传输,这样可以减少数据的传输时间,提高整体的传输效率。
附图说明
图1为本发明的传输策略总流程图;
图2为本发明执行传输策略A的流程图;
图3为本发明执行传输策略B的流程图;
图4为本发明执行传输策略C的流程图;
图5为本发明实施例中的有向图。
具体实施方式
实施例1:如图1-5所示,一种用于分布式环境下的数据传输方法,包括:
(1)获取Vcurrent的前驱节点数PreNum和后继节点数SubNum,Vcurrent根据获取的具体PreNum和SubNum来决定执行哪种传输策略;
(2)传输策略A,当Vcurrent的PreNum==0&&SubNum>=1时执行;
(3)传输策略B,当Vcurrent的PreNum>=1&&SubNum>=1时执行;
(4)传输策略C,当Vcurrent的PreNum>=1&&SubNum==0时执行;
所述方法具体步骤如下:
S1、首先获取Vcurrent的前驱节点数和后继节点数;
一个有向图的定义为:是由有序的二元组(D),D=<V,E>,V={Vx},x=1,2,…,n,V代表图中顶点的非空有限集合;E={<Vx,Vy>},x≠y,x=1,2,…,n;y=1,2,..,n;其中eλ=<Vx,Vy>∈E是一条单向边,Vx为eλ的起点,Vy为eλ的终点;Vcurrent表示当前节点,{u|u∈V且<u,Vcurrent>∈E且u≠Vcurrent}为Vcurrent的前驱节点集合,用Vpre表示;{u|u∈V且<Vcurrent,u>∈E且u≠Vcurrent}为Vcurrent的后继节点集合,用Vnext表示。
分布式环境下节点拓扑结构由以上有向图定义组成,如图5所示。
本发明使用图的邻接矩阵来存储分布式节点拓扑结构图,即用0和1来表示图中相邻节点间的传输关系,0表示两个相邻节点没有传输关系,1表示两个相邻节点有传输关系。然后根据当前节点Vcurrent∈V找到其对应的列,查找值为1对应的行名即为Vcurrent的前驱节点;根据当前节点Vcurrent找到其对应的行,查找值为1对应的列名即为Vcurrent的后继节点。最后获得的前驱节点数(PreNum)即为前驱节点集合Vpre中元素的个数,获得后继节点数(SubNum)即为后继节点集合Vnext中元素的个数。
根据以上有向图的定义,Vpre代表Vcurrent的前驱节点集合,Vnext代表Vcurrent的后继节点集合。Vpre集合中的元素:Vpre={Vpre_t|Vpre_t∈V},t=1,2,…,PreNum;Vnext集合中的元素:Vnext={Vnext_s|Vnext_s∈V},s=1,2,…,SubNum;
如得到邻接矩阵,后续实施例也借用该矩阵。
表1:
根据表1,可知:
获得V1的PreNum=0,SubNum=2;
V1的后继节点集合:Vnext={V3==Vnext_1,V4==Vnext_2}
V1的前驱节点集合:Vpre={null}
定义Max=100.0,Min=0.0。
S2、如果PreNum==0&&SubNum>=1,则执行传输策略A:
初始化i=1,j=1;保持Vcurrent上一次推送的数据:c_now=0.0;
1)PreNum=0,SubNum=2;
PreNum==0&&SubNum=2>=1执行2);
3)判断i<=SubNum:1<2,执行4);
4)并行获取V1的Vnext_i的拉请求reqFlag;Vnext_1的reqFlag=“pull”;执行5)
5)判断reqFlag==“pull”是否为真:“pull”==“pull”;执行6);
6)Datacurrent被Vnext_i拉取:Datacurrent=35.6被Vnext_1拉取;i++;执行3)
3)判断i<=SubNum:2=2,执行4);
4)并行获取V1的Vnext_i的拉请求reqFlag;Vnext_2的reqFlag=null;执行5);
5)判断reqFlag==“pull”是否为真:null!=“pull”;执行7);
7)Vcurrent将Datacurrent向Vnext_i进行推送:Vcurrent将Datacurrent=35.6向Vnext_2推送;i++;执行3);
3)判断i<=SubNum:3!=2,执行12);
12)c_now=35.6;结束;
其中,exist表示数据就绪标记;reqFlag表示监听拉请求标记,Datacurrent表示Vcurrent获取的当前数据。
表2:
V1传输方向 | 传输方式 | 传输时间 |
V1—>V3 | 拉(V3向V1拉) | 365ms |
V1—>V4 | 推(V1向V4推) | 236ms |
在该实例中,并行传输间为max{365,236}=365ms;串行传输时间为365+236=501ms,则采用并行传输会相对应的减少数据传输时间。针对于同一批数据来说,V1与V3和V4之间的并行推或者拉都是根据V3和V4节点本身有无就绪数据的具体情况来决定的。
实施例2:如图1-5所示,一种用于分布式环境下的数据传输方法,包括:
(1)获取Vcurrent的前驱节点数PreNum和后继节点数SubNum,Vcurrent根据获取的具体PreNum和SubNum来决定执行哪种传输策略;
(2)传输策略A,当Vcurrent的PreNum==0&&SubNum>=1时执行;
(3)传输策略B,当Vcurrent的PreNum>=1&&SubNum>=1时执行;
(4)传输策略C,当Vcurrent的PreNum>=1&&SubNum==0时执行;
所述方法具体步骤如下:
S1、首先获取Vcurrent的前驱节点数和后继节点数;
一个有向图的定义为:是由有序的二元组(D),D=<V,E>,V={Vx},x=1,2,…,n,V代表图中顶点的非空有限集合;E={<Vx,Vy>},x≠y,x=1,2,…,n;y=1,2,..,n;其中eλ=<Vx,Vy>∈E是一条单向边,Vx为eλ的起点,Vy为eλ的终点;Vcurrent表示当前节点,{u|u∈V且<u,Vcurrent>∈E且u≠Vcurrent}为Vcurrent的前驱节点集合,用Vpre表示;{u|u∈V且<Vcurrent,u>∈E且u≠Vcurrent}为Vcurrent的后继节点集合,用Vnext表示。
分布式环境下节点拓扑结构由以上有向图定义组成,如图5所示。
本发明使用图的邻接矩阵来存储分布式节点拓扑结构图,即用0和1来表示图中相邻节点间的传输关系,0表示两个相邻节点没有传输关系,1表示两个相邻节点有传输关系。然后根据当前节点Vcurrent∈V找到其对应的列,查找值为1对应的行名即为Vcurrent的前驱节点;根据当前节点Vcurrent找到其对应的行,查找值为1对应的列名即为Vcurrent的后继节点。最后获得的前驱节点数(PreNum)即为前驱节点集合Vpre中元素的个数,获得后继节点数(SubNum)即为后继节点集合Vnext中元素的个数。
根据以上有向图的定义,Vpre代表Vcurrent的前驱节点集合,Vnext代表Vcurrent的后继节点集合。Vpre集合中的元素:Vpre={Vpre_t|Vpre_t∈V},t=1,2,…,PreNum;Vnext集合中的元素:Vnext={Vnext_s|Vnext_s∈V},s=1,2,…,SubNum;
表3:
根据表3,可知:
获得V1的PreNum=0,SubNum=2;
V1的后继节点集合:Vnext={V3==Vnext_1,V4==Vnext_2}
V1的前驱节点集合:Vpre={null}
定义Max=100.0,Min=0.0;
S2、如果PreNum==0&&SubNum>=1,则执行传输策略A:
初始化i=1,j=1,保持Vcurrent上一次推送的数据:c_now=0.0;
1)PreNum=0,SubNum=2;PreNum==0&&SubNum=2>=1;执行2);
8)判断j<=SubNum:1<2,执行9);
9)并行获取V1的Vnext_j的拉请求reqFlag;Vnext_1的reqFlag=“pull”;执行10)
10)判断reqFlag==“pull”是否为真:“pull”==“pull”;执行11);
11)Datacurrent被Vnext_j拉取:Datacurrent=6.9被Vnext_1拉取;j++;执行8);
8)判断j<=SubNum:2=2,执行9);
9)并行获取V1的Vnext_i的拉请求reqFlag;Vnext_2的reqFlag=“pull”;执行10);
10)判断reqFlag==“pull”是否为真:“pull”==“pull”;执行11);
11)Datacurrent被Vnext_j拉取:Datacurrent=6.9被Vnext_2拉取;j++;执行8);
8)判断j<=SubNum:3!=2,执行12);
12)c_now=6.9,结束。
其中,exist表示数据就绪标记;reqFlag表示监听拉请求标记,Datacurrent表示Vcurrent获取的当前数据。
表4:
V1的传输方向 | 传输方式 | 传输时间 |
V1—>V3 | 拉(V3向V1拉) | 435ms |
V1—>V4 | 拉(V4向V1拉) | 386ms |
该传输实例中,V1的后继节点并行来拉取数据,总传输时间为max{435,386}=435ms,串行传输时间为435+386=821ms。并行传输时间优于串行传输时间。针对于同一批数据来说,V1与V3和V4之间的并行推或者拉都是根据V3和V4节点本身有无就绪数据的具体情况来决定的。
实施例3:如图1-5所示,一种用于分布式环境下的数据传输方法,包括:
(1)获取Vcurrent的前驱节点数PreNum和后继节点数SubNum,Vcurrent根据获取的具体PreNum和SubNum来决定执行哪种传输策略;
(2)传输策略A,当Vcurrent的PreNum==0&&SubNum>=1时执行;
(3)传输策略B,当Vcurrent的PreNum>=1&&SubNum>=1时执行;
(4)传输策略C,当Vcurrent的PreNum>=1&&SubNum==0时执行;
所述方法具体步骤如下:
S1、首先获取Vcurrent的前驱节点数和后继节点数;
一个有向图的定义为:是由有序的二元组(D),D=<V,E>,V={Vx},x=1,2,…,n,V代表图中顶点的非空有限集合;E={<Vx,Vy>},x≠y,x=1,2,…,n;y=1,2,..,n;其中eλ=<Vx,Vy>∈E是一条单向边,Vx为eλ的起点,Vy为eλ的终点;Vcurrent表示当前节点,{u|u∈V且<u,Vcurrent>∈E且u≠Vcurrent}为Vcurrent的前驱节点集合,用Vpre表示;{u|u∈V且<Vcurrent,u>∈E且u≠Vcurrent}为Vcurrent的后继节点集合,用Vnext表示。
分布式环境下节点拓扑结构由以上有向图定义组成,如图5所示。
本发明使用图的邻接矩阵来存储分布式节点拓扑结构图,即用0和1来表示图中相邻节点间的传输关系,0表示两个相邻节点没有传输关系,1表示两个相邻节点有传输关系。然后根据当前节点Vcurrent∈V找到其对应的列,查找值为1对应的行名即为Vcurrent的前驱节点;根据当前节点Vcurrent找到其对应的行,查找值为1对应的列名即为Vcurrent的后继节点。最后获得的前驱节点数(PreNum)即为前驱节点集合Vpre中元素的个数,获得后继节点数(SubNum)即为后继节点集合Vnext中元素的个数。
根据以上有向图的定义,Vpre代表Vcurrent的前驱节点集合,Vnext代表Vcurrent的后继节点集合。Vpre集合中的元素:Vpre={Vpre_t|Vpre_t∈V},t=1,2,…,PreNum;Vnext集合中的元素:Vnext={Vnext_s|Vnext_s∈V},s=1,2,…,SubNum;
表5:
表6:
前驱节点 | V4已经接收到的数据 | 本身的数据 | recLlag |
V1 | [13.6,48.6] | null | 1 |
V2 | null | 6.5 | 0 |
根据表5可知,
获得V4的PreNum=2,SubNum=3;
V4的后继节点集合:Vnext={V3==Vnext_1,V5==Vnext_2,V6==Vnext_3}
V4的前驱节点集合:Vpre={V1==Vpre_1,V2==Vpre_2}
定义Max=100.0,Min=0.0;
S3、如果PreNum>=1&&SubNum>=1,则执行传输策略B:
初始化p=1,k=1,m=1,n=1;保持Vcurrent上一次推送的数据:c_now=0.0;
1)PreNum=2,SubNum=3;(PreNum=2)>=1&&(SubNum=3)>=1,执行2);
3)判断p<=PreNum;1<2;执行4);
4)判断Vpre_p的recFlag是否为0:(Vpre_1的recFlag=1)!=0;执行6);
6)将Vpre_p接收到的数据存入receivePushDataList:将Vpre_1的数据[13.6,48.6]存入receivePushDataList;p++;执行3);
3)判断p<=PreNum;2=2;执行4);
4)判断Vpre_p的recFlag是否为0:(Vpre_2的recFlag=0)==0;执行5);
5)向Vpre_p发送“pull”请求拉取数据:拉取到Vpre_2的数据为6.5,将Vpre_2拉取的数据存入receivePullDataList;将Vpre_p的recFlag=1;p++;执行3);
3)判断p<=PreNum;3!=2;执行7);
7)判断m<=SubNum;1<3;执行8);
8)并行获取Vcurrent的Vnext_m的拉请求reqFlag:Vnext_1的reqFlag=“null”;执行9);
9)判断reqFlag==“pull”是否为真:null!=“pull”,执行11);
11)Vcurrent将Datacurrent和receivePullDataList集合以及receivePushDataList中的数据被同时推送到Vnext_m:Vcurrent将[13.6,48.6,6.5,50]推送到Vnext_1;m++;执行7);
7)判断m<=SubNum;2<3;执行8);
8)并行获取Vcurrent的Vnext_m的拉请求reqFlag:Vnext_2的reqFlag=“null”;执行9);
9)判断reqFlag==“pull”是否为真:null!=“pull”,执行11);
11)Vcurrent将Datacurrent和receivePullDataList集合以及receivePushDataList中的数据被同时推送到Vnext_m:Vcurrent将[13.6,48.6,6.5,50]推送到Vnext_2;m++;执行7);
7)判断m<=SubNum;3=3;执行8);
8)并行获取Vcurrent的Vnext_m的拉请求reqFlag:Vnext_3的reqFlag=“pull”;执行9);
9)判断reqFlag==“pull”是否为真:“pull”==“pull”,执行10);
10)Datacurrent和receivePullDataList集合以及receivePushDataList的数据同时被Vnext_m拉取:[13.6,48.6,6.5,50]被Vnext_3拉取;m++;执行7);
7)判断m<=SubNum;4!=3;执行21);
21)c_now=50;执行22);
22)清空两个集合中的数据以及Datacurrent;执行23);
23)结束;
其中,receivePullDataList表示拉数据集合;rceivePushDataList表示接收推数据集合;recFlag表示接收到数据标记recFlag。
表7:
表8:
V4的传输方向 | 传输方式 | 传输时间 |
V4—>V3 | 推(V4向V3推) | 623ms |
V4—>V5 | 推(V4向V5推) | 312ms |
V4—>V6 | 拉(V6向V4拉) | 650ms |
在该传输实例中,V4本身有就绪的数据,进而开始判断其前驱节点的数据是否接收完毕,V1向V4推送了数据,V4接收并保存,但是没有收到V2的数据,所以向V2发送拉请求,拉取数据,在整个过程中,V1不断向V4推数据的过程中,V4根据自身的情况判断可以同时向V2拉取数据,所以V1、V2与V4的并行传输时间为max{213,360}=360ms。接收完毕之后,V4并行判断V3、V5、V6是否有拉请求,根据实例中只有V6有拉请求,则V6向V4拉取数据,同时V4向V3,V5并行推送数据,总传输时间为max{623,312,650}=650ms,
从接收完前驱节点的数据,到向其后继节点发送数据,总并行传输时间为360+650=1010ms。如果要是串行去获得取前驱节点数据,再串行向后继节点传输数据,总时间为213+360+623+312+650=2158ms>1010ms,从而混合推拉并行传输减少了一半的传输的时间。
实施例4:如图1-5所示,一种用于分布式环境下的数据传输方法,包括:
(1)获取Vcurrent的前驱节点数PreNum和后继节点数SubNum,Vcurrent根据获取的具体PreNum和SubNum来决定执行哪种传输策略;
(2)传输策略A,当Vcurrent的PreNum==0&&SubNum>=1时执行;
(3)传输策略B,当Vcurrent的PreNum>=1&&SubNum>=1时执行;
(4)传输策略C,当Vcurrent的PreNum>=1&&SubNum==0时执行;
所述方法具体步骤如下:
S1、首先获取Vcurrent的前驱节点数和后继节点数;
一个有向图的定义为:是由有序的二元组(D),D=<V,E>,V={Vx},x=1,2,…,n,V代表图中顶点的非空有限集合;E={<Vx,Vy>},x≠y,x=1,2,…,n;y=1,2,..,n;其中eλ=<Vx,Vy>∈E是一条单向边,Vx为eλ的起点,Vy为eλ的终点;Vcurrent表示当前节点,{u|u∈V且<u,Vcurrent>∈E且u≠Vcurrent}为Vcurrent的前驱节点集合,用Vpre表示;{u|u∈V且<Vcurrent,u>∈E且u≠Vcurrent}为Vcurrent的后继节点集合,用Vnext表示。
分布式环境下节点拓扑结构由以上有向图定义组成,如图5所示。
本发明使用图的邻接矩阵来存储分布式节点拓扑结构图,即用0和1来表示图中相邻节点间的传输关系,0表示两个相邻节点没有传输关系,1表示两个相邻节点有传输关系。然后根据当前节点Vcurrent∈V找到其对应的列,查找值为1对应的行名即为Vcurrent的前驱节点;根据当前节点Vcurrent找到其对应的行,查找值为1对应的列名即为Vcurrent的后继节点。最后获得的前驱节点数(PreNum)即为前驱节点集合Vpre中元素的个数,获得后继节点数(SubNum)即为后继节点集合Vnext中元素的个数。
根据以上有向图的定义,Vpre代表Vcurrent的前驱节点集合,Vnext代表Vcurrent的后继节点集合。Vpre集合中的元素:Vpre={Vpre_t|Vpre_t∈V},t=1,2,…,PreNum;Vnext集合中的元素:Vnext={Vnext_s|Vnext_s∈V},s=1,2,…,SubNum;
表9:
表10:
前驱节点 | V4已经接收到的数据 | 本身的数据 | recLlag |
V1 | null | 5.3 | 0 |
V2 | [10.6,56.4] | null | 1 |
根据表9可知:
获得V1的PreNum=2,SubNum=3;
V4的后继节点集合:Vnext={V3==Vnext_1,V5==Vnext_2,V6==Vnext_3}
V4的前驱节点集合:Vpre={V2==Vpre_1,V4==Vpre_2}
定义Max=100.0,Min=0.0;
S3、如果PreNum>=1&&SubNum>=1,则执行传输策略B:
初始化p=1,k=1,m=1,n=1;保持Vcurrent上一次推送的数据:c_now=0.0;
1)PreNum=2,SubNum=3;(PreNum=2)>=1&&(SubNum=3)>=1,执行2);
12)判断k<=PreNum;1<2;执行13);
13)判断Vpre_k的recFlag是否为0:(Vpre_1的recFlag=0)==0;执行14);
14)向Vpre_k发送“pull”请求拉取数据:拉取到Vpre_1的数据为5.3,将Vpre_1拉取的数据存入receivePullDataList;将Vpre_1的recFlag=1;;k++;执行12);
12)判断k<=PreNum;2=2;执行13);
13)判断Vpre_k的recFlag是否为0:(Vpre_2的recFlag=1)!=0;执行15);
15)将Vpre_k接收到的数据存入receivePushDataList:将Vpre_2的数据[10.6,56.4]存入receivePushDataList;k++;执行12);
12)判断p<=PreNum;3!=2;执行16);
16)判断n<=SubNum;1<3;执行17);
17)并行获取Vcurrent的Vnext_n的拉请求reqFlag:Vnext_1的reqFlag=“pull”;执行18);
18)判断reqFlag==“pull”是否为真:“pull”==“pull”,执行19);
19)Datacurrent和receivePullDataList集合以及receivePushDataList的数据同时被Vnext_n拉取:[10.6,56.4,5.3]被Vnext_1拉取;n++;执行16);
16)判断n<=SubNum;2<3;执行17);
17)并行获取Vcurrent的Vnext_n的拉请求reqFlag:Vnext_2的reqFlag=null;执行18);
18)判断reqFlag==“pull”是否为真:null!=“pull”,执行20);
20)Vcurrent将Datacurrent和receivePullDataList集合以及receivePushDataList中的数据被同时推送到Vnext_n:Vcurrent将[10.6,56.4,5.3]推送到Vnext_2;n++;执行16);
16)判断n<=SubNum;3=3;执行17);
17)并行获取Vcurrent的Vnext_n的拉请求reqFlag:Vnext_3的reqFlag=“pull”;执行18);
18)判断reqFlag==“pull”是否为真:“pull”==“pull”,执行19);
19)Datacurrent和receivePullDataList集合以及receivePushDataList的数据同时被Vnext_n拉取:[10.6,56.4,5.3]被Vnext_1拉取;n++;执行16);
16)判断n<=SubNum;4!=3;执行22);
22)清空两个集合中的数据以及Datacurrent;执行23);
23)结束;
其中,receivePullDataList表示拉数据集合;rceivePushDataList表示接收推数据集合;recFlag表示接收到数据标记recFlag。
表11:
表12:
在该传输实例中,V4本身没有就绪的数据,但也要判断其前驱节点的数据是否接收完毕,V2向V4推送了数据,V4接收并保存,但是没有收到V1的数据,所以向V1发送拉请求,拉取数据,在整个过程中,V2不断向V4推数据的过程中,V4根据自身的情况判断可以同时向V1拉取数据,所以V1、V2与V4的并行传输时间为max{225,156}=225ms。接收完毕之后,V4并行判断V3、V5、V6是否有拉请求,根据实例中V3有拉请求,则V3向V4拉取数据,V6有拉请求,则V6向V4拉取数据,同时V4向V5推送数据,整个传输过程都以并行的方式传输,总传输时间为max{365,200,425}=425ms,
从接收完前驱节点的数据,到向其后继节点发送数据,总并行传输时间为225+425=650ms,如果要是串行去获得取前驱节点数据,再串行向后继节点传输数据,总时间为225+156+365+200+425=1371ms>650ms,从而混合推拉并行传输减少了一半的传输的时间。
实施例5:如图1-5所示,一种用于分布式环境下的数据传输方法,包括:
(1)获取Vcurrent的前驱节点数PreNum和后继节点数SubNum,Vcurrent根据获取的具体PreNum和SubNum来决定执行哪种传输策略;
(2)传输策略A,当Vcurrent的PreNum==0&&SubNum>=1时执行;
(3)传输策略B,当Vcurrent的PreNum>=1&&SubNum>=1时执行;
(4)传输策略C,当Vcurrent的PreNum>=1&&SubNum==0时执行;
所述方法具体步骤如下:
S1、首先获取Vcurrent的前驱节点数和后继节点数;
一个有向图的定义为:是由有序的二元组(D),D=<V,E>,V={Vx},x=1,2,…,n,V代表图中顶点的非空有限集合;E={<Vx,Vy>},x≠y,x=1,2,…,n;y=1,2,..,n;其中eλ=<Vx,Vy>∈E是一条单向边,Vx为eλ的起点,Vy为eλ的终点;Vcurrent表示当前节点,{u|u∈V且<u,Vcurrent>∈E且u≠Vcurrent}为Vcurrent的前驱节点集合,用Vpre表示;{u|u∈V且<Vcurrent,u>∈E且u≠Vcurrent}为Vcurrent的后继节点集合,用Vnext表示。
分布式环境下节点拓扑结构由以上有向图定义组成,如图5所示。
本发明使用图的邻接矩阵来存储分布式节点拓扑结构图,即用0和1来表示图中相邻节点间的传输关系,0表示两个相邻节点没有传输关系,1表示两个相邻节点有传输关系。然后根据当前节点Vcurrent∈V找到其对应的列,查找值为1对应的行名即为Vcurrent的前驱节点;根据当前节点Vcurrent找到其对应的行,查找值为1对应的列名即为Vcurrent的后继节点。最后获得的前驱节点数(PreNum)即为前驱节点集合Vpre中元素的个数,获得后继节点数(SubNum)即为后继节点集合Vnext中元素的个数。
根据以上有向图的定义,Vpre代表Vcurrent的前驱节点集合,Vnext代表Vcurrent的后继节点集合。Vpre集合中的元素:Vpre={Vpre_t|Vpre_t∈V},t=1,2,…,PreNum;Vnext集合中的元素:Vnext={Vnext_s|Vnext_s∈V},s=1,2,…,SubNum;
表13:
表14:
根据表13可知:
获得V1的PreNum=3,SubNum=0;
V7的前驱节点集合:Vpre={V3==Vpre_1,V5==Vpre_2,V6==Vpre_3}
Vnext={null};
定义:Max=100.0,Min=0.0;
S4、如果PreNum==0&&SubNum>=1,则执行传输策略C:
初始化q=1;轮询周期pollTime=5;
1)PreNum=3,SubNum=0;(PreNum=2)>=1&&(SubNum=0)==0),执行2);
2)判断pollTime==0:pollTime=5,5!=0;pollTime--;执行2);
2)判断pollTime==0:pollTime=4,4!=0;pollTime--;执行2);
2)判断pollTime==0:pollTime=3,3!=0;pollTime--;执行2);
2)判断pollTime==0:pollTime=2,2!=0;pollTime--;执行2);
2)判断pollTime==0:pollTime=1,1!=0;pollTime--;执行2);
2)判断pollTime==0:pollTime=0,0=0;pollTime--;执行3);
3)判断q<=PreNum;1<3;执行4);
4)判断Vpre_q的recFlag是否为0:(Vpre_1的recFlag=1)!=0;执行6);
6)将Vpre_q接收到的数据存入receivePushDataList:将Vpre_1的数据[10.6,56.4,5.3]存入receivePushDataList;q++;执行3);
3)判断q<=PreNum;2<3;执行4);
4)判断Vpre_q的recFlag是否为0:(Vpre_2的recFlag=1)!=0;执行6);
6)将Vpre_q接收到的数据存入receivePushDataList:将Vpre_2的数据[10.6,56.4,5.3]存入receivePushDataList;q++;执行3);
3)判断q<=PreNum;3=3;执行4);
4)判断Vpre_q的recFlag是否为0:(Vpre_3的recFlag=0)==0;执行5);
5)向Vpre_q发送“pull”请求拉取数据:拉取到Vpre_3的数据为[10.6,56.4,5.3,25.12],将Vpre_3拉取的数据存入receivePullDataList;将Vpre_3的recFlag=1;q++;执行3);
3)判断q<=PreNum;4!=3;执行7);
7)将receivePushDataList和receivePullDataList集合中的数据插入到数据库,并清空两个集合;轮询周期重置;执行8);
8)结束;
其中,receivePullDataList表示拉数据集合;rceivePushDataList表示接收推数据集合;recFlag表示接收到数据标记recFlag。
表15:
在该传输实例中,当轮询周期结束后判断,V3、V5、V6的数据是否已经被接收到。V7在轮询周期结束之后,V3和V5在接收完其前驱节点的数据的时候,都立即往V7上推送,而V6的还没有接收到,则立即向V6发送拉请求,将V6节点上存在的数据拉取,并存入数据库。
在该传输过程中,V3、V5接收到数据并行推送,与V7向V6拉取数据形成串行传输。总的传输时间为:max{339,457}+500=457+500=957ms。全串行传输339+457+500=1296ms。与全串行传输相比,总传输时间减少近一半。
上面结合附图对本发明的具体实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。
Claims (2)
1.一种用于分布式环境下的数据传输方法,其特征在于:所述方法的具体步骤如下:
S1、首先获取当前节点的前驱节点数PreNum和后继节点数SubNum:将分布式环境下节点拓扑结构由有向图组成,通过有向图的邻接矩阵来存储分布式节点拓扑结构图,根据当前节点Vcurrent∈V找到其在邻接矩阵中对应的列,查找值为1对应的行名即为Vcurrent的前驱节点;根据当前节点Vcurrent找到其在邻接矩阵中对应的行,查找值为1对应的列名即为Vcurrent的后继节点;最后获得的前驱节点数PreNum即为前驱节点集合Vpre中元素的个数,获得后继节点数SubNum即为后继节点集合Vnext中元素的个数;其中,V代表图中顶点的非空有限集合,0表示两个相邻节点没有传输关系,1表示两个相邻节点有传输关系;
S2、如果PreNum=0并且SubNum≥1时,执行步骤S2.0;
S2.0、初始化i=1,j=1,保持Vcurrent上一次推送的数据:c_now=0.0;
S2.1、根据获取的前驱节点数PreNum和后继节点数SubNum,执行S2.2;
S2.2、判断Vcurrent的Datacurrent是否符合推送:如果符合推送,exist=true,执行S2.3;否则,执行S2.8;
S2.3、判断i≤SubNum:如果是,执行S2.4;否则,执行S2.12;
S2.4、并行获取Vcurrent的Vnext_i的拉请求reqFlag;执行S2.5;
S2.5、判断Vnext_i的reqFlag=“pull”:如果是,执行S2.6;否则,执行S2.7;
S2.6、Datacurrent被Vnext_i拉取,i++,执行S2.3;
S2.7、Vcurrent将Datacurrent向Vnext_i进行推送;i++;执行S2.3;
S2.8、判断j≤SubNum:如果是,执行S2.9;否则,执行S2.12;
S2.9、并行获取Vcurrent的Vnext_j的拉请求reqFlag;执行S2.10;
S2.10、判断Vnext_j的reqFlag=“pull”:如果是,执行S2.11;否则,j++,执行S2.8;
S2.11、Datacurrent被Vnext_j拉取;j++;执行S2.8;
S2.12、c_now=Datacurrent;结束;
其中,c_now表示上一次符合推送的被监控资源状态值;Vcurrent表示当前节点,Vpre代表Vcurrent的前驱节点集合,Vnext代表Vcurrent的后继节点集合;Vpre集合中的元素:Vpre={Vpre_t|Vpre_t∈V},t=1,2,…,PreNum;Vnext集合中的元素:Vnext={Vnext_s|Vnext_s∈V},s=1,2,…,SubNum;前驱节点数PreNum即为前驱节点集合Vpre中元素的个数;后继节点数SubNum即为后继节点集合Vnext中元素的个数;exist表示数据就绪标记;reqFlag表示监听拉请求标记,Datacurrent表示Vcurrent获取的当前数据;
S3、如果PreNum≥1并且SubNum≥1时,执行步骤S3.0;
S3.0、初始化p=1,k=1,m=1,n=1;保持Vcurrent上一次推送的数据:c_now=0.0;
S3.1、根据获取的前驱节点数PreNum和后继节点数SubNum,执行S3.2;
S3.2、判断Vcurrent的Datacurrent是否符合推送:如果符合推送,exist=true,执行S3.3;否则,执行S3.12;
S3.3、判断p≤PreNum;如果是,执行S3.4;否则,执行S3.7;
S3.4、判断Vpre_p的recFlag=0:如果是,执行S3.5;否则,执行S3.6;
S3.5、向Vpre_p发送“pull”请求拉取数据,将拉取Vpre_p本身的数据存入receivePullDataList,Vpre_p的recFlag=1,p++;执行S3.3;
S3.6、将Vpre_p接收到的数据存入receivePushDataList;p++;执行S3.3;
S3.7、判断m≤SubNum:如果是,执行S3.8;否则,执行S3.21;
S3.8、并行获取Vcurrent的Vnext_m的拉请求reqFlag,执行S3.9;
S3.9、判断Vnext_m的reqFlag=“pull”:如果是,执行S3.10;否则,执行S3.11;
S3.10、Datacurrent和receivePullDataList集合以及receivePushDataList集合的数据同时被Vnext_m拉取;m++;执行S3.7;
S3.11、Vcurrent将Datacurrent和receivePullDataList集合以及receivePushDataList集合中的数据同时推送到Vnext_m;m++;执行S3.7;
S3.12、判断k≤PreNum:如果是,执行S3.13;否则,执行S3.16;
S3.13、判断Vpre_k的recFlag=0:如果是,执行S3.14;否则,执行S3.15;
S3.14、向Vpre_k发送“pull”请求拉取数据;将拉取Vpre_k的数据存入receivePullDataList;Vpre_k的recFlag=1;k++;执行S3.12;
S3.15、将接收到Vpre_k的数据存入receivePushDataList;k++;执行S3.12;
S3.16、判断n≤SubNum:如果是,执行S3.17;否则,执行S3.22;
S3.17、并行获取Vcurrent的Vnext_n的拉请求reqFlag;执行S3.18;
S3.18、Vnext_n的reqFlag=“pull”:如果是,执行S3.19;否则,执行S3.20;
S3.19、receivePullDataList集合以及receivePushDataList中的数据被Vnext_n拉取;n++;执行S3.16;
S3.20、Vcurrent将receivePullDataList集合以及receivePushDataList中的数据推送到Vnext_n;n++;执行S3.16;
S3.21、c_now=Datacurrent;执行S3.22;
S.22、清空两个集合中的数据以及Datacurrent;执行S.23;
S.23、结束;
其中,receivePullDataList表示拉数据集合;rceivePushDataList表示接收推数据集合;recFlag表示接收到数据标记recFlag;
S4、如果PreNum≥1并且SubNum=0时,执行步骤S4.0;
S4.0、初始化q=1;轮询周期pollTime;
S4.1、根据获取的前驱节点数PreNum和后继节点数SubNum,执行S4.2;
S4.2、判断pollTime=0:如果是,执行S4.3;否则,pollTime--;执行S4.2;
S4.3、判断q≤PreNum:如果是,执行S4.4;否则,执行S4.7;
S4.4、Vpre_q的recFlag=0:如果是,执行S4.5;否则,执行S4.6;
S4.5、向Vpre_q发送“pull”请求拉取数据;将拉取Vpre_q本身的数据存入receivePullDataList;Vpre_q的recFlag=1;q++;执行S4.3;
S4.6、将Vpre_q接收到的数据存入receivePushDataList;q++;执行S4.3;
S4.7、将receivePushDataList和receivePullDataList集合中的数据插入到数据库,并清空两个集合;轮询周期重置;执行S4.8;
S4.8、结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810092907.3A CN108429635B (zh) | 2018-01-31 | 2018-01-31 | 一种用于分布式环境下的数据传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810092907.3A CN108429635B (zh) | 2018-01-31 | 2018-01-31 | 一种用于分布式环境下的数据传输方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108429635A CN108429635A (zh) | 2018-08-21 |
CN108429635B true CN108429635B (zh) | 2021-01-05 |
Family
ID=63156232
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810092907.3A Active CN108429635B (zh) | 2018-01-31 | 2018-01-31 | 一种用于分布式环境下的数据传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108429635B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113190361B (zh) * | 2021-04-21 | 2024-03-26 | 上海东普信息科技有限公司 | 数据传输策略的调整方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20120064969A (ko) * | 2010-12-10 | 2012-06-20 | 한양대학교 산학협력단 | 비디오 청크 분포에 적응적인 푸쉬-풀 혼성 스트리밍 방법 및 장치 |
CN102970164A (zh) * | 2012-11-20 | 2013-03-13 | 无锡成电科大科技发展有限公司 | 一种云平台管理监控系统及方法 |
CN103546327A (zh) * | 2013-11-05 | 2014-01-29 | 重庆邮电大学 | 一种建立基于jxta的混合式拓扑的网络管理模型的方法 |
CN106487601A (zh) * | 2015-08-24 | 2017-03-08 | 中兴通讯股份有限公司 | 资源监控方法、装置及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9203624B2 (en) * | 2012-06-04 | 2015-12-01 | Apple Inc. | Authentication and notification heuristics |
-
2018
- 2018-01-31 CN CN201810092907.3A patent/CN108429635B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20120064969A (ko) * | 2010-12-10 | 2012-06-20 | 한양대학교 산학협력단 | 비디오 청크 분포에 적응적인 푸쉬-풀 혼성 스트리밍 방법 및 장치 |
CN102970164A (zh) * | 2012-11-20 | 2013-03-13 | 无锡成电科大科技发展有限公司 | 一种云平台管理监控系统及方法 |
CN103546327A (zh) * | 2013-11-05 | 2014-01-29 | 重庆邮电大学 | 一种建立基于jxta的混合式拓扑的网络管理模型的方法 |
CN106487601A (zh) * | 2015-08-24 | 2017-03-08 | 中兴通讯股份有限公司 | 资源监控方法、装置及系统 |
Non-Patent Citations (2)
Title |
---|
Designing of routing algorithms in autonomous distributed data transmission system for mobile computing devices with ‘WiFi-Direct’ technology;I A Nikitin 等;《 IOP Conference Series Materials Science and Engineering》;20170201;全文 * |
一种云计算环境下大数据动态迁移策略;张晋芳 等;《计算机工程》;20160515;第13-17页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108429635A (zh) | 2018-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kortsarz et al. | Approximation algorithms for minimum-time broadcast | |
CN106713504B (zh) | 任务处理方法和系统 | |
US20080097994A1 (en) | Method of extracting community and system for the same | |
US8959094B2 (en) | Early return of partial sort results in a database system | |
Lee et al. | Tornadoaggregate: Accurate and scalable federated learning via the ring-based architecture | |
CN111665866B (zh) | 一种基于性能影响算法的多无人机任务分配方法 | |
CN112948885B (zh) | 实现隐私保护的多方协同更新模型的方法、装置及系统 | |
CN109871270B (zh) | 调度方案生成方法及装置 | |
CN106384169A (zh) | 一种基于超启发式算法的卫星任务规划方法 | |
CN112104406B (zh) | 自适应的自主任务规划方法和系统 | |
CN108429635B (zh) | 一种用于分布式环境下的数据传输方法 | |
CN112926827A (zh) | 一种基于性能影响算法的多无人机任务重分配方法 | |
CN112966054A (zh) | 基于企业图谱节点间关系的族群划分方法和计算机设备 | |
CN114139022B (zh) | 子图抽取方法和装置 | |
CN114547439A (zh) | 基于大数据和人工智能的业务优化方法及电子商务ai系统 | |
Asheralieva et al. | Ultra-reliable low-latency slicing in space-air-ground multi-access edge computing networks for next-generation internet of things and mobile applications | |
CN117785490A (zh) | 一种图神经网络模型的训练架构、方法、系统及服务器 | |
CN111026534B (zh) | 云计算环境下基于多种群遗传算法的工作流执行优化方法 | |
CN110022270B (zh) | 具有多种资源类型的资源分配方法和装置 | |
CN108521376B (zh) | 软件定义网络中基于属性相似性的流表设计方法 | |
CN110956553A (zh) | 基于社交网络节点双标签传播算法的社区结构划分方法 | |
CN111813525B (zh) | 一种异构系统工作流调度方法 | |
CN114547440A (zh) | 基于互联网大数据的用户画像挖掘方法及人工智能云系统 | |
CN113190339A (zh) | 任务处理方法和装置 | |
CN111078361A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |