本技术涉及点对点通信领域,特别涉及一种上传调度方法、装置、电子设备及计算机可读存储介质。
背景技术:
1、在点对点网络中(peer-to-peer),提供数据上传服务的节点称为上传节点,向上传节点下载资源的节点称为下载节点。由于上传节点的资源有限,因此在下载节点数量较多时,上传节点仅能向有限的下载节点提供数据上传服务,而其余的下载节点则需要等待。为便于管理,上传节点一般设置有上传队列及等待队列,其中进行数据传输的下载节点可调度至上传队列,而进行等待的下载节点可调度至等待队列。上传节点进而可通过调度方法在上传队列与等待队列间调度下载节点。然而,相关调度方法容易导致较高优先级的下载节点过度占用上传队列,而较低优先级的下载节点始终无法进入上传队列进行数据传输的缺陷。
2、因此,如何在等待队列与上传队列间调度下载节点,以确保较高优先级的下载节点获得更多上传时间,而较低优先级的下载节点不至于等待超时,是本领域技术人员亟需解决的技术问题。
技术实现思路
1、本技术的目的是提供一种上传调度方法、装置、电子设备及计算机可读存储介质,可利用根据下载节点优先级设置的、不为零的上传时间比例,在等待队列与上传队列间调度与各下载节点对应的虚拟通信对象,以确保各优先级的下载节点均可获得所需的上传时间。
2、为解决上述技术问题,本技术提供一种上传调度方法,包括:
3、判断等待队列和上传队列中是否存在满足调度条件的虚拟通信对象;
4、若存在满足调度条件的所述虚拟通信对象,则根据所述虚拟通信对象对应的下载节点的上传时间比例,在所述等待队列与所述上传队列间调度所述虚拟通信对象,以使所述下载节点在所述上传队列中获得的上传时间满足所述上传时间比例的要求;所述上传时间比例根据所述下载节点的优先级设置且不为零。
5、可选地,所述根据所述虚拟通信对象对应的下载节点的上传时间比例,在所述等待队列与所述上传队列间调度所述虚拟通信对象,包括:
6、根据所述上传队列中满足所述调度条件的上传虚拟通信对象的上传时间比例,将所述上传虚拟通信对象调度至所述等待队列;
7、根据所述等待队列中满足所述调度条件的等待虚拟通信对象的上传时间比例,将所述等待虚拟通信对象调度至所述上传队列。
8、可选地,所述根据所述等待队列中满足所述调度条件的等待虚拟通信对象的上传时间比例,将所述等待虚拟通信对象调度至所述上传队列,包括:
9、根据所述等待虚拟通信对象对应的期望上传时间,将所述等待虚拟通信对象调度至所述上传队列,以根据所述期望上传时间与所述等待虚拟传输对象对应的下载节点进行数据上传;所述期望上传时间由所述等待虚拟通信对象的上传时间比例及所述等待虚拟通信对象在所述等待队列中的实际等待时间确定。
10、可选地,所述上传时间比例利用初始上传时间比例和所述下载节点的比例调整率确定;所述初始上传时间比例为根据当前等待队列长度确定的当前上传时间比例;所述比例调整率根据所述下载节点的优先级设置,为所述上传时间比例相较于所述初始上传时间比例所调整的比率。
11、可选地,所述比例调整率为期望比例调整率和最大比例调整率中的最小值;所述期望比例调整率根据所述下载节点的优先级设置;所述最大比例调整率为将优先级低于所述下载节点的更低优先级下载节点的上传时间比例调整为基础上传时间比例时,所述下载节点可对其上传时间比例调整的最大比率;所述基础上传时间比例为根据最大等待队列长度确定的最小上传时间比例。
12、可选地,所述最大比例调整率的确定过程,包括:
13、以如下公式确定将最低优先级下载节点的上传时间比例从所述初始上传时间比例调整为所述基础上传时间比例时,所述最低优先级下载节点可空余出的空余上传队列长度:
14、
15、其中,spareuploadingqueue表示所述空余上传队列长度,uploadingqueuesize表示上传队列长度,waitingqueuesize表示所述当前等待队列长度,maxwaitingqueuesize表示所述最大等待队列长度;
16、利用所述空余上传队列长度、最低优先级下载节点数量及除所述最低优先级下载节点外的其他下载节点的其他下载节点数量以如下公式确定各所述其他下载节点可获得的额外上传队列长度:
17、totalspareuploadingqueue=spareuploadingqueue×lowprioritypeercount;
18、
19、其中,totalspareuploadingqueue表示空余上传队列总长度,lowprioritypeercount表示所述最低优先级下载节点数量,highprioritypeercount表示所述其他下载节点数量,extrauploadingqueue表示所述额外上传队列长度;
20、利用所述额外上传队列长度、所述上传队列长度及所述当前等待队列长度以如下公式确定所述其他下载节点可获得的最大上传时间比例;
21、
22、其中,maxuploadingrate表示所述最大上传时间比例;
23、利用所述初始上传时间比例及所述最大上传时间比例以如下公式确定所述最大比例调整率;
24、
25、其中,maxpromotedrate表示所述最大比例调整率,originaluploadingrate表示所述初始上传时间比例。
26、可选地,所述基础上传时间比例以如下公式确定:
27、
28、其中,uploadingqueuesize表示上传队列长度,maxwaitingqueuesize表示所述最大等待队列长度。
29、可选地,所述最大等待队列长度由如下公式确定:
30、
31、其中,maxwatingtime表示预设最长等待时间,uploadingexpiretime表示预设最短上传时间。
32、可选地,所述初始上传时间比例以如下公式确定:
33、
34、其中,uploadingqueuesize表示上传队列长度,waitingqueuesize表示所述当前等待队列长度。
35、可选地,所述期望比例调整率根据所述下载节点对应的用户优先级信息和/或所述下载节点请求下载的文件优先级信息设置;所述用户优先级信息包括用户身份信息、用户网络条件、用户上传量、用户下载量中任一种或多种的组合。
36、可选地,所述期望比例调整率由节点集合服务下发至所述下载节点,并由所述下载节点周期性发送。
37、可选地,所述根据所述上传队列中满足所述调度条件的上传虚拟通信对象的上传时间比例,将所述上传虚拟通信对象调度至所述等待队列,包括:
38、根据所述上传虚拟通信对象对应的初始积分值,确定所述上传虚拟通信对象在所述等待队列中的插入位置;所述初始积分值由所述上传虚拟通信对象的上传时间比例确定,所述初始积分值与所述上传虚拟通信对象在所述等待队列中的等待时间呈负相关,所述初始积分值越高则所述插入位置越靠近等待队列队首;
39、将所述上传虚拟通信对象调度至所述插入位置。
40、可选地,所述初始积分值的确定过程,包括:
41、利用基础上传时间和上传队列长度以如下公式计算轮转时间:
42、
43、其中,waitingchannelturnovertime表示所述轮转时间,basicuploadingtime表示所述基础上传时间,uploadingqueue表示所述上传队列长度;
44、利用所述轮转时间和当前等待队列长度以如下公式计算初始等待时间:
45、plainwaitingtime=waitingqueuesize×waitingchannelturnovertime;
46、plainwaitingtime表示所述初始等待时间,waitingqueuesize表示所述当前等待队列长度;所述基础上传时间为所述下载节点在所述上传队列中进行数据上传的最短时间;
47、利用所述轮转时间及所述上传时间比例以如下公式计算期望等待时间:
48、
49、expectwaitingtime=expectwaitingqueuesize×waitingchannelturnovertime;
50、其中,expectingqueuesize表示期望等待队列长度,a%表示所述下载节点的比例调整率,所述比例调整率根据所述下载节点的优先级设置,1+a%表示所述上传虚拟通信对象的上传时间比例,expectingwaitingtime表示所述期望等待时间;
51、利用所述期望等待时间、所述初始等待时间和位于所述等待队列队首的队首等待虚拟通信对象的积分值以如下公式计算所述上传虚拟通信对象的初始积分值:
52、
53、其中,score表示所述上传虚拟通信对象的初始积分值,headscore表示所述队首等待虚拟通信对象的积分值,所述积分值由所述队首等待虚拟通信对象的初始积分值及所述队首等待虚拟通信对象在所述等待队列中的实际等待时间确定,所述实际等待时间越长则所述积分值越大。
54、可选地,所述判断等待队列和上传队列中是否存在满足调度条件的虚拟通信对象,包括:
55、判断所述等待队列是否为空;
56、若所述等待队列不为空,则判断所述上传队列中是否存在已耗尽上传时间的上传虚拟通信对象;
57、若存在所述上传虚拟通信对象,则判定所述等待队列和所述上传队列存在满足调度条件的虚拟通信对象;所述满足调度条件的虚拟通信对象为位于所述等待队列队首的等待虚拟通信对象及所述已耗尽上传时间的上传虚拟通信对象。
58、可选地,在判断所述上传队列中是否存在已耗尽上传时间的上传虚拟通信对象之前,还包括:
59、判断位于所述等待队列队首的等待虚拟通信对象在所述等待队列中的实际等待时间是否大于预设阈值;
60、若是,则执行所述判断所述上传队列中是否存在已耗尽上传时间的上传虚拟通信对象的步骤。
61、可选地,所述判断所述上传队列中是否存在已耗尽上传时间的上传虚拟通信对象,包括:
62、向所述上传队列中的各上传虚拟通信对象查询对应的剩余上传时间,并根据所述剩余上传时间判断所述上传队列中是否存在所述已耗尽上传时间的上传虚拟通信对象;所述上传队列中的各上传虚拟通信对象均保存有其对应的剩余上传时间。
63、本技术还提供一种上传调度装置,包括:
64、调度判断模块,用于判断等待队列和上传队列中是否存在满足调度条件的虚拟通信对象;
65、调度模块,用于若存在满足调度条件的所述虚拟通信对象,则根据所述虚拟通信对象对应的下载节点的上传时间比例,在所述等待队列与所述上传队列间调度所述虚拟通信对象,以使所述下载节点在所述上传队列中获得的上传时间满足所述上传时间比例的要求;所述上传时间比例根据所述下载节点的优先级设置且不为零。
66、本技术还提供一种电子设备,包括:
67、存储器,用于存储计算机程序;
68、处理器,用于执行所述计算机程序时实现如上所述的上传调度方法。
69、本技术还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上所述的上传调度方法。
70、本技术提供一种上传调度方法,包括:判断等待队列和上传队列中是否存在满足调度条件的虚拟通信对象;若存在满足调度条件的所述虚拟通信对象,则根据所述虚拟通信对象对应的下载节点的上传时间比例,在所述等待队列与所述上传队列间调度所述虚拟通信对象,以使所述下载节点在所述上传队列中获得的上传时间满足所述上传时间比例的要求;所述上传时间比例根据所述下载节点的优先级设置且不为零。
71、可见,本技术首先可判断等待队列和上传队列中是否存在满足调度条件的虚拟通信对象,若存在则可根据虚拟通信对象对应的下载节点的上传时间比例,在等待队列与上传队列间调度该虚拟通信对象,以使下载节点在上传队列中获得的上传时间满足上传时间比例的要求,其中上传时间比例根据下载节点的优先级设置且不为零,这样,具有更高优先级的下载节点可设置更高的上传时间比例,以获得更多上传时间;而由于上传时间比例并不为零,因此低优先级的下载节点也可获得上传时间,从而便可避免相关调度方法容易导致高优先级节点过度占用上传队列,而低优先级节点始终无法进入上传队列进行数据传输的缺陷。本技术还可提供一种上传调度装置、电子设备及计算机可读存储介质,具有上述有益效果。