用于确定数据传送方式的方法、装置以及计算机程序产品与流程

文档序号:19010080发布日期:2019-10-30 00:15阅读:164来源:国知局
用于确定数据传送方式的方法、装置以及计算机程序产品与流程

本公开的实施例涉及计算机处理领域,并且更具体地,涉及用于确定数据传送方式的方法、装置以及计算机程序产品。



背景技术:

在网络环境中,经常需要在各个设备之间传送数据。取决于执行数据传送的设备之间的网络传送速率,在不同设备之间的数据传送效率也会变化。网络传送速率取决于设备之间的连接类型。在一些网络环境中,特别是在基于云的网络环境中,网络传送速率将与设备所处的位置相关。例如,如果要执行数据传送的两个设备处于同一云提供商的数据中心中,网络传送速率通常较高,因此可实现快速数据传送。如果两个设备处于不同的数据中心或者其中一个设备位于数据中心之外,网络传送速率通常较慢或者数据传送的速率非常依赖于设备的处理能力。除了网络传送速率之外的因素之外,为了提高数据传送速率,一种选择是执行数据压缩以降低要传送的数据量的大小。然而,数据压缩通常也要耗费时间。因此,期望能够确定合适的数据传送方式,以提高设备之间的数据传送效率。



技术实现要素:

本公开的实施例提供了一种用于确定数据传送方式的方案。

在本公开的第一方面中,提供了一种确定数据传送方式的方法。该方法包括确定在无压缩的情况下将数据块从第一设备传送给第二设备的第一传送完成时间。该方法还包括基于用于压缩数据块的压缩时间,确定在执行压缩的情况下将数据块从第一设备传送给第二设备的第二传送完成时间。该方法进一步包括至少基于第一传送完成时间和第二传送完成时间的比较,从以下方式中选择数据块的传送方式:包括压缩数据块并且传送经压缩的数据块的第一传送方式、以及在无压缩的情况下直接传送数据块的第二传送方式。

在本公开的第二方面中,提供了一种用于确定数据传送方式的装置。该装置包括处理器以及与处理器耦合的存储器,存储器具有存储于其中的指令,指令在被处理器执行时使装置执行动作。动作包括确定在无压缩的情况下将数据块从第一设备传送给第二设备的第一传送完成时间。动作还包括基于用于压缩数据块的压缩时间,确定在执行压缩的情况下将数据块从第一设备传送给第二设备的第二传送完成时间。动作进一步包括至少基于第一传送完成时间和第二传送完成时间的比较,从以下方式中选择数据块的传送方式:包括压缩数据块并且传送经压缩的数据块的第一传送方式、以及在无压缩的情况下直接传送数据块的第二传送方式。

在本公开的第三方面中,提供了一种计算机程序产品,计算机程序产品被有形地存储在计算机可读介质上并且包括机器可执行指令,机器可执行指令在被执行时使机器执行根据第一方面的方法。

提供发明内容部分是为了简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或主要特征,也无意限制本公开的范围。

附图说明

通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。

图1示出了本公开的实施例可以在其中被实现的环境的示意图;

图2示出了根据本公开的一些实施例的用于确定数据传送方式的过程的流程图;

图3示出了根据本公开的另一些实施例的用于确定数据传送方式的过程的流程图;以及

图4示出了可以用来实施本公开的实施例的示例设备的框图。

具体实施方式

下面将参考附图中示出的若干示例实施例来描述本公开的原理。虽然附图中显示了本公开的优选实施例,但应当理解,描述这些实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。

在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。

图1示出了本公开的实施例可以在其中被实现的环境100的示意图。图1示出的环境100是基于云的网络环境。如图1所示,基于云的网络环境100包括多个云系统102和104,每个云系统中可以部署一个或多个设备(也被称为节点)。例如,云系统102被示出为部署有设备110-1,云系统104被示出为部署有设备110-2和110-3。

每个云系统102、104可以由相应的云提供商提供,以提供数据处理、数据访问、数据存储、数据备份、各种软件或应用等多种多样的服务。虽然被示出为有限数目的设备,但是在实现中,不同云系统可以包括大量的设备,诸如计算节点、存储装置等,并且环境100中还可以包括更多或其他数目的云系统。在以云架构来部署时,云系统不要求终端用户知晓提供这些服务的硬件的物理位置或配置。在云系统中,各个设备可以使用适当的协议、通过各种类型的网络连接来互相通信,或者与外部设备通信。这样的网络连接例如可以基于广域网(诸如因特网)、局域网、城域网等等。取决于云的访问限制,云系统102或104可以是公共可访问的公共云,或者属于特定组织、公司或个人的私有云。在一些情况中,云系统中位于特定物理位置处的设备集群可以被称为数据中心。一个云系统可以包括多个数据中心。

云系统102、104外部还存在一个或多个设备110-4,这样的设备被称为边缘设备。在本公开的实施例中,为便于描述,设备110-1至110-4可以统称为或单独称为设备110。在环境100中,不同设备110可以彼此建立网络连接并且通过所建立的网络连接来相互传送数据。数据传送可能发生在多种情况下,例如从一个设备向另一设备复制数据,跨多个设备恢复数据,或者基于分析/计算或其他需要而执行数据调度,等等。

要执行数据传送的两个设备110可以位于不同云系统、同一云系统、同一云系统中的不同数据中心或者包含云系统之外的边缘设备。如图1所示,云系统104中的设备110-2和110-3可以经由网络连接121互相传送数据,云系统102中的设备110-1和云系统104中的设备110-2可以经由网络连接122互相传送数据,并且边缘设备110-4和云系统102中的设备110-1可以经由网络连接123互相传送数据。在数据传送时,要被传送的数据可以被存储在云系统102、104相关联的存储装置或存储系统中。对于边缘设备110-4而言,其可以配备有自己的存储资源和处理资源。

在本公开的实施例中,设备110可以是任何具有通信能力的设备,诸如任意类型的服务器、控制器、计算设备、移动设备、固定设备或便携式设备,包括移动手机、站点、单元、设备、多媒体计算机、多媒体平板、互联网节点、通信器、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、平板计算机、个人通信系统(pcs)设备、个人导航设备、个人数字助理(pda)、音频/视频播放器、数码相机/摄像机、定位设备、电视接收器、无线电广播接收器、电子书设备、游戏设备、物联网(iot)设备或可用于通信的其他设备、或者上述的任意组合。

应当理解,图1所示出的环境100仅是示例,而不应当构成对本公开的实施例的功能和范围的任何限制。本公开的实施例可以应用于任何需要在设备之间传送数据的环境。

在数据传送应用中,两个设备之间的数据传送效率与两个设备之间的网络传送速率相关。在涉及数据传送的环境中,不同设备之间的网络连接的传送速率可能是不同的并且网络连接的稳定也会发生变化。例如,在单个云系统中,同一数据中心内的网络传送速率通常非常快且稳定,不同数据中心之间的网络传送速率可能稍有降低,但相对而言也较快且稳定。在跨云系统的传送中,跨不同云系统的网络传送速率也可以达到较高水平,但是不同云系统之间的网络连接可能无法保持稳定稳定状态,从而造成网络传送速率的变化。边缘设备与云系统中的设备的网络传送速率依赖于所选择的网络连接方式,因此针对不同的边缘设备,网络传送速率可能变化。此外,这样的网络连接也可能是不稳定的。

除了网络传送速率之外,对于要执行数据传送的两个设备而言,如果要经由网络连接传送的数据量较少,那么可以花费较少时间完成数据传送。因此,当前一种选择是在发送侧对待传送的数据执行压缩,以便降低要经由网络连接传送的数据量。在接收侧,接收设备对接收到的数据执行解压缩,以从中恢复出期望的数据。数据压缩降低了要传送的数据量,从而可以提高给定数据的传送效率。在当前很多数据传送应用中,都会选择直接对待传送的数据执行压缩。然而,数据压缩将消耗发送侧的设备的处理资源,并且也要花费一定量的时间来完成压缩。

考虑上述方面,在数据传送应用中可能会面临以下问题。如果选择在两个设备之间直接传送数据而不执行任何预处理(例如压缩),那么较低或者不稳定的网络传送速率变成瓶颈,降低数据传送效率。然而,如果强制所有设备对要传送的数据都执行压缩,一方面有些类型的数据在压缩后并不能带来数据量的降低,那么执行压缩将是资源和时间的浪费。另一方面,不同设备的处理能力(例如计算资源和存储资源)不同并且工作负载也不同,因此有些设备的可用资源(计算和/或存储资源)可能是有限的,数据压缩的执行将会阻碍设备上的其他工作任务,或者将会导致数据压缩的更长处理延迟。此外,在一些情况中,有的设备可能能够提供较高的网络传送速率,但是处理能力确是有限的。在这种情况下,这些设备提供的数据压缩速率比网络传送速率更慢,如果仍然强制这样的设备执行数据压缩,将会严重降低数据传送效率。

根据本公开的实施例,提出了一种用于确定数据传送方式的方案。在该方案中,对于要从第一设备传送给第二设备的数据块,确定在压缩的情况下数据块的第一传送完成时间和在执行压缩的情况下数据块的第二传送完成时间。在执行压缩的情况下,第二传送完成时间基于数据块的压缩时间。基于第一传送完成时间和第二传送完成时间的比较来选择用于该数据块的传送方式,可选择的传送方式包括压缩并传送经压缩的数据块的方式和在无压缩的情况下直接传送数据块的方式。通过该方案,在数据传送之前,基于传送完成时间来衡量执行压缩和不执行压缩两种情况,从而选择适合要传送的数据并且适合执行传送的设备的传送方式。

下面将结合附图来详细描述本公开的实施例。

图2示出了根据本公开的一些实施例的用于确定数据传送方式的过程200的流程图。过程200可以被实现在图1中要传送数据的任何设备110处。在另外一些实施例中,过程200也可以由要传送数据的设备110之外的其他设备(例如控制设备、管理设备)来执行,这样的设备用于实现对设备110的数据传送方式的控制。本公开的实施例在此方面不做限制。为便于讨论,下文将结合图1进行说明。应当理解,过程200中示出的步骤及其顺序仅是示例,过程200还可以包括未示出的附加步骤和/或可以省略所示出的步骤并且步骤之间的顺序也可以改变。

在210,设备110确定在无压缩的情况下将数据块从设备110传送给另一设备110的第一传送完成时间。设备110是要传送数据的设备,为便于讨论,称为第一设备110。另一设备110是接收由第一设备110发送的数据的设备,为便于讨论,称为第二设备110。

数据块可以是第一设备110要传送给第二设备110的数据的一部分或全部。在一些实施例中,数据块可以具有固定大小。例如,对于所有要传送的数据,可以按固定大小划分为数据块以用于传送。对于切分后的一个、一些或全部数据块,均可以按照本公开的实施例来确定其传送方式。在另一些实施例中,每次要传送的数据块的大小可以是变化的,例如按可变大小切分要传送的数据,或者将每次要传送的全部数据认为是一个数据块。在一些实施例中,如果第一设备110要传送的数据以特定格式存储在存储系统、例如文件存储系统中,那么这些数据可能以特定数据块(具有固定或可变大小)的形式被存储。在这些实施例中,可以从存储系统中直接读取这样的数据块。这样的数据块可以包含任何类型的信息,本公开的实施例在此方面不受限制。

在不执行数据压缩时,第一设备110在例如读取到数据块后,将可以直接向第二设备110传送该数据块而无需执行预处理(压缩)。因此,该数据块多长时间被全部传送到第二设备110与数据块本身的大小以及从第一设备到第二设备的网络传送速率有关。网络传送速率与第一设备和第二设备之间的网络连接相关,例如与网络连接所基于的技术相关。网络传送速率可能随着时间而变化。可以利用各种当前已知或者将来待开发的技术来估计当前数据块的传送的网络传送速率。仅作为示例,可以基于先前一段时间在第一设备与第二设备之间发生的数据传送的平均速率或者前一个或多个数据块的传送的平均速率来估计当前数据块的传送的网络传送速率(例如,直接确定为先前的平均速率)。

在一些实施例中,第一设备110基于数据块的大小和从第一设备到第二设备的网络传送速率来确定第一传送完成时间。例如,假设当前数据块的大小为sc(可以以字节为单位或者具有其他适当单位),网络传送速率为vn(可以以字节每秒为单位或者具有其他适当单位),那么第一传送完成时间可以被确定为此处的传送完成时间等同于数据块在设备之间传送所花费的网络传送时间,因为第一设备110不对数据块执行预处理。

在本公开的实施例中,数据块的传送完成时间指的是第一设备110从获得该数据块到经由网络连接将数据块的全部数据量(例如,从第一字节到最后一个字节)发送出去所花费的时间。数据块的网络传送时间指的是第一设备110经由网络连接将数据块的全部数据量(例如,从第一字节到最后一个字节)发送出去所花费的时间。应当理解,根据实际需要,第一设备110在获得数据块之后可能会对数据块执行除了压缩之前的其他操作,这些其他操作所花费的时间在本文不具体考虑,在传送完成时间中可以忽略。

在220,第一设备110基于用于压缩数据块的压缩时间,确定在执行压缩的情况下将数据块从第一设备110传送给第二设备110的第二传送完成时间。在执行压缩的情况下,数据块的第二传送完成时间需要考虑压缩时间。压缩时间与数据块的大小以及第一设备110的压缩速率有关。压缩速率与第一设备110的对压缩的处理能力有关。压缩速率通常不是一个固定值,而是会变化。可以利用各种当前已知或者将来待开发的技术来估计当前数据块的压缩速率。仅作为示例,可以基于先前一段时间第一设备执行压缩的平均压缩速率或者对前一个或多个数据块的平均压缩速率来估计针对当前数据块的压缩速率(例如,直接确定为先前的平均压缩速率)。在确定压缩时间时,假设当前数据块的大小为sc(可以以字节为单位或者具有其他适当单位),压缩速率为vc(可以以字节每秒为单位或者具有其他适当单位),那么压缩时间可以被确定为

附加地,在执行压缩的情况下,数据块的第二传送完成时间还与数据块在设备之间的网络传送时间相关,即与从第一设备110到第二设备110的网络传送速率以及从第一设备110传送给第二设备110的数据量相关。在执行压缩的情况下,需要从第一设备110到第二设备110传送的数据量为经压缩的数据块的大小。因此,在一些实施例中,第一设备110基于网络传送速率和经压缩的数据块的大小来确定从第一设备110向第二设备110传送经压缩的数据块所花费的网络传送时间(为便于描述,称为第一网络传送时间)。经压缩后的数据块的大小与压缩率相关,这将在下文详细讨论。如果要执行压缩,经压缩后的数据块的大小可以被确定为r*sc,其中sc为数据块的大小(可以以字节为单位或者具有其他适当单位),r为压缩率,并且*表示相乘。假设网络传送速率为vn(可以以字节每秒为单位或者具有其他适当单位),那么第一网络传送时间可以被确定为

在一些实施例中,如果第一设备110与第二设备110的网络连接是空闲,但第一设备110仍需等待数据块压缩完成后才经由网络连接传出,那么该数据块的第二传送完成时间可以被确定为压缩时间与第一网络传送时间之和,即网络连接空闲的情况经常发生在数据传送的初始阶段,例如在第一设备110与第二设备110刚建立网络连接(例如通信信道)时。当然,在某些传送情况下,也可能出现两个设备之间的网络连接突然空闲的情况。

在一些情况中,虽然执行压缩要花费时间,然而可能在当前数据块的压缩期间第一设备110与第二设备110之间的网络连接不是空闲的、而是要传送其他数据块。此时,当前数据块的压缩时间可能无需被全部考虑到第二传送完成时间内或者甚至可以忽略,因为即使不执行数据压缩,第一设备110也无法立即传送该数据块。因此,如果存在当前数据块之前的先前数据块要被传送,第一设备110基于先前数据块的大小和网络传送速率,确定从第一设备110向第二设备110传送先前数据块所花费的网络传送时间(为便于描述,称为第二网络传送时间)。假设经压缩后的先前数据块的大小为sp(可以以字节为单位或者具有其他适当单位),网络传送速率为vn(可以以字节每秒为单位或者具有其他适当单位),那么第二网络传送时间可以被确定为

第一设备110例如可以配置一个等待队列,准备好被传送给的数据块在该队列中排队。先前数据块可以是等待队列中在当前考虑的数据块之前的全部数据块(可以是一个或多个)。在确定先前数据块的大小时,如果存在多个先前数据块,要确定这些数据块的大小之和。如果某个先前数据块已确定被压缩,考虑该数据块压缩后的大小。

在考虑先前数据块的传送的实施例中,第一设备110可以基于压缩时间和第二网络传送时间来确定在执行压缩的情况下由数据块的压缩而导致的第一设备110的等待时间,并基于等待时间来确定数据块的第二传送完成时间。如果压缩时间未超过第二网络传送时间,这意味着第一设备110实际上不会因为当前数据块的压缩而导致任何额外等待时间,因此等待时间可以被确定为零。如果压缩时间超过第二网络传送时间,这意味着第一设备110在传送完先前数据块之后还需要额外等待当前数据块的压缩完成,因此等待时间可以被确定为压缩时间与第二网络传送时间的差异。总体而言,如果压缩时间未超过第二网络传送时间,第一设备110将第一网络传送时间确定为第二传送完成时间;如果压缩时间超过第二网络传送时间,第一设备110将压缩时间与第二网络传送时间的差异和第一网络传送时间之和确定为第二传送完成时间,这可以被表示为:其中max()表示对等待时间的确定。

仍然参照图2,在230,第一设备110至少基于第一传送完成时间和第二传送完成时间的比较,选择数据块的传送方式。第一传送完成时间是在假设无压缩的情况下预估的完成数据块传送要花费的时间,而第二传送完成时间是在假设执行压缩的情况下预估的完成数据块传送要花费的时间。基于这两个传送时间的比较,第一设备110可以确定执行数据压缩是否会阻碍数据块在网络连接上的传送,并基于此来确定是否要压缩该数据块。基于是否要压缩数据块的确定,可以进一步确定以何种方式来传送当前的数据块。数据块的可能的传送方式是:包括压缩数据块并且传送经压缩的数据块的第一传送方式、以及在无压缩的情况下直接传送数据块的第二传送方式。第一设备110可以选择其中一种方式来传送数据块。

在一些实施例中,如果第一传送完成时间超过第二传送完成时间(例如,),这意味着与执行压缩的情况相比,在不执行压缩的情况下第一设备110要花费更长的时间来完成数据块的传送。因此,第一设备110确定以第一传送方式来传送数据块。也就是说,第一设备110将会首先压缩数据块,然后向第二设备传送经压缩的数据块。在一些实施例中,如果于第一传送完成时间未超过第二传送完成时间(例如小于等于第二传送完成时间),这意味着与不执行压缩的情况相比,在执行压缩的情况下第一设备110要花费更长的时间来完成数据块的传送。在这种情况下,第一设备110确定以第二传送方式传送数据块。也就是说,第一设备110将会在无压缩的情况下直接传送数据块。在一些实施例中,如果用于确定数据传送方式的过程200由第一设备110以外的其他设备(例如,管理器)执行,可以向第一设备110指示所确定的传送方式,以便第一设备110基于该指示来传送数据块。

以上关于图2描述了为一个数据块确定传送方式的实施例。在一些实施例中,还可以针对要被传送的多个数据块中的每一个,均按照图2的过程200来确定其传送方式。此外,针对传送块的传送目的地设备不同,还可以基于与目的地设备的连接的网络传送速率来确定向该设备传送的数据块的传送方式。根据本公开的一些实施例,在数据传送之前,基于传送完成时间来衡量执行数据压缩和不执行数据压缩两种情况,从而选择适合要传送的数据并且适合执行传送的设备的数据传送方式。如果两个设备之间的网络传送速率较高和/或进行发送的设备的压缩操作更费时,则可以不执行数据压缩而是直接传送数据块。另一方面,如果两个设备之间的网络传送速率较低和/或进行发送的设备的压缩不太费时,则可以执行数据压缩以降低要传送的数据量,从而达到整体传送完成时间的降低。通过这种方式,可以有效避免压缩的执行阻碍快速网络传送速率。

以上讨论的实施例主要考虑数据块的传送完成时间来确定数据块的传送方式。在一些实施例中,还可以结合其他因素来确定数据块的传送方式。这些因素的一些示例包括传送成本、数据块本身的特性、第二设备是否期望接收压缩数据、第一设备和/或第二设备的资源状态。这些因素中的一个或多个因素可以与传送完成时间一起用于确定数据块的传送方式,即是否要在传送之前执行压缩。在一些情况中,如果基于某个因素确定不执行压缩,第一设备110可以确定要选择第二传送方式。如果基于某个因素确定可执行压缩,第一设备110还继续考虑另一因素是否允许压缩的执行。如果要考虑的因素中的多个或全部因素指示可执行压缩,第一设备110确定要选择第一传送方式。对不同因素的考虑顺序可以不是固定的,或者基于因素的重要度来执行。

图3示出了根据本公开的一些实施例的结合多个因素来确定数据传送方式的过程300的流程图。过程300可以被认为是过程200的一个具体实现,特别是图2的框230的一个具体实现。过程300可以被实现在图1中要传送数据的任何设备110处。在另外一些实施例中,过程300也可以由要传送数据的设备110之外的其他设备(例如控制设备、管理设备)来执行,这样的设备用于实现对设备110的数据传送方式的控制。本公开的实施例在此方面不做限制。为便于讨论,下文将结合图1进行说明。应当理解,过程300中示出的步骤及其顺序仅是示例,过程300还可以包括未示出的附加步骤和/或可以省略所示出的步骤并且步骤之间的顺序也可以改变。

针对每个待传送的数据块,第一设备110均可以基于过程300来确定其传送方式。如以上所述,第一设备110可能要向第二设备110传送一个或多个数据块。这些数据块可以在队列中排队。对于每个数据块,可以判断该数据块的传送方式。如果存在待传送的数据块,第一设备110可以按照数据块的顺序选择当前要传送的数据块。

在310,第一设备110确定数据块是否可压缩。数据块是否可压缩由数据块本身的特性决定。虽然可以对任何数据块都执行压缩操作,但是有些数据块可能已经处于压缩格式(例如,jpeg格式的图片或者mp3格式的音频文件),继续执行压缩不会进一步降低数据块的大小。这样的数据块的压缩率将较低。在一些实施例中,第一设备110可以确定数据块的压缩率,并基于压缩率来确定数据块是否可压缩。例如,如果压缩率较低(例如低于预定阈值),第一设备110可以确定为数据块不可压缩。相反,如果数据块的压缩率较大(例如超过预定阈值),可以确定数据块可压缩。在一些实施例中,还可以基于其他方式,例如数据块的格式来确定数据块是否可压缩。

可以利用各种当前已知或者将来待开发的技术来确定给定数据块的压缩率。作为一个示例,简单介绍基于熵的压缩率检测方法。具体地,可以以给定采样率对数据块中的数据(例如,二进制表示的数据)进行采样。采样率例如可以是50%或者其他值。然后,在某个数据单位(例如字节)级别上确定采样后的数据块的熵(也称为信息熵)。为了快速确定熵的结果,可以不必要计算采样后的数据块的每个字节的实际熵。替代地,可以仅计算每个字节中一定数目(而不是全部)的连续比特的熵以作为近似熵。例如可以仅使用每个字节的最后五个比特来计算近似熵。这可以通过使用按比特操作来实现快速计算。进一步地,基于所确定的数据块的熵来衡量数据块的压缩率。

在一些实施例中,如果第一设备110在310确定数据块不可压缩,第一设备110可以在370确定选择用于数据传送的第二传送方式,即不执行压缩而直接传送数据块。因为此时数据块本身的压缩率较低,无需进一步压缩。如果在310确定数据块可压缩,第一设备110可以基于其他因素来进一步确认是否要执行压缩。

在一些实施例中,第一设备110在320基于传送完成时间来进一步确定是否要压缩数据块,这进而可以影响数据块的传送方式的确定。基于传送完成时间的确定如以上参照图2的过程200所描述的。第一设备110分别确定在无压缩的情况下和在执行压缩的情况下数据块的第一传送完成时间和第二传送完成时间。如果第一传送完成时间未超过第二传送完成时间,这意味着不执行压缩会使得数据块的传送被更快完成。此时,第一设备110可以确定不要压缩数据块,并且在370选择第二传送方式用于传送数据块。如果第一传送完成时间超过第二传送完成时间,这意味着执行压缩会使得数据块的传送被更快完成。此时,第一设备110可以继续基于其他因素来进一步确认是否要执行压缩。

在一些实施例中,即使传送完成时间的比较指示可执行数据块的压缩,第一设备110还可以在330继续基于传送完成成本来确定是否要压缩数据块,这进而可以影响数据块的传送方式的确定。数据块的传送完成成本指的是在第一设备110获得数据块到经由网络连接将数据块的全部数据量(例如,从第一字节到最后一个字节)发送出去要花费的成本。在一些实施例中,传送完成成本与从第一设备到第二设备的数据传送的收费策略有关。在一些数据传送场景中,特别是在跨不同云提供商供应的云系统之间传送数据时,要对数据传送收取相应的费用。在一些实施例中,这样的收费策略还与传送的数据量相关。收费策略可以由服务提供商(例如云提供商)制定,并且还可能与其他因素有关。

在一些实施例,第一设备110基于收费策略和数据块的大小,确定在无压缩的情况下数据块的第一传送完成成本,并且还基于收费策略和经压缩的所述数据块的大小来确定在执行压缩的情况下数据块的第二传送完成成本。例如,假设c()表示收费策略的计费公式。在一个简单例子中,收费策略c()可以指示单位数据量的费用,例如以usd/gb为单位或者其他类似单位。基于此,第一传送完成成本可以被表示为c(sc),并且第二传送完成成本可以被表示为c(r*sc),其中如以上提及的,sc表示数据块的大小,并且r*sc表示经压缩的数据块的大小。此处的传送完成成本实际上仅涉及数据的传送带来的成本,并且因此也可以被传送成本。

在一些实施例中,这样的传送完成成本与传送完成时间有关。对于有些用户而言,时间与成本息息相关。如果数据块的传送的紧急程度很高,用户可能愿意花费一定的成本来换取数据传送尽可能快被完成。因此可以配置一个时间成本参数,用以定义用户愿意为时间节约而付出的成本。时间成本参数的单位例如可以被定义为单位时间的成本大小,例如usd/秒或usd/小时。这可以理解,如果时间成本参数为xusd/小时,这意味着用户愿意为一个小时花费x美元。时间成本参数可以由用户指定。

在一些实施例中,第一设备110可以基于第一传送完成时间和时间成本参数来确定在无压缩的情况下数据块的第一时间成本,并且基于第二传送完成时间和时间成本参数来确定在执行压缩的情况下数据块的第二时间成本。假设时间成本参数被表示为ω并且被定义为单位时间的成本大小,那么第一时间成本可以被确定为并且第二时间成本可以被确定为

第一设备110进而可以基于第一时间成本和在无压缩的情况下的传送成本来确定第一传送完成成本。例如,第一传送完成成本可以被确定为类似地,第一设备110还可以基于第二时间成本和在无压缩的情况下的传送成本来确定第二传送完成成本。例如,第二传送完成成本可以被确定为此处确定的传送完成成本不仅考虑了设备之间的数据成本被计费的情况,还考虑了由于数据的压缩/不压缩以及由于数据传送而导致的时间成本。

在一些实施例中,第一设备110基于第一传送完成成本和第二传送完成成本的比较来确定是否要压缩数据块。第一传送完成成本是在假设无压缩的情况下预估的完成数据块传送要花费的成本,第二传送完成成本是在假设执行压缩的情况下预估的完成数据块传送要花费的成本。基于这两个传送成本的比较,第一设备110可以确定执行数据压缩是否会在数据块传送过程中导致更高的成本,并基于此来确定是否要压缩该数据块。

具体地,如果第一传送完成成本超过第二传送完成成本(例如,这意味着与执行压缩的情况相比,在不执行压缩的情况下第一设备110将花费更多成本来完成数据块的传送,因此第一设备110确定要压缩数据块。如果第一传送完成本未超过第二传送完成成本(例如小于等于第二传送完成成本),这意味着与不执行压缩的情况相比,在执行压缩的情况下第一设备110要花费更多成本来完成数据块的传送,因此第一设备110确定不压缩数据块。

在一些实施例中,如果在330基于传送完成成本确定要压缩数据块,过程300行进到370,第一设备110选择用于数据传送的第二传送方式,即不执行压缩而直接传送数据块。因为针对该数据块而言,压缩操作将会引入更多的不期望的成本。如果在330确定数据块可压缩,第一设备110可以继续基于其他因素来进一步确认是否要执行压缩。

在一些实施例中,即使传送完成成本的比较指示可执行数据块的压缩,第一设备110还可以在340基于第二设备110的压缩指示来确定是否要压缩数据块,这进而可以影响数据块的传送方式的确定。压缩指示用于指示第二设备110是否期望接收压缩数据。由于在接收到经压缩的数据块之后,为了使用该数据块,第二设备110可能还需要执行解压缩的操作。这样的操作也是费时并且要消耗一定的资源。如果第二设备110不期望这样的解压缩操作,例如第二设备110的处理资源较为有限或者第二设备110在接收到数据块之后需要立即使用数据块,那么可以向第一设备110指示第二设备110不期望接收压缩数据。这样的压缩指示可以经由第一设备110与第二设备110之间已建立的网络连接被发送给第一设备110,或者可以经由其他设备通知。在一些实施例中,压缩指示可以无需针对每个数据块动态发送,而是可以例如以静态或者半静态的方式在一段时间内向第一设备110通知一次,这可以节约设备之间的传送数据量。通过考虑压缩指示,可以基于第二设备110对数据压缩或不压缩的实际需求来确定是否压缩当前数据块。

如果基于压缩指示确定第二设备110不期望接收压缩数据,那么过程300行进到370,第一设备110选择用于数据传送的第二传送方式,即不执行压缩而直接传送数据块。如果基于压缩指示确定第二设备110不反对数据压缩或者甚至期望数据压缩,那么第一设备110可以继续基于其他因素来进一步确认是否要执行压缩。

在一些实施例中,第一设备110在350基于资源状态来确定是否要压缩数据块。影响数据块是否压缩的决定的资源状态可以包括第一设备110本身的第一资源状态和/或第二设备110的第二资源状态。每个设备的资源状态指示该设备的当前可用资源状况。通过可用资源状况,第一设备110可以判断第一设备110本身和/或第二设备110是否有足够资源执行压缩和/或解压缩。因为不同设备的处理资源(例如计算资源和存储资源)可能不同,不同设备的当前工作负载也不同,如果设备的资源已经被其他任务所占用,那么可能无法分配额外的资源用于执行数据压缩(或者相应的数据解压缩)。此外,对于第二设备而言,如果处理能力有限(例如资源有限),接收通过较高的网络传送速度接收到经压缩的数据块,可能也难以以合适的速度对数据块执行解压缩。对于这些情况而言,不执行数据压缩将是更好的选择。在一些实施例中,第二设备110的资源状态可以由第二设备110发送或者由其他设备通知。在一些实施例中,由于设备的有些类型的资源是动态变化的,可以仅向第一设备110通知相对静态的一些资源类型的状态。

如果基于第一设备和/或第二设备的资源状态确定不压缩数据块,过程300行进到370,第一设备选择用于数据块的第二传送方式,即不执行压缩而直接传送数据块。如果基于第一设备和/或第二设备的资源状态确定不压缩数据块,并且如果不需要考虑额外的影响数据压缩的因素,过程300行进到360,第一设备110选择用于数据块的第一传送方式,即压缩该数据块并且传送经压缩的数据块。

图3描述了基于多种因素来确定是否要压缩数据块并进而确定数据块的传送方式。在图3的示例中,按顺序考虑多个因素,并且如果其中一个因素指示无法压缩数据块,则选择第二传送方式,而当全部考虑的因素均指示要压缩数据块时,才选择第一传送方式。然而,这仅仅是一个具体的示例。在其他变型中,可以仅考虑这些因素中的一个或一些。例如,可以省略对于压缩指示、资源状态等因素的考虑。此外,多个因素对于压缩与否的判断结果将被综合考虑。例如,如果两个以上的因素(而非全部因素)均指示要压缩数据块,选择第一传送方式。又例如,如果其中一个因素指示要要压缩数据块,而无论基于其他因素的判断结果如何,都可选择第一传送方式。在一些实施例中,过程300的步骤的顺序也可以改变。例如,可以首先基于传送完成成本确定是否要压缩数据块,然后再基于传送完成时间来确定是否要压缩数据块。本公开的实施例在此方面均不受限制。

根据本公开的一些实施例,可以综合考虑多方面的因素来确定应当如何执行数据传送。下面描述一些数据传送的示例,可以更好地理解本公开中的数据传送方式的确定如何有利促进设备之间的数据传送效率。

在图1的环境100中,假设具有有限计算能力的边缘设备110-4期望利用云系统102中具有较强计算能力的设备110-1执行数据分析任务,因此边缘设备110-4要向设备110-1传送数据。由于设备110-4到设备110-1的网络传送速率较低,在这种情况下,如果不执行数据压缩,较大的数据传送量将造成这个数据分析任务的瓶颈。另一方面,如果直接判断压缩全部数据,那么由于计算能力有限,边缘设备110-4的压缩速率低于网络传送速率。通过利用本公开的方案,可以在压缩速率与网络传送速率之间实现平衡,恰当地判断是否应当在压缩或者不压缩的情况下发送数据,甚至还可以以数据块为单位来执行这样的数据压缩决策。这可以极大提高两个设备之间的数据传送完成效率,加速数据分析任务的完成。

在另一个示例中,如果云系统内的两个设备(例如设备110-2和110-3)要执行数据传送,由于这两个设备之间的网络传送速率非常高,利用本公开的方案,可以确定无需执行压缩而是直接传送数据。这避免了压缩操作不必要地延长传送完成时间和带来额外的资源消耗。

图4示出了可以用来实施本公开的实施例的示例设备400的示意性框图。设备400可以用于实现图2的过程200和/或图3的过程300。设备400可以被实现为图1的任一设备110或者被实现为用于控制设备110的数据传送方式的其他设备。如图所示,设备400包括中央处理单元(cpu)401,其可以根据存储在只读存储器(rom)402中的计算机程序指令或者从存储单元408加载到随机访问存储器(ram)403中的计算机程序指令,来执行各种适当的动作和处理。在ram403中,还可存储设备400操作所需的各种程序和数据。cpu401、rom402以及ram403通过总线404彼此相连。输入/输出(i/o)接口405也连接至总线404。

设备400中的多个部件连接至i/o接口405,包括:输入单元406,例如键盘、鼠标等;输出单元407,例如各种类型的显示器、扬声器等;存储单元408,例如磁盘、光盘等;以及通信单元409,例如网卡、调制解调器、无线通信收发机等。通信单元409允许设备400通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

处理单元401执行上文所描述的各个方法和处理,例如过程200和/或过程300。例如,在一些实施例中,过程200和/或过程300可被实现为计算机软件程序或计算机程序产品,其被有形地包含于机器可读介质,诸如非瞬态计算机可读介质,诸如存储单元408。在一些实施例中,计算机程序的部分或者全部可以经由rom402和/或通信单元409而被载入和/或安装到设备400上。当计算机程序加载到ram403并由cpu401执行时,可以执行上文描述的过程200和/或过程300的一个或多个步骤。备选地,在其他实施例中,cpu401可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行过程200和/或过程300。

本领域的技术人员应当理解,上述本公开的方法的各个步骤可以通过通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本公开不限制于任何特定的硬件和软件结合。

应当理解,尽管在上文的详细描述中提及了设备的若干装置或子装置,但是这种划分仅仅是示例性而非强制性的。实际上,根据本公开的实施例,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。

以上所述仅为本公开的可选实施例,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等效替换、改进等,均应包含在本公开的保护范围之内。

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