CN110677463B - 并行数据传输方法、装置、介质及电子设备 - Google Patents
并行数据传输方法、装置、介质及电子设备 Download PDFInfo
- Publication number
- CN110677463B CN110677463B CN201910853940.8A CN201910853940A CN110677463B CN 110677463 B CN110677463 B CN 110677463B CN 201910853940 A CN201910853940 A CN 201910853940A CN 110677463 B CN110677463 B CN 110677463B
- Authority
- CN
- China
- Prior art keywords
- score
- transmission
- nodes
- node
- data
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/101—Server selection for load balancing based on network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1029—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开涉及云传输和云计算领域,揭示了一种并行数据传输方法、装置、介质及电子设备。该方法包括:获取所有传输节点的剩余内存量,并基于传输节点的剩余内存量确定传输节点的第一分数;获取所有传输节点在预设时间范围内的故障率,并基于传输节点的故障率确定传输节点的第二分数;获取所有传输节点的吞吐量,并基于传输节点的吞吐量确定传输节点的第三分数;基于传输节点的第一分数、第二分数、第三分数利用公式确定传输节点的总分数;根据每个传输节点的总分数,在所有传输节点中确定出空闲节点;将待传输数据按照预定规则分配至空闲节点,由空闲节点对待传输数据进行传输。本方案通过为待传输数据合理分配传输节点,提高了数据传输效率。
Description
技术领域
本公开涉及云传输和云计算技术领域,特别涉及一种并行数据传输方法、装置、介质及电子设备。
背景技术
近年来信息技术快速发展,网络数据量增长非常迅速,对网络数据的传输速率的要求也越来越高。现有技术中,一般是设置多个传输节点,将较大的网络数据分配在多个传输节点中进行传输,以提高网络数据的传输速率。但是,不同的传输节点一般具有不同的状态和传输速率,若未对网络数据在传输节点间进行合理的分配,会造成某些传输节点闲置,而某些传输节点负载过大的问题,从而影响网络数据的传输效率。
发明内容
本公开提供一种并行数据传输方法、装置、介质及电子设备,旨在提高数据传输效率。
根据本公开的一方面,提供了一种并行数据传输方法,所述方法包括:
获取所有传输节点的剩余内存量,并基于每个传输节点的剩余内存量确定每个传输节点的第一分数;
获取所述所有传输节点在预设时间范围内的故障率,并基于每个传输节点的故障率确定每个传输节点的第二分数;
获取所述所有传输节点的吞吐量,并基于每个传输节点的吞吐量确定每个传输节点的第三分数;
基于每个传输节点的第一分数、第二分数、第三分数利用如下公式确定每个传输节点的总分数:
其中,A为所述第一分数,B为所述第二分数,C为所述第三分数,D为所述总分数;
根据每个传输节点的所述总分数,在所有传输节点中确定出空闲节点;
将待传输数据按照预定规则分配至所述空闲节点,由所述空闲节点对所述待传输数据进行传输。
根据本公开的另一方面,提供了一种并行数据传输装置,所述装置包括:
第一分数确定模块,被配置为获取所有传输节点的剩余内存量,并基于每个传输节点的剩余内存量确定每个传输节点的第一分数;
第二分数确定模块,被配置为获取所述所有传输节点在预设时间范围内的故障率,并基于每个传输节点的故障率确定每个传输节点的第二分数;
第三分数确定模块,被配置为获取所述所有传输节点的吞吐量,并基于每个传输节点的吞吐量确定每个传输节点的第三分数;
总分数确定模块,被配置为基于每个传输节点的第一分数、第二分数、第三分数利用如下公式确定每个传输节点的总分数:
其中,A为所述第一分数,B为所述第二分数,C为所述第三分数,D为所述总分数;
空闲节点获取模块,被配置为根据每个传输节点的所述总分数,在所有传输节点中确定出空闲节点;
数据分配模块,被配置为将待传输数据按照预定规则分配至所述空闲节点,由所述空闲节点对所述待传输数据进行传输。
根据本申请的另一方面,提供了一种计算机可读程序介质,其存储有计算机程序指令,当所述计算机程序指令被计算机执行时,使计算机执行如前所述的方法。
根据本申请的另一方面,提供了一种电子设备,所述电子设备包括:
处理器;
存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,实现如前所述的方法。
本发明的实施例提供的技术方案可以包括以下有益效果:
本发明所提供的并行数据传输方法包括如下步骤:获取所有传输节点的剩余内存量,并基于每个传输节点的剩余内存量确定每个传输节点的第一分数;获取所述所有传输节点在预设时间范围内的故障率,并基于每个传输节点的故障率确定每个传输节点的第二分数;获取所述所有传输节点的吞吐量,并基于每个传输节点的吞吐量确定每个传输节点的第三分数;基于每个传输节点的第一分数、第二分数、第三分数利用如下公式确定每个传输节点的总分数: 其中,A为所述第一分数,B为所述第二分数,C为所述第三分数,D为所述总分数;根据每个传输节点的所述总分数,在所有传输节点中确定出空闲节点;将待传输数据按照预定规则分配至所述空闲节点,由所述空闲节点对所述待传输数据进行传输。
此方法下,通过分别根据传输节点的剩余内存量、故障率以及吞吐量计算出传输节点的三个分数,并基于三个分数利用公式来计算出传输节点的总分数,最终根据总分数来确定出空闲节点,并将空闲数据分配至空闲节点传输,在确定空闲节点时同时体现了传输节点三个维度属性的作用,保证了确定的要分配待传输数据的空闲节点是真正适合进行数据传输的节点,使得分配待传输数据时选择的传输节点更为合理,提高了数据传输效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是根据一示例性实施例示出的一种并行数据传输方法应用的系统构架图;
图2是根据一示例性实施例示出的一种并行数据传输方法的流程图;
图3是根据图2对应实施例示出的一实施例的步骤250的细节流程图;
图4是根据图2对应实施例示出的一实施例的预定规则的流程图;
图5是根据一示例性实施例示出的一种并行数据传输装置的框图;
图6是根据一示例性实施例示出的一种实现上述并行数据传输方法的电子设备示例框图;
图7是根据一示例性实施例示出的一种实现上述并行数据传输方法的计算机可读存储介质。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。
本公开首先提供了一种并行数据传输方法。数据是任何可以通过有线或者无线方式传输的并可以被计算设备接收和处理的符号的介质。比如,在计算机系统中,数据以二进制信息单元0,1的形式表示。本公开提供并行数据传输方法可以传输各种类型的数据,比如可以是音频、视频、文档数据,还可以是数值型数据。数据传输是指,将数据从一个终端或设备通过网络媒介传递至另一个终端或设备。在本公开的一些实施例中,用于实现本公开的方法的网络媒介可以是无线介质或者有线介质,有线介质可以包括但不限于电缆、双绞线、同轴电缆、光纤等介质,而无线介质包括但不限于WI-FI、3G、4G、5G、蓝牙等介质。并行数据传输是将待传输的数据分解为多个任务,并由多方共同处理这些任务的过程。通过执行本公开提供的并行数据传输方法,可以更合理地对待传输数据进行传输。
本公开的实施终端可以是任何具有计算处理功能以及通信功能的设备,该设备可与外部设备相连,用于接收或者发出信息,可以是便携移动设备,例如智能手机、平板电脑、笔记本电脑、PDA(Personal Digital Assistant)等,也可以是固定式设备,例如,计算机设备、现场终端、台式电脑、服务器、工作站等,还可以是多个设备的集合,比如云计算的物理基础设施。
优选地,本公开的实施终端可以为服务器或者云计算的物理基础设施。
图1是根据一示例性实施例示出的一种并行数据传输方法应用的系统构架图。如图1所示,包括:多个目标服务器110、多个传输服务器120、计算服务器130以及数据库140,其中,多个目标服务器110与多个传输服务器120之间建立了通信链路的连接,多个传输服务器120与计算服务器130之间建立了通信链路的连接,数据库140与计算服务器130也建立了通信链路的连接。多个目标服务器110为接收根据本实施例提供的方法要向其传输数据的设备,即数据传输的目的地;多个传输服务器120为传输数据的工具,由多个传输服务器120进行数据的传输处理,针对一项数据传输任务,可以由多个传输服务器120中的一个或多个执行;计算服务器130即为本公开的实施终端,用于执行本实施例提供的并行数据传输方法;数据库140为本实施例提供的方法的数据来源;数据库140中的特定数据由一个或多个传输服务器120分别传输至多个目标服务器110,而在本实施例中,本公开的实施终端——计算服务器130通过执行本公开提供的数据传输方法可以在多个传输服务器120中选择出最适合执行并行数据传输任务的传输服务器,并在数据库140中的待传输数据中选择出数据来指定由相应的传输服务器进行传输。
值得一提的是,图1仅为本公开的一个实施例。虽然在本实施例中,待传输数据存储在本端之外的数据库中,并且实施终端为服务器,但在实际应用中,待传输数据可以存储在各种终端或者设备,比如可以为本公开实施终端的外部存储器,实施终端也可以是前述的各种设备或终端,本公开对此不作任何限定,本公开的保护范围也不应因此而受到任何限制。
图2是根据一示例性实施例示出的一种并行数据传输方法的流程图。如图2所示,可以包括以下步骤:
步骤210,获取所有传输节点的剩余内存量,并基于每个传输节点的剩余内存量确定每个传输节点的第一分数。
传输节点用于传输数据,可以是各种具备计算、处理以及通信功能的终端或者设备,比如可以是服务器、台式计算机、笔记本电脑、智能手机等,其可以与本公开的实施终端相同,也可以与本公开的实施终端不同,为了简单描述起见,将这些用于传输数据的终端或者设备抽象为节点,即为传输节点。
内存是传输节点运行程序或者保存数据使用的存储单元,当传输节点执行任务时需要消耗内存,执行的任务量越大,消耗的内存就越多,传输节点的剩余内存量是传输节点中未被使用或消耗的内存空间的大小。
在一个实施例中,传输节点的剩余内存量是以吉字节(GB、Gigabyte)为计量单位的,可以简化为G。比如一个传输节点的剩余内存量可以为3G。
在一个实施例中,本公开的实施终端中内嵌有脚本,通过运行该脚本可以爬取所有传输节点的剩余内存量。
在一个实施例中,本公开的实施终端包含一个内存信息表,该内存信息表实时更新各传输节点发来的内存信息,所述内存信息中包含剩余内存量,所述获取所有传输节点的剩余内存量,包括:
通过读取所述内存信息表,获取所有传输节点的剩余内存量。
在一个实施例中,所述基于每个传输节点的剩余内存量确定每个传输节点的第一分数,包括:
将每个传输节点的剩余内存量作为每个传输节点的第一分数。
在一个实施例中,所述基于每个传输节点的剩余内存量确定每个传输节点的第一分数,包括:
获取预设的剩余内存量区间与第一分数对应关系表;
针对每个传输节点,确定该传输节点在所述剩余内存量区间与第一分数对应关系表中所属的剩余内存量区间;
针对每个传输节点,将所述预设的剩余内存量区间与第一分数对应关系表中与针对该传输节点确定出的剩余内存量区间对应的第一分数作为该传输节点的第一分数。
在一个实施例中,按照预设的正相关的关系基于每个传输节点的剩余内存量确定每个传输节点的第一分数。正相关的关系可以使传输节点的第一分数随着剩余内存量的增多而增大。
在一个实施例中,按照预设的正比关系基于每个传输节点的剩余内存量确定每个传输节点的第一分数。
比如,可以利用如下公式基于传输节点的剩余内存量确定传输节点的第一分数:A=kS,其中,A为传输节点的第一分数,k为预设的系数,k>0,S为传输节点的剩余内存量。
步骤220,获取所述所有传输节点在预设时间范围内的故障率,并基于每个传输节点的故障率确定每个传输节点的第二分数。
预设时间范围可以是当前时刻之前的任意的时间段,预设时间范围的长度可以是任意的,比如可以是一天、一周、一个月或者一年。
在一个实施例中,预设时间范围为当前时刻之前的预设时刻至当前时刻的时间段。本实施例的好处在于,传输节点在距离当前时间最近的时间范围内的故障率,反映了传输节点的最新故障情况,通过获取传输节点在距离当前时间最近的时间范围内的故障率,可以对接下来传输节点发生故障的可能性做出更为准确的预估,从而使确定出的第二分数更为准确。
在一个实施例中,传输节点在预设时间范围内的故障率为传输节点在预设时间范围内传输数据时传输失败的次数与传输数据的总次数的比值。
比如,在预设时间范围内,若一个传输节点传输数据时传输失败的次数为3,传输数据的总次数为1000,则该传输节点在预设时间范围内的故障率为0.3%。
在一个实施例中,本公开的实施终端具有系统日志,传输节点每次传输数据都会记录在本端的系统日志之中,系统日志还记录了传输节点在传输数据时传输失败的记录,通过读取本公开实施终端的系统日志获取传输节点在预设时间范围内传输数据时传输失败的次数和传输数据的总次数,并基于获取的传输节点在预设时间范围内传输数据时传输失败的次数和传输数据的总次数计算传输节点在预设时间范围内的故障率。
在一个实施例中,根据预设的正相关的关系基于每个传输节点的故障率确定每个传输节点的第二分数。
在一个实施例中,利用如下公式基于传输节点的故障率确定传输节点的第二分数:
B=h ln E+b,
其中,h为预设的系数,h>0,E为传输节点的故障率,B为传输节点的第二分数,b为常数项。可以看出,在本实施例中,传输节点的第二分数与传输节点的故障率呈正相关的关系,且,随着故障率的增加,第二分数增加得越来越慢,从而在一定程度上降低了故障率对传输节点的第二分数的作用。
在一个实施例中,利用如下公式基于传输节点的故障率确定传输节点的第二分数:
B=hE,
其中,h为预设的系数,h>0,E为传输节点的故障率,B为传输节点的第二分数。
步骤230,获取所述所有传输节点的吞吐量,并基于每个传输节点的吞吐量确定每个传输节点的第三分数。
在一个实施例中,传输节点的吞吐量为一个传输节点在单位时间内最大能够发送的数据量,等于传输节点的最大传输速率,单位可以为Mbps或Mbit/s。
在一个实施例中,传输节点的吞吐量为传输节点每秒钟能够处理请求数与传输节点能够同时处理的最大请求数的平均值。
总之,传输节点的吞吐量反映了传输节点数据处理能力的强弱,传输节点的吞吐量越大,可以说明一个传输节点的数据处理能力越强,基于这一原则,传输节点的吞吐量可以以各种方式进行定义,并不限于上述两个实施例中的方式。
在一个实施例中,所述基于每个传输节点的吞吐量确定每个传输节点的第三分数,包括:将每个传输节点的吞吐量作为每个传输节点的第三分数。
在一个实施例中,利用公式C=λP基于每个传输节点的吞吐量确定每个传输节点的第三分数,其中,P为每个传输节点的吞吐量,C为传输节点的第三分数,λ为正实数。
步骤240,基于每个传输节点的第一分数、第二分数、第三分数利用如下公式确定每个传输节点的总分数:
其中,A为所述第一分数,B为所述第二分数,C为所述第三分数,D为所述总分数。
根据上述计算传输节点的总分数的公式可以明确,每个传输节点的总分数与第一分数和第三呈正相关的关系,但与第二分数呈负相关的关系,即,传输节点的第一分数和/或第三分数越大,传输节点的总分数越大,而传输节点的第二分数越小,传输节点的总分数也越大。
在实践中发现传输节点的故障率对于数据的分配影响最大,对于故障率越低的传输节点,越应该优先分配数据进行传输,而基于传输节点的故障率计算出的是传输节点的第二分数,因此将第二分数的倒数作为指数,使第二分数对总分数的影响大于第一分数和第三分数对总分数的影响。同时,由于第三分数的数值一般较大,但是第三分数对总分数的作用要小于第一分数,因此,通过对第三分数作对数处理,可以减小第三分数对总分数的影响。
步骤250,根据每个传输节点的所述总分数,在所有传输节点中确定出空闲节点。
在一个实施例中,根据每个传输节点的所述总分数,在所有传输节点中确定出空闲节点,包括:
获取对应的所述总分数大于预设总分数阈值的传输节点,作为在所有传输节点中确定出的空闲节点。
本实施例的好处在于,通过阈值限制的方式来在传输节点中筛选出空闲节点,保证了获取的空闲节点的更适合用于进行数据传输。
在一个实施例中,根据每个传输节点的所述总分数,在所有传输节点中确定出空闲节点,包括:
对所有传输节点按照所述总分数从大到小进行排序;
从排在最前的传输节点开始,按照所述排序,获取预定数目个传输节点,作为空闲节点。
本实施例的好处在于,使得在所有传输节点中选出的空闲节点的数量更为稳定。
在一个实施例中,根据每个传输节点的所述总分数,在所有传输节点中确定出空闲节点,包括:
对所有传输节点按照所述总分数从大到小进行排序;
判断排序的序号为预设值的传输节点的总分数是否大于预设总分数阈值;
如果是,将排在序号为预设值的传输节点之前的所有节点作为空闲节点;
如果否,将总分数大于预设总分数阈值的传输节点作为空闲节点。
本实施例的好处在于,通过在预设总分数阈值的传输节点的数量达到预设值时,将排在序号为预设值的传输节点之前的所有节点作为空闲节点,而在预设总分数阈值的传输节点的数量未达到预设值时,仅将总分数大于预设总分数阈值的传输节点作为空闲节点,实现了选取空闲节点的数量和选取空闲节点的标准之间的平衡。
在一个实施例中,根据每个传输节点的所述总分数,在所有传输节点中确定出空闲节点,包括:
获取预设的按照从大到小排序的多个总分数区间,每一传输节点的所述总分数仅属于一个总分数区间;
对所有传输节点按照所述总分数从大到小进行排序;
确定属于同一个总分数区间的传输节点;
对按照所述总分数从大到小进行排序后的所有传输节点中,对属于同一个总分数区间的传输节点随机进行排序。
由于总分数并不一定完全客观地反映了一个传输节点是否应当被选为空闲节点,特别是当两个传输节点的总分数是近似的时候,总分数较小的传输节点可能更适合被选为空闲节点。所以本实施例的好处在于,通过对属于同一个总分数区间的传输节点随机进行排序,使得总分数相近的传输节点都有被选择作为空闲节点的可能,提高了选择空闲节点的公平性和合理性。
在一个实施例中,所述获取所有传输节点的剩余内存量,并基于每个传输节点的剩余内存量确定每个传输节点的第一分数,包括:
获取剩余内存量大于预设剩余内存量阈值的传输节点的剩余内存量,并基于获取的传输节点的剩余内存量确定每个剩余内存量大于预设剩余内存量阈值的传输节点的第一分数;
所述获取所述所有传输节点在预设时间范围内的故障率,并基于每个传输节点的故障率确定每个传输节点的第二分数,包括:
获取在预设时间范围内的故障率低于预设故障率阈值的传输节点的故障率,并基于获取的传输节点的故障率确定每个在预设时间范围内的故障率低于预设故障率阈值的传输节点的第二分数;
所述获取所述所有传输节点的吞吐量,并基于每个传输节点的吞吐量确定每个传输节点的第三分数,包括:
获取吞吐量高于预设吞吐量阈值的传输节点的吞吐量,并基于获取的传输节点的吞吐量确定每个吞吐量高于预设吞吐量阈值的传输节点的第三分数;
所述基于每个传输节点的第一分数、第二分数、第三分数利用公式确定每个传输节点的总分数,包括:
基于同时确定出了第一分数、第二分数和第三分数的传输节点的第一分数、第二分数和第三分数利用公式确定每个同时确定出第一分数、第二分数和第三分数的传输节点的总分数;
所述根据每个传输节点的所述总分数,在所有传输节点中确定出空闲节点,包括:
根据每个确定出总分数的传输节点的所述总分数,在所有传输节点中确定出空闲节点。
本实施例的好处在于,由于剩余内存量小于预设剩余内存量阈值、在预设时间范围内的故障率高于预设故障率阈值或者吞吐量低于预设吞吐量阈值的传输节点被选择作为空闲节点的可能性很低,通过在计算每一传输节点的第一分数、第二分数或第三分数之前,先利用相应的阈值分别将剩余内存量小于预设剩余内存量阈值、在预设时间范围内的故障率高于预设故障率阈值以及吞吐量低于预设吞吐量阈值的传输节点过滤掉,使得在计算传输节点的第一分数、第二分数、第三分数以及总分数时,无需对这些被过滤掉的传输节点的分数进行计算,减少了计算任务,减少了计算量,从而提高了空闲节点的获取效率,进而可以提高数据的传输效率。
步骤260,将待传输数据按照预定规则分配至所述空闲节点,由所述空闲节点对所述待传输数据进行传输。
在一个实施例中,所述预定规则包括:
将所述待传输数据分为预定数目个数据包;
按照空闲节点的所述总分数从大到小的顺序,从第一个空闲节点开始,每次为一个空闲节点分配一个数据包,直至所有数据包被分配给空闲节点,其中,当按照所述顺序为每一个空闲节点都分配了相同数量的数据包且尚有未经分配的数据包时,从第一个空闲节点开始,按照所述顺序重新每次为一个空闲节点分配一个数据包。
在一个实施例中,在将待传输数据按照预定规则分配至所述空闲节点,由所述空闲节点对所述待传输数据进行传输之后,所述方法还包括:
从将待传输数据发送给空闲节点开始,每隔预定时间段,重新计算所有传输节点的第一分数、第二分数和第三分数;
基于每个传输节点的第一分数、第二分数、第三分数利用如下公式重新确定每个传输节点的总分数:
其中,A为所述第一分数,B为所述第二分数,C为所述第三分数,D为所述总分数;
根据每个传输节点的总分数在所有传输节点中重新确定出空闲节点,并将所述预定时间段内产生的待传输数据按照预定规则分配至所述空闲节点,由所述空闲节点对所述待传输数据进行传输。
本实施例的好处在于,通过重新确定空闲节点,可以为新产生的待传输数据进行合理的分配,实现了待传输数据的动态分配。
综上所述,根据图2实施例提供的并行数据传输方法,通过分别根据传输节点的剩余内存量、故障率以及吞吐量计算出传输节点的三个分数,并基于三个分数利用公式来计算出传输节点的总分数,最终根据总分数来确定出空闲节点,并将空闲数据分配至空闲节点传输,在确定空闲节点时同时体现了传输节点三个维度属性的作用,保证了确定的要分配待传输数据的空闲节点是真正适合进行数据传输的节点,使得分配待传输数据时选择的传输节点更为合理,提高了数据传输效率。
图3是根据图2对应实施例示出的一实施例的步骤250的细节流程图。如图3所示,步骤250可以包括以下步骤:
步骤251,获取待传输数据的总量。
待传输数据的总量是指待传输数据占用的存储空间的大小。
在一个实施例中,待传输数据的总量的单位为太字节(Terabyte,TB)。
在一个实施例中,本公开的实施终端中内嵌有脚本,通过运行脚本可以爬取待传输数据的总量值。
在一个实施例中,待传输数据存储于数据库中,数据库具有属性值,属性值中包含了数据库中存储的待传输数据的大小,通过查询所述数据库的属性值,获取数据库中存储的待传输数据的大小,作为待传输数据的总量。
步骤252,根据所述总量,利用公式确定总分数阈值。
用于确定总分数阈值的所述公式为:
其中,T为总分数阈值,x为待传输数据的总量,xT为预设待传输数据的总量阈值,α和β系数,α和β为大于0的正实数且α>β,∈为常数项。
从上述公式可以看出,当待传输数据的总量小于预设待传输数据的总量阈值时,总分数阈值更大,且增加的速度较快,而当待传输数据的总量大于预设待传输数据的总量阈值时,总分数阈值更小,且增加的速度较慢。当待传输数据的总量小于预设待传输数据的总量阈值且足够小时,通过设置较高的总分数阈值减少基于该阈值选择出的空闲节点的数量,可以在一定程度上提高空闲节点的利用率,当待传输数据的总量大于预设待传输数据的总量阈值且足够大时,通过设置较低的总分数阈值,可以增加基于该阈值选择出的空闲节点的数量,进而可以通过选择出的更多的空闲节点来处理大量的待传输数据,可以在一定程度上提高数据的传输效率。
步骤253,将所述总分数大于确定出的总分数阈值的节点,作为在所有传输节点中确定出的空闲节点。
当总分数大于总分数阈值,说明传输节点的剩余内存量、故障率以及吞吐量可能都处于较佳的水平,因此可以选择作为空闲节点用于处理待处理数据。
综上所述,图3所示出的实施例的好处在于,通过根据待传输数据的总量在不同情况下设置不同的总分数阈值,从而可以根据设置的不同的总分数阈值来动态确定选出的空闲节点的数量,兼顾了节点的利用率和数据的传输效率。
图4是根据图2对应实施例示出的一实施例的预定规则的流程图。如图2所示,可以包括以下步骤:
步骤410,为所述空闲节点分配至少一个与待传输数据对应的标识字段。
在一个实施例中,与待传输数据对应的标识字段是能够唯一标识一个待传输数据的字段。标识字段可以包括数字、字母、下划线等。
在一个实施例中,本端存有一个待传输数据的标识字段表,该标识字段表中保存了每一待传输数据的标识字段,根据该标识字段表,为所述空闲节点分配与待传输数据对应的标识字段。
在一个实施例中,所述为所述空闲节点分配与至少一个与待传输数据对应的标识字段,包括:
为所述空闲节点分配与待传输数据对应的预设长度的标识字段。
本实施例的好处在于,实现了待传输数据在各空闲节点的均匀分配。
在一个实施例中,所述为所述空闲节点分配与至少一个与待传输数据对应的标识字段,包括:获取所有空闲节点的所述总分数之和;针对每一空闲节点,根据该空闲节点的所述总分数与所述和的比值,确定要为该空闲节点分配的与待传输数据对应的标识字段的数量;按照为每一空闲节点确定的所述数量,为每一空闲节点分配与待传输数据对应的标识字段。
在一个实施例中,本端存有一个待传输数据的标识字段表,在所述标识字段表中的待传输数据的标识字段按照预定顺序排列,所述按照为每一空闲节点确定的所述数量,为每一空闲节点分配与待传输数据对应的标识字段,包括:
任取一个空闲节点,在所述标识字段表中按照预定顺序为该空闲节点分配数量等于为该空闲节点确定的所述数量的标识字段;再次在没获取过的空闲节点中任取一个空闲节点,并在所述标识字段表的未分配的标识字段中按照预定顺序为该空闲节点分配数量等于为该空闲节点确定的所述数量的标识字段,直至为所有空闲节点分配了标识字段。
步骤420,将所述标识字段所对应的待传输数据,作为要分配至所述空闲节点的待传输数据。
综上,图4所示实施例的好处在于,通过标识字段的方式对待传输数据进行分配,无需由本端对实际的数据进行操作,提高了待传输数据的分配效率。
本公开还提供了一种并行数据传输装置,以下是本公开的装置实施例。
图5是根据一示例性实施例示出的一种并行数据传输装置的框图。如图5所示,装置500包括:
第一分数确定模块510,被配置为获取所有传输节点的剩余内存量,并基于每个传输节点的剩余内存量确定每个传输节点的第一分数。
第二分数确定模块520,被配置为获取所述所有传输节点在预设时间范围内的故障率,并基于每个传输节点的故障率确定每个传输节点的第二分数。
第三分数确定模块530,被配置为获取所述所有传输节点的吞吐量,并基于每个传输节点的吞吐量确定每个传输节点的第三分数。
总分数确定模块540,被配置为基于每个传输节点的第一分数、第二分数、第三分数利用如下公式确定每个传输节点的总分数:
其中,A为所述第一分数,B为所述第二分数,C为所述第三分数,D为所述总分数。
空闲节点获取模块550,被配置为根据每个传输节点的所述总分数,在所有传输节点中确定出空闲节点。
数据分配模块560,被配置为将待传输数据按照预定规则分配至所述空闲节点,由所述空闲节点对所述待传输数据进行传输。
据本公开的第三方面,还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图6来描述根据本发明的这种实施方式的电子设备600。图6显示的电子设备600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,电子设备600以通用计算设备的形式表现。电子设备600的组件可以包括但不限于:上述至少一个处理单元610、上述至少一个存储单元620、连接不同系统组件(包括存储单元620和处理单元610)的总线630。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元610执行,使得所述处理单元610执行本说明书上述“实施例方法”部分中描述的根据本发明各种示例性实施方式的步骤。
存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)621和/或高速缓存存储单元622,还可以进一步包括只读存储单元(ROM)623。
存储单元620还可以包括具有一组(至少一个)程序模块625的程序/实用工具624,这样的程序模块625包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备600也可以与一个或多个外部设备800(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器660通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
根据本公开的第四方面,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
参考图7所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品700,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围执行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (9)
1.一种并行数据传输方法,其特征在于,所述方法包括:
获取所有传输节点的剩余内存量,并基于每个传输节点的剩余内存量确定每个传输节点的第一分数;
获取所述所有传输节点在预设时间范围内的故障率,并基于每个传输节点的故障率确定每个传输节点的第二分数;
获取所述所有传输节点的吞吐量,并基于每个传输节点的吞吐量确定每个传输节点的第三分数;
基于每个传输节点的第一分数、第二分数、第三分数利用如下公式确定每个传输节点的总分数:
其中,A为所述第一分数,B为所述第二分数,C为所述第三分数,D为所述总分数;
根据每个传输节点的所述总分数,在所有传输节点中确定出空闲节点;
将待传输数据按照预定规则分配至所述空闲节点,由所述空闲节点对所述待传输数据进行传输;
其中,所述根据每个传输节点的所述总分数,在所有传输节点中确定出空闲节点,包括:
获取待传输数据的总量;
根据所述总量,利用如下公式确定总分数阈值:
其中,T为总分数阈值,x为待传输数据的总量,xT为预设待传输数据的总量阈值,α和β系数,α和β为大于0的正实数且α>β,∈为常数项;
将所述总分数大于确定出的总分数阈值的节点,作为在所有传输节点中确定出的空闲节点。
2.根据权利要求1所述的方法,其特征在于,所述预定规则包括:
为所述空闲节点分配至少一个与待传输数据对应的标识字段;
将所述标识字段所对应的待传输数据,作为要分配至所述空闲节点的待传输数据。
3.根据权利要求2所述的方法,其特征在于,所述为所述空闲节点分配至少一个与待传输数据对应的标识字段,包括:
获取所有空闲节点的所述总分数之和;
针对每一空闲节点,根据该空闲节点的所述总分数与所述和的比值,确定要为该空闲节点分配的与待传输数据对应的标识字段的数量;
按照为每一空闲节点确定的所述数量,为每一空闲节点分配与待传输数据对应的标识字段。
5.根据权利要求2所述的方法,其特征在于,所述为所述空闲节点分配至少一个与待传输数据对应的标识字段,包括:
为所述空闲节点分配与待传输数据对应的预设长度的标识字段。
6.根据权利要求1所述的方法,其特征在于,所述获取所有传输节点的剩余内存量,并基于每个传输节点的剩余内存量确定每个传输节点的第一分数,包括:
获取剩余内存量大于预设剩余内存量阈值的传输节点的剩余内存量,并基于获取的传输节点的剩余内存量确定每个剩余内存量大于预设剩余内存量阈值的传输节点的第一分数;
所述获取所述所有传输节点在预设时间范围内的故障率,并基于每个传输节点的故障率确定每个传输节点的第二分数,包括:
获取在预设时间范围内的故障率低于预设故障率阈值的传输节点的故障率,并基于获取的传输节点的故障率确定每个在预设时间范围内的故障率低于预设故障率阈值的传输节点的第二分数;
所述获取所述所有传输节点的吞吐量,并基于每个传输节点的吞吐量确定每个传输节点的第三分数,包括:
获取吞吐量高于预设吞吐量阈值的传输节点的吞吐量,并基于获取的传输节点的吞吐量确定每个吞吐量高于预设吞吐量阈值的传输节点的第三分数;
所述基于每个传输节点的第一分数、第二分数、第三分数利用公式确定每个传输节点的总分数,包括:
基于同时确定出了第一分数、第二分数和第三分数的传输节点的第一分数、第二分数和第三分数利用公式确定每个同时确定出第一分数、第二分数和第三分数的传输节点的总分数;
所述根据每个传输节点的所述总分数,在所有传输节点中确定出空闲节点,包括:
根据每个确定出总分数的传输节点的所述总分数,在所有传输节点中确定出空闲节点。
7.一种并行数据传输装置,其特征在于,所述装置包括:
第一分数确定模块,被配置为获取所有传输节点的剩余内存量,并基于每个传输节点的剩余内存量确定每个传输节点的第一分数;
第二分数确定模块,被配置为获取所述所有传输节点在预设时间范围内的故障率,并基于每个传输节点的故障率确定每个传输节点的第二分数;
第三分数确定模块,被配置为获取所述所有传输节点的吞吐量,并基于每个传输节点的吞吐量确定每个传输节点的第三分数;
总分数确定模块,被配置为基于每个传输节点的第一分数、第二分数、第三分数利用如下公式确定每个传输节点的总分数:
其中,A为所述第一分数,B为所述第二分数,C为所述第三分数,D为所述总分数;
空闲节点获取模块,被配置为根据每个传输节点的所述总分数,在所有传输节点中确定出空闲节点;
其中,所述根据每个传输节点的所述总分数,在所有传输节点中确定出空闲节点,包括:
获取待传输数据的总量;
根据所述总量,利用如下公式确定总分数阈值:
其中,T为总分数阈值,x为待传输数据的总量,xT为预设待传输数据的总量阈值,α和β系数,α和β为大于0的正实数且α>β,∈为常数项;
将所述总分数大于确定出的总分数阈值的节点,作为在所有传输节点中确定出的空闲节点;
数据分配模块,被配置为将待传输数据按照预定规则分配至所述空闲节点,由所述空闲节点对所述待传输数据进行传输。
8.一种计算机可读程序介质,其特征在于,其存储有计算机程序指令,当所述计算机程序指令被计算机执行时,使计算机执行根据权利要求1至6中任一项所述的方法。
9.一种电子设备,其特征在于,所述电子设备包括:
处理器;
存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,实现如权利要求1至6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910853940.8A CN110677463B (zh) | 2019-09-10 | 2019-09-10 | 并行数据传输方法、装置、介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910853940.8A CN110677463B (zh) | 2019-09-10 | 2019-09-10 | 并行数据传输方法、装置、介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110677463A CN110677463A (zh) | 2020-01-10 |
CN110677463B true CN110677463B (zh) | 2022-12-20 |
Family
ID=69077578
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910853940.8A Active CN110677463B (zh) | 2019-09-10 | 2019-09-10 | 并行数据传输方法、装置、介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110677463B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101969396A (zh) * | 2010-09-02 | 2011-02-09 | 北京邮电大学 | 一种基于时延和带宽资源的中继选择方法 |
CN102571856A (zh) * | 2010-12-17 | 2012-07-11 | 中国移动通信集团公司 | 一种中转节点的选择方法、设备和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101002903B1 (ko) * | 2005-11-07 | 2010-12-21 | 삼성전자주식회사 | 멀티 홉 무선 이동 통신 시스템에서 서빙 노드 결정 방법 |
-
2019
- 2019-09-10 CN CN201910853940.8A patent/CN110677463B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101969396A (zh) * | 2010-09-02 | 2011-02-09 | 北京邮电大学 | 一种基于时延和带宽资源的中继选择方法 |
CN102571856A (zh) * | 2010-12-17 | 2012-07-11 | 中国移动通信集团公司 | 一种中转节点的选择方法、设备和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110677463A (zh) | 2020-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108427725B (zh) | 数据处理方法、装置和系统 | |
US10264073B2 (en) | Cloud service utilization | |
CN109241772B (zh) | 发票区块链记录方法、装置、区块链网关服务器和介质 | |
US7631034B1 (en) | Optimizing node selection when handling client requests for a distributed file system (DFS) based on a dynamically determined performance index | |
JP2020173778A (ja) | リソースの割り当て方法、装置、電子設備、コンピュータ可読媒体およびコンピュータプログラム | |
US20190166192A1 (en) | Method and Device for Storage Resource Allocation for Video Cloud Storage | |
CN109981744B (zh) | 数据的分发方法、装置、存储介质及电子设备 | |
US9043317B2 (en) | System and method for event-driven prioritization | |
CN112445857A (zh) | 一种基于数据库的资源配额管理方法和装置 | |
CN111966289A (zh) | 基于Kafka集群的分区优化方法和系统 | |
CN112328688A (zh) | 数据存储方法、装置、计算机设备及存储介质 | |
CN114780244A (zh) | 容器云资源弹性分配方法、装置、计算机设备及介质 | |
CN110891087A (zh) | 一种日志传输方法、装置及电子设备和存储介质 | |
CN110245014B (zh) | 数据处理方法和装置 | |
CN110347546B (zh) | 监控任务动态调整方法、装置、介质及电子设备 | |
CN106850822B (zh) | 负载均衡方法、设备及分布式系统 | |
CN113079062A (zh) | 一种资源调整方法、装置、计算机设备和存储介质 | |
CN113760982A (zh) | 一种数据处理方法和装置 | |
CN109067649B (zh) | 节点处理方法及装置、存储介质和电子设备 | |
CN110677463B (zh) | 并行数据传输方法、装置、介质及电子设备 | |
CN109862069B (zh) | 消息处理方法和装置 | |
CN114900477B (zh) | 报文处理方法、服务器、电子设备及存储介质 | |
US20170346889A1 (en) | Co-locating application instances | |
CN114465919B (zh) | 一种网络服务测试方法、系统、电子设备及存储介质 | |
CN114257521A (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 |