CN117201616A - 一种上传调度方法、装置、电子设备及存储介质 - Google Patents
一种上传调度方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117201616A CN117201616A CN202311168034.7A CN202311168034A CN117201616A CN 117201616 A CN117201616 A CN 117201616A CN 202311168034 A CN202311168034 A CN 202311168034A CN 117201616 A CN117201616 A CN 117201616A
- Authority
- CN
- China
- Prior art keywords
- uploading
- queue
- time
- waiting
- upload
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 62
- 241001522296 Erithacus rubecula Species 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 13
- 230000005540 biological transmission Effects 0.000 claims description 10
- 238000003780 insertion Methods 0.000 claims description 7
- 230000037431 insertion Effects 0.000 claims description 7
- 230000002776 aggregation Effects 0.000 claims description 4
- 238000004220 aggregation Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 claims description 3
- 238000004891 communication Methods 0.000 abstract description 10
- 230000007547 defect Effects 0.000 description 5
- 238000001816 cooling Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 238000004904 shortening Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000002222 downregulating effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Landscapes
- Computer And Data Communications (AREA)
Abstract
本申请提供一种上传调度方法、装置、电子设备及存储介质,涉及点对点通信领域,方法包括:判断等待队列和上传队列中是否存在满足调度条件的虚拟通信对象;若存在满足调度条件的虚拟通信对象,则根据虚拟通信对象对应的下载节点的上传时间比例,在等待队列与上传队列间调度虚拟通信对象,以使下载节点在上传队列中获得的上传时间满足上传时间比例的要求;上传时间比例根据下载节点的优先级设置且不为零;可利用根据下载节点优先级设置的、不为零的上传时间比例,在等待队列与上传队列间调度与各下载节点对应的虚拟通信对象,以确保各优先级的下载节点均可获得所需的上传时间。
Description
技术领域
本申请涉及点对点通信领域,特别涉及一种上传调度方法、装置、电子设备及计算机可读存储介质。
背景技术
在点对点网络中(Peer-to-peer),提供数据上传服务的节点称为上传节点,向上传节点下载资源的节点称为下载节点。由于上传节点的资源有限,因此在下载节点数量较多时,上传节点仅能向有限的下载节点提供数据上传服务,而其余的下载节点则需要等待。为便于管理,上传节点一般设置有上传队列及等待队列,其中进行数据传输的下载节点可调度至上传队列,而进行等待的下载节点可调度至等待队列。上传节点进而可通过调度方法在上传队列与等待队列间调度下载节点。然而,相关调度方法容易导致较高优先级的下载节点过度占用上传队列,而较低优先级的下载节点始终无法进入上传队列进行数据传输的缺陷。
因此,如何在等待队列与上传队列间调度下载节点,以确保较高优先级的下载节点获得更多上传时间,而较低优先级的下载节点不至于等待超时,是本领域技术人员亟需解决的技术问题。
发明内容
本申请的目的是提供一种上传调度方法、装置、电子设备及计算机可读存储介质,可利用根据下载节点优先级设置的、不为零的上传时间比例,在等待队列与上传队列间调度与各下载节点对应的虚拟通信对象,以确保各优先级的下载节点均可获得所需的上传时间。
为解决上述技术问题,本申请提供一种上传调度方法,包括:
判断等待队列和上传队列中是否存在满足调度条件的虚拟通信对象;
若存在满足调度条件的所述虚拟通信对象,则根据所述虚拟通信对象对应的下载节点的上传时间比例,在所述等待队列与所述上传队列间调度所述虚拟通信对象,以使所述下载节点在所述上传队列中获得的上传时间满足所述上传时间比例的要求;所述上传时间比例根据所述下载节点的优先级设置且不为零。
可选地,所述根据所述虚拟通信对象对应的下载节点的上传时间比例,在所述等待队列与所述上传队列间调度所述虚拟通信对象,包括:
根据所述上传队列中满足所述调度条件的上传虚拟通信对象的上传时间比例,将所述上传虚拟通信对象调度至所述等待队列;
根据所述等待队列中满足所述调度条件的等待虚拟通信对象的上传时间比例,将所述等待虚拟通信对象调度至所述上传队列。
可选地,所述根据所述等待队列中满足所述调度条件的等待虚拟通信对象的上传时间比例,将所述等待虚拟通信对象调度至所述上传队列,包括:
根据所述等待虚拟通信对象对应的期望上传时间,将所述等待虚拟通信对象调度至所述上传队列,以根据所述期望上传时间与所述等待虚拟传输对象对应的下载节点进行数据上传;所述期望上传时间由所述等待虚拟通信对象的上传时间比例及所述等待虚拟通信对象在所述等待队列中的实际等待时间确定。
可选地,所述上传时间比例利用初始上传时间比例和所述下载节点的比例调整率确定;所述初始上传时间比例为根据当前等待队列长度确定的当前上传时间比例;所述比例调整率根据所述下载节点的优先级设置,为所述上传时间比例相较于所述初始上传时间比例所调整的比率。
可选地,所述比例调整率为期望比例调整率和最大比例调整率中的最小值;所述期望比例调整率根据所述下载节点的优先级设置;所述最大比例调整率为将优先级低于所述下载节点的更低优先级下载节点的上传时间比例调整为基础上传时间比例时,所述下载节点可对其上传时间比例调整的最大比率;所述基础上传时间比例为根据最大等待队列长度确定的最小上传时间比例。
可选地,所述最大比例调整率的确定过程,包括:
以如下公式确定将最低优先级下载节点的上传时间比例从所述初始上传时间比例调整为所述基础上传时间比例时,所述最低优先级下载节点可空余出的空余上传队列长度:
其中,SpareUploadingQueue表示所述空余上传队列长度,UploadingQueueSize表示上传队列长度,WaitingQueueSize表示所述当前等待队列长度,MaxWaitingQueueSize表示所述最大等待队列长度;
利用所述空余上传队列长度、最低优先级下载节点数量及除所述最低优先级下载节点外的其他下载节点的其他下载节点数量以如下公式确定各所述其他下载节点可获得的额外上传队列长度:
TotalSpareUploadingQueue=SpareUploadingQueue×LowPriorityPeerCount;
其中,TotalSpareUploadingQueue表示空余上传队列总长度,LowPriorityPeerCount表示所述最低优先级下载节点数量,HighPriorityPeerCount表示所述其他下载节点数量,ExtraUploadingQueue表示所述额外上传队列长度;
利用所述额外上传队列长度、所述上传队列长度及所述当前等待队列长度以如下公式确定所述其他下载节点可获得的最大上传时间比例;
其中,MaxUploadingRate表示所述最大上传时间比例;
利用所述初始上传时间比例及所述最大上传时间比例以如下公式确定所述最大比例调整率;
其中,MaxPromotedRate表示所述最大比例调整率,OriginalUploadingRate表示所述初始上传时间比例。
可选地,所述基础上传时间比例以如下公式确定:
其中,UploadingQueueSize表示上传队列长度,MaxWaitingQueueSize表示所述最大等待队列长度。
可选地,所述最大等待队列长度由如下公式确定:
其中,MaxWatingTime表示预设最长等待时间,UploadingExpireTime表示预设最短上传时间。
可选地,所述初始上传时间比例以如下公式确定:
其中,UploadingQueueSize表示上传队列长度,WaitingQueueSize表示所述当前等待队列长度。
可选地,所述期望比例调整率根据所述下载节点对应的用户优先级信息和/或所述下载节点请求下载的文件优先级信息设置;所述用户优先级信息包括用户身份信息、用户网络条件、用户上传量、用户下载量中任一种或多种的组合。
可选地,所述期望比例调整率由节点集合服务下发至所述下载节点,并由所述下载节点周期性发送。
可选地,所述根据所述上传队列中满足所述调度条件的上传虚拟通信对象的上传时间比例,将所述上传虚拟通信对象调度至所述等待队列,包括:
根据所述上传虚拟通信对象对应的初始积分值,确定所述上传虚拟通信对象在所述等待队列中的插入位置;所述初始积分值由所述上传虚拟通信对象的上传时间比例确定,所述初始积分值与所述上传虚拟通信对象在所述等待队列中的等待时间呈负相关,所述初始积分值越高则所述插入位置越靠近等待队列队首;
将所述上传虚拟通信对象调度至所述插入位置。
可选地,所述初始积分值的确定过程,包括:
利用基础上传时间和上传队列长度以如下公式计算轮转时间:
其中,WaitingChannelTurnoverTime表示所述轮转时间,BasicUploadingTime表示所述基础上传时间,UploadingQueue表示所述上传队列长度;
利用所述轮转时间和当前等待队列长度以如下公式计算初始等待时间:
PlainWaitingTime=WaitingQueueSize×WaitingChannelTurnoverTime;
PlainWaitingTime表示所述初始等待时间,WaitingQueueSize表示所述当前等待队列长度;所述基础上传时间为所述下载节点在所述上传队列中进行数据上传的最短时间;
利用所述轮转时间及所述上传时间比例以如下公式计算期望等待时间:
ExpectWaitingTime=ExpectWaitingQueueSize×WaitingChannelTurnoverTime;
其中,ExpectingQueueSize表示期望等待队列长度,a%表示所述下载节点的比例调整率,所述比例调整率根据所述下载节点的优先级设置,1+a%表示所述上传虚拟通信对象的上传时间比例,ExpectingWaitingTime表示所述期望等待时间;
利用所述期望等待时间、所述初始等待时间和位于所述等待队列队首的队首等待虚拟通信对象的积分值以如下公式计算所述上传虚拟通信对象的初始积分值:
其中,Score表示所述上传虚拟通信对象的初始积分值,HeadScore表示所述队首等待虚拟通信对象的积分值,所述积分值由所述队首等待虚拟通信对象的初始积分值及所述队首等待虚拟通信对象在所述等待队列中的实际等待时间确定,所述实际等待时间越长则所述积分值越大。
可选地,所述判断等待队列和上传队列中是否存在满足调度条件的虚拟通信对象,包括:
判断所述等待队列是否为空;
若所述等待队列不为空,则判断所述上传队列中是否存在已耗尽上传时间的上传虚拟通信对象;
若存在所述上传虚拟通信对象,则判定所述等待队列和所述上传队列存在满足调度条件的虚拟通信对象;所述满足调度条件的虚拟通信对象为位于所述等待队列队首的等待虚拟通信对象及所述已耗尽上传时间的上传虚拟通信对象。
可选地,在判断所述上传队列中是否存在已耗尽上传时间的上传虚拟通信对象之前,还包括:
判断位于所述等待队列队首的等待虚拟通信对象在所述等待队列中的实际等待时间是否大于预设阈值;
若是,则执行所述判断所述上传队列中是否存在已耗尽上传时间的上传虚拟通信对象的步骤。
可选地,所述判断所述上传队列中是否存在已耗尽上传时间的上传虚拟通信对象,包括:
向所述上传队列中的各上传虚拟通信对象查询对应的剩余上传时间,并根据所述剩余上传时间判断所述上传队列中是否存在所述已耗尽上传时间的上传虚拟通信对象;所述上传队列中的各上传虚拟通信对象均保存有其对应的剩余上传时间。
本申请还提供一种上传调度装置,包括:
调度判断模块,用于判断等待队列和上传队列中是否存在满足调度条件的虚拟通信对象;
调度模块,用于若存在满足调度条件的所述虚拟通信对象,则根据所述虚拟通信对象对应的下载节点的上传时间比例,在所述等待队列与所述上传队列间调度所述虚拟通信对象,以使所述下载节点在所述上传队列中获得的上传时间满足所述上传时间比例的要求;所述上传时间比例根据所述下载节点的优先级设置且不为零。
本申请还提供一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上所述的上传调度方法。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上所述的上传调度方法。
本申请提供一种上传调度方法,包括:判断等待队列和上传队列中是否存在满足调度条件的虚拟通信对象;若存在满足调度条件的所述虚拟通信对象,则根据所述虚拟通信对象对应的下载节点的上传时间比例,在所述等待队列与所述上传队列间调度所述虚拟通信对象,以使所述下载节点在所述上传队列中获得的上传时间满足所述上传时间比例的要求;所述上传时间比例根据所述下载节点的优先级设置且不为零。
可见,本申请首先可判断等待队列和上传队列中是否存在满足调度条件的虚拟通信对象,若存在则可根据虚拟通信对象对应的下载节点的上传时间比例,在等待队列与上传队列间调度该虚拟通信对象,以使下载节点在上传队列中获得的上传时间满足上传时间比例的要求,其中上传时间比例根据下载节点的优先级设置且不为零,这样,具有更高优先级的下载节点可设置更高的上传时间比例,以获得更多上传时间;而由于上传时间比例并不为零,因此低优先级的下载节点也可获得上传时间,从而便可避免相关调度方法容易导致高优先级节点过度占用上传队列,而低优先级节点始终无法进入上传队列进行数据传输的缺陷。本申请还可提供一种上传调度装置、电子设备及计算机可读存储介质,具有上述有益效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例所提供的一种上传调度方法的流程图;
图2为本申请实施例所提供的另一种上传调度方法的流程图;
图3为本申请实施例所提供的一种上传调度装置的结构框图;
图4为本申请实施例所提供的一种电子设备的结构框图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在点对点网络中(Peer-to-peer),提供数据上传服务的节点称为上传节点,向上传节点下载资源的节点称为下载节点。由于上传节点的资源有限,因此在下载节点数量较多时,上传节点仅能向有限的下载节点提供数据上传服务,而其余的下载节点则需要等待。为便于管理,上传节点一般设置有上传队列及等待队列,其中进行数据传输的下载节点可调度至上传队列,而进行等待的下载节点可调度至等待队列。上传节点进而可通过调度方法在上传队列与等待队列间调度下载节点。然而,相关调度方法容易导致较高优先级的下载节点过度占用上传队列,而较低优先级的下载节点始终无法进入上传队列进行数据传输的缺陷。有鉴于此,本申请可提供一种上传调度方法,可利用根据下载节点优先级设置的、不为零的上传时间比例,在等待队列与上传队列间调度与各下载节点对应的虚拟通信对象,以确保各优先级的下载节点均可获得所需的上传时间。
可以理解的是,本方法应用于上传节点。需要说明的是,本申请实施例并不限定上传节点具体部署在何种硬件设备中,例如可以为个人电脑、移动设备(手机、平板电脑)、服务器等,可根据实际应用需求进行设定。
请参考图1,图1为本申请实施例所提供的一种上传调度方法的流程图,该方法可以包括:
S100、判断等待队列和上传队列中是否存在满足调度条件的虚拟通信对象。
在本申请实施例中,虚拟通信对象为与下载节点对应的虚拟对象。上传节点可将虚拟通信对象存放于等待队列和上传队列中,并根据该对象的存放位置来确定其对应的下载节点处于何种状态。例如,当虚拟通信对象处于等待队列时,其对应的下载节点处于等待状态;当虚拟通信对象处于上传队列时,其对应的下载节点处于上传状态。上传节点进一步通过在等待队列和上传队列之间调度各虚拟通信对象的方式来切换各下载节点对应的状态。例如,当虚拟通信对象从上传队列调度至等待队列时,其对应的下载节点从上传状态切换至等待状态;当虚拟通信对象从等待队列调度至上传队列时,其对应的下载节点从等待状态切换至上传状态。进而,上传节点可根据虚拟通信对象所处的位置确定是否向该对象对应的下载节点进行数据上传。例如,当确定虚拟通信对象处于等待队列时,上传节点停止向该虚拟通信对象对应的下载节点进行数据传输,以使下载节点进入等待状态;当确定虚拟通信对象被调度至上传队列时,上传节点开始向该虚拟通信对象对应的下载节点进行数据传输,以使下载节点进入上传状态。进一步,上传节点还可利用虚拟通信对象记录与下载节点相关的信息,例如通信信息及调度信息(如等待时间、上传时间等),以便根据该通信信息与下载节点进行数据上传,以及根据该调度信息在等待队列和上传队列间调度虚拟通信对象。需要说明的是,本申请实施例并不限定具体的通信信息及调度信息,可根据实际应用需求进行设定。
进一步,为避免出现下载节点长期占用上传资源及长期等待的情况,本申请实施例设置了调度条件,以将等待队列和上传队列中满足调度条件的虚拟通信对象及时调度至另一队列。应当指出的是,满足调度条件的虚拟通信对象可以仅出现在等待队列中,也可仅出现在上传队列中,也可同时出现在等待队列和上传队列中。然而,仅对等待队列或上传队列中的虚拟通信对象进行调度,不仅容易浪费上传资源,同时也容易提升调度的复杂度,因此本申请实施例可仅在确定等待队列和上传队列中均存在满足调度条件的虚拟通信对象时,才开始进行调度。需要说明的是,本申请实施例并不限定具体的调度条件,例如该条件可根据虚拟通信对象在等待队列中的实际等待时间及在上传队列中的实际上传时间进行设置;也可以根据虚拟通信对象在等待队列中的位置及在上传队列中的位置进行设置,例如可判断虚拟通信对象是否位于队列队首,若是则判定其满足调度条件;也可以根据等待队列是否为空进行设置,其中当等待队列为空时说明没有任何下载节点处于等待状态,可不进行调度。当然,上述调度条件也可综合多种因素进行设置,可根据实际应用需求进行设置。
进一步,应当指出的是,步骤S100既可以周期性执行,也可实时执行,可根据实际应用需求进行设定。
S200、若存在满足调度条件的虚拟通信对象,则根据虚拟通信对象对应的下载节点的上传时间比例,在等待队列与上传队列间调度虚拟通信对象,以使下载节点在上传队列中获得的上传时间满足上传时间比例的要求;上传时间比例根据下载节点的优先级设置且不为零。
为确保较高优先级的下载节点获得更多的上传时间,而较低优先级的下载节点可获得不为零的上传时间,本申请实施例还可根据虚拟通信对象对应的下载节点的上传时间比例,在等待队列与上传队列间调度该虚拟通信对象,以使下载节点在上传队列中获得的上传时间满足上传时间比例的要求,其中该上传时间比例可根据下载节点的优先级进行设置且不为零。需要说明的是,上传时间比例既可以为上传时间与等待时间之间的比例,也可以为上传时间在由上传时间与等待时间组成的总时间中的比例。显然,上传时间比例越大,则虚拟通信对象所获得的上传时间越多。由于本申请实施例的上传时间比例可根据下载节点的优先级进行设置,因此较高优先级的下载节点可设置较高的上传时间比例,以获得较多的上传时间;而又由于上传时间比例不为零,因此较低优先级的下载节点至少也可以获得不为零的上传时间,以此可保证较低优先级的下载节点也可进行数据上传,从而可避免相关调度方法容易导致较高优先级的下载节点过度占用上传队列,而较低优先级的下载节点始终无法进入上传队列进行数据传输的缺陷。当然,为进一步缩短较低优先级下载节点的等待时间,上传时间比例还可具有上限值,以对较高优先级的下载节点可获得的最大上传时间比例进行限制,从而避免较低优先级的下载节点获得过小的上传时间比例。
需要说明的是,本申请实施例并不限定具体应用于下载节点的优先级机制,可根据实际应用需求进行设定。本申请实施例也不限定上传时间比例的具体设置方式,只要可确保其能够根据下载节点的优先级进行设置,并且始终不为零即可。
进一步,应当指出的是,本申请实施例中对虚拟通信对象的调度过程可包含两个步骤,其一需将上传队列中满足调度条件的上传虚拟通信对象调度至等待队列,以空出上传队列中的位置;其二需将等待队列中满足调度条件的等待虚拟通信对象调度至上传队列。可以理解的是,以上两个调度动作需要顺序执行,且都需要根据对应上传虚拟通信对象的上传时间比例进行。
基于此,根据虚拟通信对象对应的下载节点的上传时间比例,在等待队列与上传队列间调度虚拟通信对象,包括:
S201、根据上传队列中满足调度条件的上传虚拟通信对象的上传时间比例,将上传虚拟通信对象调度至等待队列。
S202、根据等待队列中满足调度条件的等待虚拟通信对象的上传时间比例,将等待虚拟通信对象调度至上传队列。
基于上述实施例,本申请首先可判断等待队列和上传队列中是否存在满足调度条件的虚拟通信对象,若存在则可根据虚拟通信对象对应的下载节点的上传时间比例,在等待队列与上传队列间调度该虚拟通信对象,以使下载节点在上传队列中获得的上传时间满足上传时间比例的要求,其中上传时间比例根据下载节点的优先级设置且不为零,这样,具有更高优先级的下载节点可设置更高的上传时间比例,以获得更多上传时间;而由于上传时间比例并不为零,因此低优先级的下载节点也可获得上传时间,从而便可避免相关调度方法容易导致高优先级节点过度占用上传队列,而低优先级节点始终无法进入上传队列进行数据传输的缺陷。
基于上述实施例,下面将对上传时间比例的确定方式进行详细介绍。首先应当指出的是,虚拟通信对象在等待队列和上传队列中的移动速度是固定的。换句话说,无论是在等待队列还是在上传队列中,虚拟通信对象从移动至当前位置到移动至相邻的下一位置所间隔的时间是固定的。因此,下载节点所获得的上传时间与其虚拟通信对象在上传队列所移动的长度相关,其等待时间与其虚拟通信对象在等待队列所移动的长度相关。例如,当虚拟通信对象在上传队列中所移动的长度越长,则对应下载节点所获得的上传时间越长,反之则对应下载节点所获得的上传时间越短。
在所有下载节点公平享受上传资源的情况下,各下载节点对应的上传时间比例为:
其中,UploadingQueueSize表示上传队列长度,其为固定值,即表明上传队列仅能容纳有限数量的虚拟通信对象;WaitingQueueSize表示当前等待队列长度,其表示等待队列当前容纳的虚拟通信对象的数量,为可变值。例如,当上传队列长度为5,当前等待队列长度为10时,各下载节点对应的上传时间比例为:
以上公式所定义的上传时间比例在本申请实施例中称为初始上传时间比例,即初始上传时间比例为根据当前等待队列长度确定的当前上传时间比例。各下载节点的上传时间比例均可在初始上传时间比例的基础上进行调整。
具体的,上传时间比例利用初始上传时间比例和下载节点的比例调整率确定;初始上传时间比例为根据当前等待队列长度确定的当前上传时间比例;比例调整率根据下载节点的优先级设置,为上传时间比例相较于初始上传时间比例所调整的比率。可以理解的是,比例调整率既可以用于上调下载节点的上传时间比例,也可以用于下调下载节点的上传时间比例。需要说明的是,本申请实施例并不限定该比例调整率的调整方式,只要确保其可与下载节点的优先级相关即可。
进一步,根据初始上传时间比例的计算公式可以看出,调整下载节点的上传时间比例具有两种方式:1、保持其虚拟通信对象在等待队列中所移动的长度不变,而改变其虚拟通信对象在上传队列中所移动的长度,使后一长度大于或小于上传队列长度;2、保持其虚拟通信对象在上传队列中所移动的长度不变,而改变其虚拟通信对象在等待队列中所移动的长度,使后一长度大于或小于当前等待队列长度。进而,本申请实施例可通过缩短较低优先级下载节点的上传时间或延长较低优先级下载节点的等待时间的方式降低较低优先级下载节点的上传时间比例,从而来为较高优先级的下载节点提供更大的上传时间比例。然而,为保证较低优先级下载节点拥有保底的基础上传时间,本申请实施例具体将不会下调较低优先级下载节点的上传时间,仅通过延长较低优先级下载节点的等待时间来为较高优先级下载节点提供更大的上传时间比例。而延长较低优先级下载节点的等待时间显然会增加当前等待队列的长度,因此本申请实施例具体可通过延长当前等待队列长度的方式来为较高优先级下载节点提供更大的上传时间比例。
进一步,可以理解的是,当前等待队列长度越长则各下载节点所需等待的时间越长。为避免出现过长的等待时间,本申请实施例还为等待队列设置了最长等待队列长度,其表示等待队列最多可容纳的虚拟通信对象的数量。因此,各下载节点对上传比例时间的调整不应当突破最长等待队列长度的限制,即下载节点的比例调整率应当不超过最大比例调整率,其中最大比例调整率将根据最长等待队列长度确定得到。
具体的,比例调整率为期望比例调整率和最大比例调整率中的最小值;期望比例调整率根据下载节点的优先级设置;最大比例调整率为将优先级低于下载节点的更低优先级下载节点的上传时间比例调整为基础上传时间比例时,下载节点可对其上传时间比例调整的最大比率;基础上传时间比例为根据最大等待队列长度确定的最小上传时间比例。基础上传时间比例以如下公式确定:
其中,UploadingQueueSize表示上传队列长度,MaxWaitingQueueSize表示最大等待队列长度。最大等待队列长度可由如下公式确定:
其中,MaxWatingTime表示预设最长等待时间,UploadingExpireTime表示预设最短上传时间。换句话说,下载节点的等待时间不应当超过预设最长等待时间。例如,当预设最长等待时间为20秒,预设最短上传时间为5秒,上传队列长度为5,则此时最大等待队列长度为:
而此时基础上传时间比例为:
换句话说,为了上调某一下载节点的上传时间比例,本申请实施例可将优先级低于该下载节点的更低优先级下载节点的上传时间比例调整为基础上传时间比例,从而为该下载节点空闲出部分上传时间比例。应当指出的是,更低优先级下载节点的优先级只要低于需要上调上传时间比例的下载节点即可。例如,假若优先级数值越大则优先级越高,而需要上调上传时间比例的下载节点的优先级为3级,此时更低优先级下载节点的优先级可以为2级和1级,也可以仅为1级,可根据实际应用需求进行设置。
下面将详细介绍最大比例调整率的确定过程。为方便理解,下文将仅对通过下调最低优先级下载节点上传时间比例来上调其他优先级下载节点上传时间比例的情况进行介绍。对于下调多个优先级下载节点的上传时间比例的情况与之类似。具体的,最大比例调整率的确定过程,可以包括:
步骤1:以如下公式确定将最低优先级下载节点的上传时间比例从初始上传时间比例调整为基础上传时间比例时,最低优先级下载节点可空余出的空余上传队列长度:
其中,SpareUploadingQueue表示空余上传队列长度,UploadingQueueSize表示上传队列长度,WaitingQueueSize表示当前等待队列长度,MaxWaitingQueueSize表示最大等待队列长度。
换句话说,空余上传队列长度是指将最低优先级下载节点在等待队列中所移动的长度由当前队列长度修改为最大等待队列长度之后,该下载节点所能空余出的上传队列长度。
空余上传队列长度可采用如下方式推导得到:
1、最低优先级的下载节点的最小上传-等待比为:
2、如果在当前等待队列不变的情况下,令最低优先级下载节点的最小上传队列为LowPriorityMinUploadingQueueSize,其应该满足等式:
即:
3、单个最低优先级下载节点可让出的上传队列大小为:
SpareUploadingQueue=UploadingQueueSize-LowPriorityMinUploadingQueueSize;
即:
步骤2:利用空余上传队列长度、最低优先级下载节点数量及除最低优先级下载节点外的其他下载节点的其他下载节点数量以如下公式确定各其他下载节点可获得的额外上传队列长度:
TotalSpareUploadingQueue=SpareUploadingQueue×LowPriorityPeerCount;
其中,TotalSpareUploadingQueue表示空余上传队列总长度,LowPriorityPeerCount表示最低优先级下载节点数量,HighPriorityPeerCount表示其他下载节点数量,ExtraUploadingQueue表示额外上传队列长度。
在本步骤中,在计算得到单个最低优先级下载节点对应的空余上传队列长度之后,仅需进一步结合最低优先级下载节点数量便可确定所有最低优先级下载节点可空余出的空余上传队列总长度。进而,将空余上传队列总长度与除最低优先级下载节点外的其他下载节点的其他下载节点数量相除,便可得到每个其他下载节点可额外得到的额外上传队列长度。
步骤3:利用额外上传队列长度、上传队列长度及当前等待队列长度以如下公式确定其他下载节点可获得的最大上传时间比例;
其中,MaxUploadingRate表示最大上传时间比例。
在本步骤中,将其他下载节点额外得到的额外上传队列长度与上传队列长度进行累加,便得到了其他下载节点可在上传队列中移动的总长度。同理,将额外上传队列长度、上传队列长度及当前等待队列长度进行累加,便可便得到了其他下载节点可在上传队列及等待队列中移动的总长度,从而便可计算得到其他下载节点所能获得的最大上传时间比例。显然,最大上传时间比例将不会突破最大等待队列长度的限制。
步骤4:利用初始上传时间比例及最大上传时间比例以如下公式确定最大比例调整率;
其中,MaxPromotedRate表示最大比例调整率,OriginalUploadingRate表示初始上传时间比例。
下面以一种具体的示例介绍上述最大比例调整率的确定过程。若上传队列长度为5,当前等待队列为10,最大等待队列长度为20,在上传节点当前所记录的15个下载节点中仅存在两种优先级,其中5个下载节点为高优先级节点,10个下载节点为低优先级节点,则空余上传队列长度可采用如下方式计算得到:
1、最低优先级的下载节点的最小上传-等待比为:
2、如果在当前等待队列不变的情况下,令最低优先级下载节点的最小上传队列为LowPriorityMinUploadingQueueSize,其应该满足等式:
即:
可得:
3、单个最低优先级下载节点可让出的上传队列大小为:
SpareUploadingQueue=UploadingQueueSize-LowPriorityMinUploadingQueueSize;
=5-2.5=2.5
即:
最大比例调整率的确定过程如下:
步骤1:以如下公式确定将最低优先级下载节点的上传时间比例从初始上传时间比例调整为基础上传时间比例时,最低优先级下载节点可空余出的空余上传队列长度:
步骤2:利用空余上传队列长度、最低优先级下载节点数量及除最低优先级下载节点外的其他下载节点的其他下载节点数量以如下公式确定各其他下载节点可获得的额外上传队列长度:
/>
步骤3:利用额外上传队列长度、上传队列长度及当前等待队列长度以如下公式确定其他下载节点可获得的最大上传时间比例;
步骤4:利用初始上传时间比例及最大上传时间比例以如下公式确定最大比例调整率;
在得到了最大比例调整率之后,仅需将期望比例调整率和最大比例调整率中的最小值设置为下载节点实际的比例调整率即可,表示为:
PracticalPromotionRate=min(ExpectedPromotionRate,MaxPromotionRate);
其中,PracticalPromotionRate表示比例调整率,ExpectedPromotedRate表示期望比例调整率,MaxPromotedRate表示最大比例调整率。例如当期望比例调整率为60%,而最大比例调整率为50%时,比例调整率为50%。
需要注意的是,下载节点对应的虚拟通信对象在上传队列中移动的距离可能超过上传队列长度,此时可将已到达上传队列队首的虚拟通信对象重新放入上传队列,以延长其在上传队列中停留的时间。
进一步,需要说明的是,本申请实施例并不限定期望比例调整率的设置方式,例如期望比例调整率根据下载节点对应的用户优先级信息进行设置,其中用户优先级信息包括用户身份信息、用户网络条件、用户上传量、用户下载量中任一种或多种的组合;也可以根据下载节点请求下载的文件优先级信息设置,也可以同时根据用户优先级信息及文件优先级信息进行设置。例如,期望比例调整率可根据如下公式确定:
其中,PromotionRate表示期望比例调整率,FilePriority为通过文件的稀缺程度、用户身份等得到的一个基础优先级,UploadingBytes表示用户上传量,DownloadingBytes表示用户下载量,DownloadingBytesThreshold表示用户下载量阈值。
例如,当FilePriority的数值为10,UploadingBytes为25G,DownloadingBytes为18G,DownloadingBytesThreshold为20G,则期望比例调整率可以为:
进一步,期望比例调整率也可由节点集合服务(phub)进行计算及下发至下载节点,并由下载节点周期性发送给上传节点。除此以外,下载节点还可周期性给上传节点发送下载进度等信息。
基于上述实施例,下面详细介绍将虚拟通信对象从等待队列调度至上传队列的具体方式。在一种可能的情况中,根据等待队列中满足调度条件的等待虚拟通信对象的上传时间比例,将等待虚拟通信对象调度至上传队列,可以包括:
S2011、根据等待虚拟通信对象对应的期望上传时间,将等待虚拟通信对象调度至上传队列,以根据期望上传时间与等待虚拟传输对象对应的下载节点进行数据上传;期望上传时间由等待虚拟通信对象的上传时间比例及等待虚拟通信对象在等待队列中的实际等待时间确定。
在本申请实施例中,等待虚拟通信对象在被调度至上传队列时,将被分配一个期望上传时间。该期望上传时间规定了在等待队列不为空的条件下,等待虚拟通信对象可在上传队列中停留多久,即为确保处于等待状态的下载节点也能获取到上传资源,上传节点仅能为该等待虚拟通信对象对应的下载节点提供时长为期望上传时间的上传服务。该期望上传时间进一步由等待虚拟通信对象的上传时间比例及其在等待队列中的实际等待时间确定。换句话说,等待虚拟通信对象的期望上传时间在由该期望上传时间和等待虚拟通信对象的实际等待时间所组成的总时间中的占比应当满足等待虚拟通信对象的上传时间比例。
基于上述实施例,下面详细介绍将虚拟通信对象从上传队列调度至等待队列的具体方式。在一种可能的情况中,根据上传队列中满足调度条件的上传虚拟通信对象的上传时间比例,将上传虚拟通信对象调度至等待队列,可以包括:
S2021、根据上传虚拟通信对象对应的初始积分值,确定上传虚拟通信对象在等待队列中的插入位置;初始积分值由上传虚拟通信对象的上传时间比例确定,初始积分值与上传虚拟通信对象在等待队列中的等待时间呈负相关,初始积分值越高则插入位置越靠近等待队列队首。
为缩短较高优先级的下载节点对应的等待时间,本申请实施例还可根据各下载节点对应的上传时间比例,为确定其对应的上传虚拟通信对象对应的初始积分值,以根据该初始积分值将该上传虚拟通信对象插入至等待队列。其中初始积分值与上传虚拟通信对象在等待队列中的等待时间呈负相关,换句话说,初始积分值越高则插入位置越靠近等待队列队首。进而,对于拥有较高初始积分值的虚拟通信对象,其在等待队列中所需移动的距离将变短,进而其在等待队列中的等待时间便可缩短。需要说明的是,本申请实施例并不限定初始积分值的计算方式,可根据实际应用需求进行设定。
S2022、将上传虚拟通信对象调度至插入位置。
下面将详细介绍初始积分值的具体计算方式。具体的,初始积分值的确定过程,可以包括:
步骤1:利用基础上传时间和上传队列长度以如下公式计算轮转时间:
其中,WaitingChannelTurnoverTime表示轮转时间,BasicUploadingTime表示基础上传时间,UploadingQueue表示上传队列长度。
轮转时间即指虚拟通信对象从移动至队列的当前位置至移动至相邻的下一位置的间隔时间。
步骤2:利用轮转时间和当前等待队列长度以如下公式计算初始等待时间:
PlainWaitingTime=WaitingQueueSize×WaitingChannelTurnoverTime;
PlainWaitingTime表示初始等待时间,WaitingQueueSize表示当前等待队列长度;基础上传时间为下载节点在上传队列中进行数据上传的最短时间。
可以理解的是,初始等待时间即为虚拟通信对象在等待队列中完整排队所需消耗的时长。
步骤3:利用轮转时间及上传时间比例以如下公式计算期望等待时间:
ExpectWaitingTime=ExpectWaitingQueueSize×WaitingChannelTurnoverTime;
其中,ExpectingQueueSize表示期望等待队列长度,a%表示下载节点的比例调整率,比例调整率根据下载节点的优先级设置,1+a%表示上传虚拟通信对象的上传时间比例,ExpectingWaitingTime表示期望等待时间。关于下载节点的比例调整率的确定方式,可参考上述实施例,此处不再赘述。
如上所述,对下载节点上传时间比例的调整也可通过缩短其虚拟通信对象在等待队列中的移动距离的方式实现,而上述期望等待队列长度即表示虚拟通信对象在等待队列中缩短后的移动距离。
期望等待队列长度的推导方式如下:
在缩短虚拟通信对象在等待队列中缩短后的移动距离之后,该虚拟通信对象调整后的上传时间比例与初始时间比例之间应当满足:
其中,a%表示下载节点的比例调整率,部分表示初始上传时间比例,/>部分表示调整后的上传时间比例。对此等式进行推导,即可以得到:
例如,当基础上传时间为5秒,上传队列长度为5,当前等待队列长度为10,虚拟通信对象对应的下载节点的比例调整率为10%,则该虚拟通信对象调整后的上传时间比例与初始时间比例之间应当满足:
则期望等待队列长度为:
步骤4:利用期望等待时间、初始等待时间和位于等待队列队首的队首等待虚拟通信对象的积分值以如下公式计算上传虚拟通信对象的初始积分值:
其中,Score表示上传虚拟通信对象的初始积分值,HeadScore表示队首等待虚拟通信对象的积分值,积分值由队首等待虚拟通信对象的初始积分值及队首等待虚拟通信对象在等待队列中的实际等待时间确定,实际等待时间越长则积分值越大。值得注意的是,当a%为0时,由于期望等待队列长度与当前等待队列长度相同,期待等待时间与初始等待时间相同,因此上传虚拟通信对象的初始积分值为零。可见,等待队列队尾的上传虚拟通信对象的初始积分值为0。进而,只要上传虚拟通信对象的初始积分值大于零,则其将不位于队尾,而将位于队伍中部或队首。
应当指出的是,等待队列中的各等待虚拟通信对象拥有两部分积分,其一为初始积分值,其二为根据其在等待队列中的实际等待时间所确定的子积分值,两部分组合得到等待虚拟通信对象总的积分值。可见,等待队列中的等待虚拟通信对象对应的等待时间越长,在等待队列中的位置越靠前,其积分值越高,这便保证了待插入的上传虚拟通信对象的初始积分值越高,其在等待队列中的位置越靠近队首。
下面以一种具体的示例介绍上述初始积分值的确定过程。例如,当基础上传时间为5秒,上传队列长度为5,当前等待队列长度为10,上传虚拟通信对象对应的下载节点的比例调整率为10%,队首等待虚拟通信对象的积分值为20时,则上传虚拟通信对象的初始积分值通过以下步骤计算:
步骤1:利用基础上传时间和上传队列长度以如下公式计算轮转时间:
可见,轮转时间为1秒。
步骤2:利用轮转时间和当前等待队列长度以如下公式计算初始等待时间:
可见,初始等待时间为10秒。
步骤3:利用轮转时间及上传时间比例以如下公式计算期望等待时间:
ExpectWaitingTime==9E×x1p=ec9tWaitingQueueSize×WaitingChannelTurnoverTime;
可见,期待等待队列长度约等于9,而期待等待时间约等于9秒。
步骤4:利用期望等待时间、初始等待时间和位于等待队列队首的队首等待虚拟通信对象的积分值以如下公式计算上传虚拟通信对象的初始积分值:
可见,此时上传虚拟通信对象的初始积分值为2.2。如上所述,由于等待队列队尾的上传虚拟通信对象的初始积分值为0,因此可知初始积分值为2.2的上传虚拟通信对象并不位于等待队列队尾,而处于等待队列的中间位置,即初始积分值为2.2的上传虚拟通信对象在等待队列中的等待时间已缩短。
基于上述实施例,下面对本申请实施例所采用的调度条件进行详细介绍。为达到较好的调度效果,本申请实施例所选择的一种调度条件可以为:判断等待队列是否为空,若是,则无需进行调度;若否,则进一步判断上传队列中是否存在已耗尽上传时间的虚拟通信对象,若不存在,则无需进行调度;若存在,则说明等待队列和上传队列中存在满足调度条件的虚拟通信对象,分别为位于等待队列队首的虚拟通信对象和上传队列中已耗尽上传时间的虚拟通信对象。当然,应当指出的是,本申请所选用的该调度条件也仅是其在本申请实施例中的基本形式,其还可以进一步调整以满足其他需求。
基于此,判断等待队列和上传队列中是否存在满足调度条件的虚拟通信对象,包括:
S101、判断等待队列是否为空;若是,则判定等待队列和上传队列中不存在满足调度条件的虚拟通信对象;若否,则进入S102;
S102、判断上传队列中是否存在已耗尽上传时间的上传虚拟通信对象;若存在,则进入S103;若不存在,则判定等待队列和上传队列中不存在满足调度条件的虚拟通信对象;
S103、判定等待队列和上传队列存在满足调度条件的虚拟通信对象;满足调度条件的虚拟通信对象为位于等待队列队首的等待虚拟通信对象及已耗尽上传时间的上传虚拟通信对象。
可以理解的是,等待虚拟通信对象指等待队列中的虚拟通信对象,而上传虚拟通信对象指上传队列中的虚拟通信对象。
进一步,需要说明的是,本申请实施例并不限定如何确定上传队列中是否存在已耗尽上传时间的上传虚拟通信对象,例如可采用独立模块记录上传队列中各个上传虚拟通信对象的实际上传时间,并根据该实际上传时间与该上传虚拟通信对象的期望上传时间来确定该上传虚拟通信对象是否已耗尽上传时间,其中上传虚拟通信对象仅能在上传队列中停留期望上传时间。当然,也可以由上传虚拟通信对象自行记录其对应的剩余上传时间,进而上传节点仅需从各上传虚拟通信对象中获取剩余上传时间,即可确定上传队列中是否存在已耗尽上传时间的上传虚拟通信对象。
基于此,判断上传队列中是否存在已耗尽上传时间的上传虚拟通信对象,可以包括:
S1021、向上传队列中的各上传虚拟通信对象查询对应的剩余上传时间,并根据剩余上传时间判断上传队列中是否存在已耗尽上传时间的上传虚拟通信对象;上传队列中的各上传虚拟通信对象均保存有其对应的剩余上传时间。
进一步,考虑到在等待队列较为空闲时,容易出现虚拟通信对象仅在等待队列中等待较短时间,便被立刻调回上传队列的情况,进而导致等待队列与上传队列间的频繁地进行虚拟通信对象交换,容易增加设备性能损耗。为避免这种情况,本申请还可在等待队列中设置一个预设阈值,用于限制虚拟通信对象在等待队列中的最短等待时间。即,虚拟通信对象仅可在实际等待时间大于该预设阈值时,才可被调度至上传节点。基于此,本申请实施例还可对上述调度条件作进一步改进,即在确定等待队列不为空之后,需进一步判断位于等待队列队首的等待虚拟通信对象在等待队列中的实际等待时间是否大于预设阈值,并仅在确定等待队列队首的等待虚拟通信对象的实际等待时间大于预设阈值时,才进一步执行判断上传队列中是否存在已耗尽上传时间的上传虚拟通信对象的步骤。
基于此,在判断上传队列中是否存在已耗尽上传时间的上传虚拟通信对象之前,还可以包括:
S104、判断位于等待队列队首的等待虚拟通信对象在等待队列中的实际等待时间是否大于预设阈值;若是,则执行判断上传队列中是否存在已耗尽上传时间的上传虚拟通信对象的步骤;若否,则判定等待队列和上传队列中不存在满足调度条件的虚拟通信对象。
基于上述实施例,下面请参考图2,图2为本申请实施例所提供的另一种上传调度方法的流程图。下面将基于该流程图对本方法进行完整介绍。
每隔一个固定时间执行以下动作:
1.检查等待队列是不是为空,如果为空说明则无需调度;
2.如果有不空的等待队列,则判断等待队列中是否存在不处于冷却期的等待虚拟通信对象(WaitingChannel),其中处于冷却期的等待虚拟通信对象指在等待队列中的实际等待时间不超过预设阈值的等待虚拟通信对象;
3.如果存在不处于冷却期的等待虚拟通信对象,则在上传队列中查找是否有到期的上传虚拟通信对象(ExpiredUploadingChannel),方式是直接询问各个上传虚拟通信对象;
4.如果有到期的上传虚拟通信对象,则将到期的上传虚拟通信对象移出上传队列,计算该上传虚拟通信对象的积分,再根据积分决定其放到等待队列的哪一位置,然后将等待队列中排名最靠前的、未处于冷却期的等待虚拟通信对象移到上传队列,同时根据此时该等待虚拟通信对象的等待时间和上传比例计算该等待虚拟通信对象应该对用的上传时间,然后把上传时间告知该等待虚拟通信对象并由该等待虚拟通信对象存储。
下面对本申请实施例提供的上传调度装置、电子设备及计算机可读存储介质进行介绍,下文描述的上传调度装置、电子设备及计算机可读存储介质与上文描述的上传调度方法可相互对应参照。
请参考图3,图3为本申请实施例所提供的一种上传调度装置的结构框图,该装置可以包括:
调度判断模块301,用于判断等待队列和上传队列中是否存在满足调度条件的虚拟通信对象;
调度模块302,用于若存在满足调度条件的虚拟通信对象,则根据虚拟通信对象对应的下载节点的上传时间比例,在等待队列与上传队列间调度虚拟通信对象,以使下载节点在上传队列中获得的上传时间满足上传时间比例的要求;上传时间比例根据下载节点的优先级设置且不为零。
可选地,调度模块302,可以包括:
第一调度子模块,用于根据上传队列中满足调度条件的上传虚拟通信对象的上传时间比例,将上传虚拟通信对象调度至等待队列;
第二调度子模块,用于根据等待队列中满足调度条件的等待虚拟通信对象的上传时间比例,将等待虚拟通信对象调度至上传队列。
可选地,第二调度子模块,具体用于:
根据等待虚拟通信对象对应的期望上传时间,将等待虚拟通信对象调度至上传队列,以根据期望上传时间与等待虚拟传输对象对应的下载节点进行数据上传;期望上传时间由等待虚拟通信对象的上传时间比例及等待虚拟通信对象在等待队列中的实际等待时间确定。
可选地,上传时间比例利用初始上传时间比例和下载节点的比例调整率确定;初始上传时间比例为根据当前等待队列长度确定的当前上传时间比例;比例调整率根据下载节点的优先级设置,为上传时间比例相较于初始上传时间比例所调整的比率。
可选地,比例调整率为期望比例调整率和最大比例调整率中的最小值;期望比例调整率根据下载节点的优先级设置;最大比例调整率为将优先级低于下载节点的更低优先级下载节点的上传时间比例调整为基础上传时间比例时,下载节点可对其上传时间比例调整的最大比率;基础上传时间比例为根据最大等待队列长度确定的最小上传时间比例。
可选地,最大比例调整率的确定过程,包括:
以如下公式确定将最低优先级下载节点的上传时间比例从初始上传时间比例调整为基础上传时间比例时,最低优先级下载节点可空余出的空余上传队列长度:
其中,SpareUploadingQueue表示空余上传队列长度,UploadingQueueSize表示上传队列长度,WaitingQueueSize表示当前等待队列长度,MaxWaitingQueueSize表示最大等待队列长度;
利用空余上传队列长度、最低优先级下载节点数量及除最低优先级下载节点外的其他下载节点的其他下载节点数量以如下公式确定各其他下载节点可获得的额外上传队列长度:
TotalSpareUploadingQueue=SpareUploadingQueue×LowPriorityPeerCount;
其中,TotalSpareUploadingQueue表示空余上传队列总长度,LowPriorityPeerCount表示最低优先级下载节点数量,HighPriorityPeerCount表示其他下载节点数量,ExtraUploadingQueue表示额外上传队列长度;
利用额外上传队列长度、上传队列长度及当前等待队列长度以如下公式确定其他下载节点可获得的最大上传时间比例;
其中,MaxUploadingRate表示最大上传时间比例;
利用初始上传时间比例及最大上传时间比例以如下公式确定最大比例调整率;
其中,MaxPromotedRate表示最大比例调整率,OriginalUploadingRate表示初始上传时间比例。
可选地,基础上传时间比例以如下公式确定:
其中,UploadingQueueSize表示上传队列长度,MaxWaitingQueueSize表示最大等待队列长度。
可选地,最大等待队列长度由如下公式确定:
其中,MaxWatingTime表示预设最长等待时间,UploadingExpireTime表示预设最短上传时间。
可选地,初始上传时间比例以如下公式确定:
其中,UploadingQueueSize表示上传队列长度,WaitingQueueSize表示当前等待队列长度。
可选地,期望比例调整率根据下载节点对应的用户优先级信息和/或下载节点请求下载的文件优先级信息设置;用户优先级信息包括用户身份信息、用户网络条件、用户上传量、用户下载量中任一种或多种的组合。
可选地,期望比例调整率由节点集合服务下发至下载节点,并由下载节点周期性发送。
可选地,第一调度子模块,可以包括:
插入位置确定单元,用于根据上传虚拟通信对象对应的初始积分值,确定上传虚拟通信对象在等待队列中的插入位置;初始积分值由上传虚拟通信对象的上传时间比例确定,初始积分值与上传虚拟通信对象在等待队列中的等待时间呈负相关,初始积分值越高则插入位置越靠近等待队列队首;
插入单元,用于将上传虚拟通信对象调度至插入位置。
可选地,初始积分值的确定过程,包括:
利用基础上传时间和上传队列长度以如下公式计算轮转时间:
其中,WaitingChannelTurnoverTime表示轮转时间,BasicUploadingTime表示基础上传时间,UploadingQueue表示上传队列长度;
利用轮转时间和当前等待队列长度以如下公式计算初始等待时间:
PlainWaitingTime=WaitingQueueSize×WaitingChannelTurnoverTime;
PlainWaitingTime表示初始等待时间,WaitingQueueSize表示当前等待队列长度;基础上传时间为下载节点在上传队列中进行数据上传的最短时间;
利用轮转时间及上传时间比例以如下公式计算期望等待时间:
ExpectWaitingTime=ExpectWaitingQueueSize×WaitingChannelTurnoverTime;
其中,ExpectingQueueSize表示期望等待队列长度,a%表示下载节点的比例调整率,比例调整率根据下载节点的优先级设置,1+a%表示上传虚拟通信对象的上传时间比例,ExpectingWaitingTime表示期望等待时间;
利用期望等待时间、初始等待时间和位于等待队列队首的队首等待虚拟通信对象的积分值以如下公式计算上传虚拟通信对象的初始积分值:
其中,Score表示上传虚拟通信对象的初始积分值,HeadScore表示队首等待虚拟通信对象的积分值,积分值由队首等待虚拟通信对象的初始积分值及队首等待虚拟通信对象在等待队列中的实际等待时间确定,实际等待时间越长则积分值越大。
可选地,调度判断模块301,可以包括:
第一判断子模块,用于判断等待队列是否为空;若等待队列不为空则调用第二判断子模块;
第二判断子模块,判断上传队列中是否存在已耗尽上传时间的上传虚拟通信对象;若存在上传虚拟通信对象,则判定等待队列和上传队列存在满足调度条件的虚拟通信对象;满足调度条件的虚拟通信对象为位于等待队列队首的等待虚拟通信对象及已耗尽上传时间的上传虚拟通信对象。
可选地,调度判断模块301,还可以包括:
第三判断子模块,用于判断位于等待队列队首的等待虚拟通信对象在等待队列中的实际等待时间是否大于预设阈值;若是,则调用第二判断子模块。
可选地,第二判断子模块,具体用于:
向上传队列中的各上传虚拟通信对象查询对应的剩余上传时间,并根据剩余上传时间判断上传队列中是否存在已耗尽上传时间的上传虚拟通信对象;上传队列中的各上传虚拟通信对象均保存有其对应的剩余上传时间。
进一步的,本申请实施例还提供了一种电子设备。图4是根据一示例性实施例示出的电子设备20的结构图,图中的内容不能认为是对本申请的使用范围的任何限制。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的上传调度方法中的相关步骤。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222及数据223等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的上传调度方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
进一步的,本申请实施例还公开了一种计算机可读存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,实现前述任一实施例公开的上传调度方法的步骤。
由于计算机可读存储介质部分的实施例与上传调度方法部分的实施例相互对应,因此计算机可读存储介质部分的实施例请参见上传调度方法部分的实施例的描述,这里不再赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的一种上传调度方法、装置、电子设备及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
Claims (19)
1.一种上传调度方法,其特征在于,包括:
判断等待队列和上传队列中是否存在满足调度条件的虚拟通信对象;
若存在满足调度条件的所述虚拟通信对象,则根据所述虚拟通信对象对应的下载节点的上传时间比例,在所述等待队列与所述上传队列间调度所述虚拟通信对象,以使所述下载节点在所述上传队列中获得的上传时间满足所述上传时间比例的要求;所述上传时间比例根据所述下载节点的优先级设置且不为零。
2.根据权利要求1所述的上传调度方法,其特征在于,所述根据所述虚拟通信对象对应的下载节点的上传时间比例,在所述等待队列与所述上传队列间调度所述虚拟通信对象,包括:
根据所述上传队列中满足所述调度条件的上传虚拟通信对象的上传时间比例,将所述上传虚拟通信对象调度至所述等待队列;
根据所述等待队列中满足所述调度条件的等待虚拟通信对象的上传时间比例,将所述等待虚拟通信对象调度至所述上传队列。
3.根据权利要求2所述的上传调度方法,其特征在于,所述根据所述等待队列中满足所述调度条件的等待虚拟通信对象的上传时间比例,将所述等待虚拟通信对象调度至所述上传队列,包括:
根据所述等待虚拟通信对象对应的期望上传时间,将所述等待虚拟通信对象调度至所述上传队列,以根据所述期望上传时间与所述等待虚拟传输对象对应的下载节点进行数据上传;所述期望上传时间由所述等待虚拟通信对象的上传时间比例及所述等待虚拟通信对象在所述等待队列中的实际等待时间确定。
4.根据权利要求3所述的上传调度方法,其特征在于,所述上传时间比例利用初始上传时间比例和所述下载节点的比例调整率确定;所述初始上传时间比例为根据当前等待队列长度确定的当前上传时间比例;所述比例调整率根据所述下载节点的优先级设置,为所述上传时间比例相较于所述初始上传时间比例所调整的比率。
5.根据权利要求4所述的上传调度方法,其特征在于,所述比例调整率为期望比例调整率和最大比例调整率中的最小值;所述期望比例调整率根据所述下载节点的优先级设置;所述最大比例调整率为将优先级低于所述下载节点的更低优先级下载节点的上传时间比例调整为基础上传时间比例时,所述下载节点可对其上传时间比例调整的最大比率;所述基础上传时间比例为根据最大等待队列长度确定的最小上传时间比例。
6.根据权利要求5所述的上传调度方法,其特征在于,所述最大比例调整率的确定过程,包括:
以如下公式确定将最低优先级下载节点的上传时间比例从所述初始上传时间比例调整为所述基础上传时间比例时,所述最低优先级下载节点可空余出的空余上传队列长度:
其中,SpareUploadingQueue表示所述空余上传队列长度,UploadingQueueSize表示上传队列长度,WaitingQueueSize表示所述当前等待队列长度,MaxWaitingQueueSize表示所述最大等待队列长度;
利用所述空余上传队列长度、最低优先级下载节点数量及除所述最低优先级下载节点外的其他下载节点的其他下载节点数量以如下公式确定各所述其他下载节点可获得的额外上传队列长度:
TotalSpareUploadingQueue=SpareUploadingQueue×LowPriorityPeerCount;
其中,TotalSpareUploadingQueue表示空余上传队列总长度,LowPriorityPeerCount表示所述最低优先级下载节点数量,HighPriorityPeerCount表示所述其他下载节点数量,ExtraUploadingQueue表示所述额外上传队列长度;
利用所述额外上传队列长度、所述上传队列长度及所述当前等待队列长度以如下公式确定所述其他下载节点可获得的最大上传时间比例;
其中,MaxUploadingRate表示所述最大上传时间比例;
利用所述初始上传时间比例及所述最大上传时间比例以如下公式确定所述最大比例调整率;
其中,MaxPromotedRate表示所述最大比例调整率,OriginalUploadingRate表示所述初始上传时间比例。
7.根据权利要求5所述的上传调度方法,其特征在于,所述基础上传时间比例以如下公式确定:
其中,UploadingQueueSize表示上传队列长度,MaxWaitingQueueSize表示所述最大等待队列长度。
8.根据权利要求7所述的上传调度方法,其特征在于,所述最大等待队列长度由如下公式确定:
其中,MaxWatingTime表示预设最长等待时间,UploadingExpireTime表示预设最短上传时间。
9.根据权利要求4所述的上传调度方法,其特征在于,所述初始上传时间比例以如下公式确定:
其中,UploadingQueueSize表示上传队列长度,WaitingQueueSize表示所述当前等待队列长度。
10.根据权利要求5所述的上传调度方法,其特征在于,所述期望比例调整率根据所述下载节点对应的用户优先级信息和/或所述下载节点请求下载的文件优先级信息设置;所述用户优先级信息包括用户身份信息、用户网络条件、用户上传量、用户下载量中任一种或多种的组合。
11.根据权利要求5所述的上传调度方法,其特征在于,所述期望比例调整率由节点集合服务下发至所述下载节点,并由所述下载节点周期性发送。
12.根据权利要求2所述的上传调度方法,其特征在于,所述根据所述上传队列中满足所述调度条件的上传虚拟通信对象的上传时间比例,将所述上传虚拟通信对象调度至所述等待队列,包括:
根据所述上传虚拟通信对象对应的初始积分值,确定所述上传虚拟通信对象在所述等待队列中的插入位置;所述初始积分值由所述上传虚拟通信对象的上传时间比例确定,所述初始积分值与所述上传虚拟通信对象在所述等待队列中的等待时间呈负相关,所述初始积分值越高则所述插入位置越靠近等待队列队首;
将所述上传虚拟通信对象调度至所述插入位置。
13.根据权利要求12所述的上传调度方法,其特征在于,所述初始积分值的确定过程,包括:
利用基础上传时间和上传队列长度以如下公式计算轮转时间:
其中,WaitingChannelTurnoverTime表示所述轮转时间,BasicUploadingTime表示所述基础上传时间,UploadingQueue表示所述上传队列长度;
利用所述轮转时间和当前等待队列长度以如下公式计算初始等待时间:
PlainWaitingTime=WaitingQueueSize×WaitingChannelTurnoverTime;
PlainWaitingTime表示所述初始等待时间,WaitingQueueSize表示所述当前等待队列长度;所述基础上传时间为所述下载节点在所述上传队列中进行数据上传的最短时间;
利用所述轮转时间及所述上传时间比例以如下公式计算期望等待时间:
ExpectWaitingTime=ExpectWaitingQueueSize×WaitingChannelTurnoverTime;
其中,ExpectingQueueSize表示期望等待队列长度,a%表示所述下载节点的比例调整率,所述比例调整率根据所述下载节点的优先级设置,1+a%表示所述上传虚拟通信对象的上传时间比例,ExpectingWaitingTime表示所述期望等待时间;
利用所述期望等待时间、所述初始等待时间和位于所述等待队列队首的队首等待虚拟通信对象的积分值以如下公式计算所述上传虚拟通信对象的初始积分值:
其中,Score表示所述上传虚拟通信对象的初始积分值,HeadScore表示所述队首等待虚拟通信对象的积分值,所述积分值由所述队首等待虚拟通信对象的初始积分值及所述队首等待虚拟通信对象在所述等待队列中的实际等待时间确定,所述实际等待时间越长则所述积分值越大。
14.根据权利要求1所述的上传调度方法,其特征在于,所述判断等待队列和上传队列中是否存在满足调度条件的虚拟通信对象,包括:
判断所述等待队列是否为空;
若所述等待队列不为空,则判断所述上传队列中是否存在已耗尽上传时间的上传虚拟通信对象;
若存在所述上传虚拟通信对象,则判定所述等待队列和所述上传队列存在满足调度条件的虚拟通信对象;所述满足调度条件的虚拟通信对象为位于所述等待队列队首的等待虚拟通信对象及所述已耗尽上传时间的上传虚拟通信对象。
15.根据权利要求14所述的上传调度方法,其特征在于,在判断所述上传队列中是否存在已耗尽上传时间的上传虚拟通信对象之前,还包括:
判断位于所述等待队列队首的等待虚拟通信对象在所述等待队列中的实际等待时间是否大于预设阈值;
若是,则执行所述判断所述上传队列中是否存在已耗尽上传时间的上传虚拟通信对象的步骤。
16.根据权利要求14所述的上传调度方法,其特征在于,所述判断所述上传队列中是否存在已耗尽上传时间的上传虚拟通信对象,包括:
向所述上传队列中的各上传虚拟通信对象查询对应的剩余上传时间,并根据所述剩余上传时间判断所述上传队列中是否存在所述已耗尽上传时间的上传虚拟通信对象;所述上传队列中的各上传虚拟通信对象均保存有其对应的剩余上传时间。
17.一种上传调度装置,其特征在于,包括:
调度判断模块,用于判断等待队列和上传队列中是否存在满足调度条件的虚拟通信对象;
调度模块,用于若存在满足调度条件的所述虚拟通信对象,则根据所述虚拟通信对象对应的下载节点的上传时间比例,在所述等待队列与所述上传队列间调度所述虚拟通信对象,以使所述下载节点在所述上传队列中获得的上传时间满足所述上传时间比例的要求;所述上传时间比例根据所述下载节点的优先级设置且不为零。
18.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至16任一项所述的上传调度方法。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如权利要求1至16任一项所述的上传调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311168034.7A CN117201616A (zh) | 2023-09-11 | 2023-09-11 | 一种上传调度方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311168034.7A CN117201616A (zh) | 2023-09-11 | 2023-09-11 | 一种上传调度方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117201616A true CN117201616A (zh) | 2023-12-08 |
Family
ID=88983044
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311168034.7A Pending CN117201616A (zh) | 2023-09-11 | 2023-09-11 | 一种上传调度方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117201616A (zh) |
-
2023
- 2023-09-11 CN CN202311168034.7A patent/CN117201616A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6044813B2 (ja) | 通信システム | |
KR101758819B1 (ko) | 모바일 디바이스를 위한 배터리 전력 관리 | |
US8611217B2 (en) | Subscriber/service differentiation in advanced wireless networks | |
US6810426B2 (en) | Methods and systems providing fair queuing and priority scheduling to enhance quality of service in a network | |
JP4338285B2 (ja) | パケットスケジューリング方法および装置 | |
RU2550529C2 (ru) | Адаптивное сообщение статуса буфера | |
US8311002B2 (en) | Scheduling of users on a shared radio resource using a combination of link quality and traffic information | |
WO2010096726A1 (en) | Flexible reservation request and scheduling mechanisms in a managed shared network with quality of service | |
JP2010119111A (ja) | 無線ネットワークに関するサービス品質スケジューラ | |
US9386523B2 (en) | Power-saving data scheduling system in LTE and method thereof | |
EP2510736A1 (en) | Method and arrangement for scheduling control in a telecommunication system | |
US20140281034A1 (en) | System and Method for Compressing Data Associated with a Buffer | |
Hyytiä et al. | Optimizing offloading strategies in mobile cloud computing | |
US20130148670A1 (en) | Method of resource allocation and resource arbitrator | |
WO2013080419A1 (ja) | トラフィック管理装置、システム、方法およびプログラムを格納した非一時的なコンピュータ可読媒体 | |
CN117201616A (zh) | 一种上传调度方法、装置、电子设备及存储介质 | |
Rhee et al. | A wireless fair scheduling algorithm for 1/spl times/EV-DO system | |
CN112995058A (zh) | 一种令牌的调整方法及装置 | |
CN113824652B (zh) | 一种用于调度队列的方法及装置 | |
CN114124829A (zh) | 一种业务转发控制方法、装置及电子设备 | |
CN113905448A (zh) | 无线网络资源调度方法、装置及设备 | |
CN116521234B (zh) | 一种处理器管线指令轮询调度的方法和装置 | |
WO2024036460A1 (en) | Methods and apparatuses for slice scheduling | |
CN117938855A (zh) | 面向云边算网系统的容器化服务资源供应分配方法及系统 | |
WO2007121674A1 (fr) | Procédé et appareil de programmation dans des systèmes de communication |
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 |