CN105045873B - 一种数据文件的推送方法、装置及系统 - Google Patents
一种数据文件的推送方法、装置及系统 Download PDFInfo
- Publication number
- CN105045873B CN105045873B CN201510422363.9A CN201510422363A CN105045873B CN 105045873 B CN105045873 B CN 105045873B CN 201510422363 A CN201510422363 A CN 201510422363A CN 105045873 B CN105045873 B CN 105045873B
- Authority
- CN
- China
- Prior art keywords
- data
- data file
- compression
- compressed
- push
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据文件的推送方法、装置及系统,其中该方法包括:获取需推送的数据文件;确定数据接收端的资源敏感类型;根据资源敏感类型确定数据文件需做压缩处理时,获取对应的压缩算法;利用压缩算法对数据文件进行压缩;将压缩后的数据文件推送至对应的数据接收端。本发明实施例在数据文件传输前,根据数据接收端的特性确定需推送的数据文件是否做压缩,若需要,则选择相应的压缩算法对数据文件进行压缩并推送,可有效的限制了推送的数据文件的大小,从而降低了同步的数据量,减少网络带宽占用率,提高数据的时效性。
Description
技术领域
本发明属于通信技术领域,尤其涉及一种数据文件的推送方法、装置及系统。
背景技术
目前在广点通、微信朋友圈的广告推荐系统中,为了提升推荐的精准度,经常会使用到一些外部数据(如广告点击数据、广告发布数据等)来做算法预测。这些数据往往需要保持强一致性,且由于数据特性原因不便做增量更新,故目前采取的方式是把这类数据先存放在文件中再推送到目的机器上。
该推荐系统包括任务提交客户端(MC,Model Client)、推送数据接收实例(MA,Model Agent)以及推送服务器(PS,Push Server);数据文件推送之前,MC把数据文件上传到hadoop分布式文件系统(HDFS,Hadoop Distributed File System)中,并在大型分布式协调系统(zookeeper)中记录一次推送任务;其后,PS感知到zookeeper上有新的推送任务,则把数据文件从HDFS上拉取下来并推送到各个MA,以使实时广告推荐系统(TRE)加载数据文件,其中MA跟实时广告推荐系统部署在统一机器上。
在对现有技术的研究和实践过程中,本发明的发明人发现,一般情况下,在广告推荐系统中,这些数据的同步越快,推荐的效果就会越好。但随着推荐算法的发展,数据文件也越来越大,即需要同步的数据量也越来越大,因此会导致网络带宽占用率较大,数据的时效性不高的问题。
发明内容
本发明的目的在于提供一种数据文件的推送方法、装置及系统,旨在减少网络带宽占用率,提高数据的时效性。
为解决上述技术问题,本发明第一方面提供以下技术方案:
一种数据文件的推送方法,其中包括:
获取需推送的数据文件;
确定数据接收端的资源敏感类型;
根据所述资源敏感类型确定所述数据文件需做压缩处理时,获取对应的压缩算法;
利用所述压缩算法对所述数据文件进行压缩;
将压缩后的数据文件推送至对应的数据接收端。
本发明第二方面提供以下技术方案:
一种数据文件的推送装置,其中包括:
第一获取单元,用于获取需推送的数据文件;
确定单元,用于确定数据接收端的资源敏感类型;
第二获取单元,用于根据所述资源敏感类型确定所述数据文件需做压缩处理时,获取对应的压缩算法;
压缩推送单元,用于利用所述压缩算法对所述数据文件进行压缩,并将压缩后的数据文件推送至对应的数据接收端。
本发明第三方面提供以下技术方案:
一种数据文件的推送系统,包括任务提交端、推送服务器以及数据接收端,其中,所述推送服务器为如上所述的数据文件的推送装置,用于获取需推送的数据文件;确定数据接收端的资源敏感类型;根据资源敏感类型确定数据文件需做压缩处理时,获取对应的压缩算法;利用压缩算法对数据文件进行压缩;将压缩后的数据文件推送至对应的数据接收端;
所述任务提交端,用于将数据文件上传到预设的分布式文件系统,并在预设的分布式协调系统提交推送任务请求;
所述数据接收端,用于接收所述数据文件的推送装置推送的数据文件。
相对于现有技术,本实施例,根据数据接收端的资源敏感类型确定数据文件需做压缩处理时,获取该资源敏感类型对应的压缩算法,其后利用该压缩算法对数据文件进行压缩,并将压缩后的数据文件推送至对应的数据接收端;本发明实施例在数据文件传输前,根据数据接收端的特性确定需推送的数据文件是否做压缩,若需要,则选择相应的压缩算法对数据文件进行压缩并推送,可有效的限制了推送的数据文件的大小,从而降低了同步的数据量,减少网络带宽占用率,提高数据的时效性。
附图说明
下面结合附图,通过对本发明的具体实施方式详细描述,将使本发明的技术方案及其它有益效果显而易见。
图1a是本发明提供的数据文件的推送方法的场景示意图;
图1b是本发明第一实施例提供的数据文件的推送方法的流程示意图;
图2a为本发明第二实施例提供的数据文件的推送的工作机制示意图;
图2b为本发明第二实施例提供的数据文件的推送方法的流程示意图;
图3为本发明第三实施例提供的数据文件的推送装置的结构示意图。
具体实施方式
请参照图式,其中相同的组件符号代表相同的组件,本发明的原理是以实施在一适当的运算环境中来举例说明。以下的说明是基于所例示的本发明具体实施例,其不应被视为限制本发明未在此详述的其它具体实施例。
在以下的说明中,本发明的具体实施例将参考由一部或多部计算机所执行的步骤及符号来说明,除非另有述明。因此,这些步骤及操作将有数次提到由计算机执行,本文所指的计算机执行包括了由代表了以一结构化型式中的数据的电子信号的计算机处理单元的操作。此操作转换该数据或将其维持在该计算机的内存系统中的位置处,其可重新配置或另外以本领域测试人员所熟知的方式来改变该计算机的运作。该数据所维持的数据结构为该内存的实体位置,其具有由该数据格式所定义的特定特性。但是,本发明原理以上述文字来说明,其并不代表为一种限制,本领域测试人员将可了解到以下所述的多种步骤及操作亦可实施在硬件当中。
本发明的原理使用许多其它泛用性或特定目的运算、通信环境或组态来进行操作。所熟知的适合用于本发明的运算系统、环境与组态的范例可包括(但不限于)手持电话、个人计算机、服务器、多处理器系统、微电脑为主的系统、主架构型计算机、及分布式运算环境,其中包括了任何的上述系统或装置。
本发明实施例提供一种数据文件的推送方法、装置和系统。
参见图1a,该图为本发明实施例所提供的数据文件推送的场景示意图,该数据文件推送系统可以包括数据文件推送装置,可简称推送服务器(PS),主要用于获取需推送的数据文件;确定数据接收端(MA)的资源敏感类型,例如可以属于中央处理器(CPU,CentralProcessing Unit)敏感型、或者属于网络带宽敏感型、或者既属于CPU敏感型,又属于网络带宽敏感型等等;其后,根据前述资源敏感类型确定出数据文件需要做压缩处理时,获取与该资源敏感类型对应的压缩算法;利用压缩算法对该数据文件进行压缩,并将压缩后的数据文件推送至对应的数据接收端。
此外,该数据文件推送系统还可以包括任务提交端(MC),主要用于将数据文件上传到预设的分布式文件系统,并在预设的分布式协调系统提交推送任务请求。例如,当推送服务器感知分布式协调系统上有新的推送任务请求,就会从分布式文件系统上下载数据文件,下载完成后进入就绪状态;当然,该数据文件推送系统还可以包括数据接收端,若空闲时则进入就绪状态,并接收推送服务器推送的数据文件,以供线上生产系统加载,例如,可以供广告推荐系统TRE加载数据文件,等等。
以下将分别进行详细说明。
第一实施例
在本实施例中,将从数据文件的推送装置(如推送服务器PS)的角度进行描述,该数据文件推送装置具体可以集成在服务器或网关等网络设备中。
一种数据文件的推送方法,包括:获取需推送的数据文件;确定数据接收端的资源敏感类型;根据该资源敏感类型确定所述数据文件需做压缩处理时,获取对应的压缩算法;利用该压缩算法对数据文件进行压缩;将压缩后的数据文件推送至对应的数据接收端。
请参阅图1,图1是本发明第一实施例提供的数据文件的推送方法的流程示意图,具体流程可以包括:
在步骤S101中,获取需推送的数据文件。
本发明实施例中的数据文件可以为任意格式的文件,视具体使用场景的需求而定;比如,在广告推荐系统中,可以具体指广告点击、广告发布等数据文件。
可以理解的是,推送服务器可以从预设的分布式文件系统中获取到需推送的数据文件,其中,所述数据文件由任务提交端MC上传至该分布式文件系统中的。
比如,任务提交端先将数据文件上传到预设的hadoop分布式文件系统(即HDFS)中,并在分布式协调系统zookeeper提交推送任务请求,即在zookeeper中记录一次推送任务。推送服务器感知到分布式协调系统上有新的推送任务请求时,会从hadoop分布式文件系统上下载对应的需要推送的数据文件。
在步骤S102中,确定数据接收端的资源敏感类型。
在某些实施方式中,确定数据接收端的资源敏感类型,可以包括:
根据数据接收端对中央处理器以及网络带宽的敏感度,确定出数据接收端的资源敏感类型,其中,前述资源敏感类型可以包括中央处理器敏感型和/或网络带宽敏感型等等。
可以理解的是,由于不同的数据接收端对中央处理器、网络带宽的敏感性也是不一样的,因此,在确定数据接收端的资源敏感类型之后,还可以包括:
将资源敏感类型相同的数据接收端进行组合,得到数据接收端集合(set);此时,推送服务器会将压缩后的数据文件推送至对应的数据接收端集合,以使得发送更加有针对性和目的性。
在步骤S103中,根据资源敏感类型确定数据文件需做压缩处理时,获取对应的压缩算法。
在步骤S104中,利用该压缩算法对数据文件进行压缩。
在步骤S105中,将压缩后的数据文件推送至对应的数据接收端。
其中,所述步骤S103至步骤S105可具体为:
可以理解的是,每一资源敏感类型与压缩算法相对应,推送服务器在根据资源敏感类型确定数据文件需做压缩处理时,利用相应的压缩算法对数据文件进行压缩。
比如,可具体的,若数据接收端或数据接收端集合是网络带宽敏感型的,需要严格限制推送的数据文件占用的网络带宽,可以通过限速的压缩算法来实现;若数据接收端或数据接收端集合是中央处理器敏感型的,推送数据文件时需要尽量减少对中央处理器的消耗,因此可以选用消耗中央处理器较少的压缩算法做压缩或不做压缩;若数据接收端或数据接收端集合既输入中央处理器敏感型又属于网络带宽敏感型的,可以考虑选用低耗中央处理器的压缩算法做压缩,等等。
进一步的,对数据文件进行压缩以及对压缩后数据文件进行推送可以包括:
(1)根据数据文件的大小,将数据文件分为多个数据块;
(2)根据对应的压缩算法,对数据块分别进行压缩,得到相应的压缩包,并将压缩包推送至对应的数据接收端。
更进一步的,若推送服务器给数据接收端推送的数据文件有做压缩,由于是对每个推送包分别做压缩,因此压缩后的大小可能不一致,则该实施例可以通过限制推送服务器的发包速率方式以避免由此带来的网络的波动。比如,可具体的:
(一)当确定将一个压缩包推送至对应的数据接收端后,计算已推送的压缩包的平均压缩率;
(二)根据平均压缩率确定当前需要压缩的数据块的大小;
比如,先确定满足预设范围的压缩包的大小的预估值,其后根据平均压缩率以及预估值确定当前需要压缩的数据块的大小;也就是说,在保证压缩包的大小固定不变的情况下,根据平均压缩率确定当前需要压缩的数据块的大小。
(三)根据当前需要压缩的数据块的大小确定需要压缩的数据块;
(四)根据对应的压缩算法,对需要压缩的数据块进行压缩得到相应的压缩包,并将压缩包推送至对应的数据接收端。
可以理解的是,将压缩包推送至对应的数据接收端时,还可以记录当前压缩后推送的压缩包大小和时耗,并根据压缩后推送的压缩包大小和时耗调整发包频率,从而使得推送的网络宽带满足预设阈值。
该实施例中,在确定数据接收端的资源敏感类型之后,还可以包括:
根据所述资源敏感类型确定所述数据文件不需做压缩处理时,将所述数据文件推送至对应的数据接收端。即该场景下,推送服务器无需对数据文件进行压缩,直接将其进行推送。
需要说明的是,本发明实施例中的推送服务器可以包括主推送服务器(MPS,Master Push Server)和从推送服务器(SPS,Slave Push Server),其中,主推送服务器负责推送任务的调度,从推送服务器执行具体推送任务。
比如,可具体的,当从推送服务器感知到分布式协调系统上有新的推送任务请求时,会从hadoop分布式文件系统上下载对应的需要推送的数据文件,确定下载完成后,从推送服务器进入就绪状态;同时,数据接收端在空闲时进入就绪状态,当主推送服务器感知到分布式协调系统上有新的推送任务请求,且确定出从推送服务器以及数据接收端均进入就绪状态时,主推送服务器进行任务的调度,当从推送服务器接收到主推送服务器的调度时,执行推送任务。
由上述可知,本实施例提供的数据文件的推送方法,根据数据接收端的资源敏感类型确定数据文件需做压缩处理时,获取该资源敏感类型对应的压缩算法,其后利用该压缩算法对数据文件进行压缩,并将压缩后的数据文件推送至对应的数据接收端;本发明实施例在数据文件传输前,根据数据接收端的特性确定需推送的数据文件是否做压缩,若需要,则选择相应的压缩算法对数据文件进行压缩并推送,可有效的限制了推送的数据文件的大小,从而降低了同步的数据量,减少网络带宽占用率,提高数据的时效性。
第二实施例
根据第一实施例所描述的方法,以下将举例作进一步详细说明。
该实施例中,可参考图2a,为该实施例的数据文件的推送的工作机制示意图,包括,任务提交端、推送服务器以及数据接收端等。首先,将各个数据接收端进行组合,得到多个数据接收端集合(set);其次,推送服务器根据任务提交端在分布式协调系统zookeeper提交的任务请求,下载需要推送的数据文件,进行相应的调度,以及向数据接收端集合推送数据文件,以供广告推荐系统TRE加载数据文件。以下将进行详细说明。
请参阅图2b,图2b为本发明第二实施例提供的数据文件的推送方法的流程示意图,具体流程可以包括:
在步骤S201中,任务提交端将数据文件上传到HDFS,并在zookeeper上提交推送任务请求。
在步骤S202中,推送服务器根据zookeeper上的推送任务请求,从HDFS上下载需推送的数据文件。
其中,所述步骤S201与步骤S202可具体为:
推送服务器可以从HDFS中获取到需推送的数据文件,其中,所述数据文件由任务提交端MC上传至HDFS中的。
可以理解的是,本发明实施例中的推送服务器可以包括主推送服务器和从推送服务器,其中,主推送服务器负责推送任务的调度,从推送服务器执行具体推送任务。
比如,可具体的,当从推送服务器感知到分布式协调系统zookeeper上有新的推送任务请求时,会从HDFS(hadoop分布式文件系统)上下载对应的需要推送的数据文件,确定下载完成后,从推送服务器进入就绪状态;同时,数据接收端在空闲时进入就绪状态,当主推送服务器感知到分布式协调系统上有新的推送任务请求,且确定出从推送服务器以及数据接收端均进入就绪状态时,主推送服务器进行任务的调度,当从推送服务器接收到主推送服务器的调度时,执行推送任务。
在步骤S203中,推送服务器确定数据接收端的资源敏感类型。
比如,可以根据数据接收端对中央处理器以及网络带宽的敏感度,确定出数据接收端的资源敏感类型,其中,前述资源敏感类型可以包括中央处理器敏感型和/或网络带宽敏感型等等。
可以理解的是,在数据文件推送至数据接收端之前,可以先将资源敏感类型相同的数据接收端进行组合,得到多个数据接收端集合,以便推送服务器会将数据文件推送至对应的数据接收端集合,以使得发送更加有针对性和目的性。
进一步的,可以根据数据接收端的资源敏感类型,自动判断需推送的数据文件是否做压缩,从而根据判断结果执行步骤S204a或步骤S204b。
在步骤S204a中,推送服务器根据资源敏感类型确定数据文件不需做压缩处理时,将数据文件直接推送至对应的数据接收端。
在步骤S204b中,推送服务器根据资源敏感类型确定数据文件需做压缩处理时,获取对应的压缩算法。
在步骤S205中,推送服务器根据所述数据文件的大小,将所述数据文件分为多个数据块。
在步骤S206中,推送服务器根据所述压缩算法,对所述数据块分别进行压缩,得到相应的压缩包,并将所述压缩包推送至对应的数据接收端。
其中,所述步骤S204b至步骤S206可具体为:
也就是说,在优选的实施方式中,在数据文件推送传输时,对数据文件进行压缩:如,任务提交端将原始数据文件上传到HDFS;从推送服务器(只做下载和推送,对CPU要求不高,故适合做压缩)在给set(数据接收端集合)进行推送时,根据set的特性(资源敏感类型)确定需要做压缩或不需要做压缩;若确定需要做压缩,则自动选择合适的压缩算法,对每个推送的数据包进行压缩;数据接收端接收到数据包判断出有压缩则对其进行解压缩。
进一步优选的,在数据文件推送传输时,还可以对网络带宽进行限速;如,假设,从推送服务器给数据接收端集合推送的数据文件是有做压缩的,由于对整个数据文件进行压缩,会对内存空间的消耗较大,因此需要对数据文件进行分为多个数据块,对每个数据块分别做压缩,以减少内存的消耗。
可以理解的是,压缩后的数据块(也就是压缩包)大小可能不一致,可通过限制从推送服务器的发包速率来限制推送数据文件时所占的网络资源;但是,这种方式可能会造成网络的波动,因此对网络带宽敏感的set来说,还可做出如下调整,包括:
步骤1、推送服务器确定将一个压缩包推送至对应的数据接收端后,计算已推送的压缩包的平均压缩率;
比如,该实施例中,平均压缩率CRa=已推送的压缩包总大小Sca/已推送原始数据大小So*100%。
步骤2、推送服务器根据该平均压缩率确定当前需要压缩的数据块的大小;
可以理解的是,可先确定满足预设范围的压缩包的大小的预估值,其次根据该平均压缩率以及该预估值确定当前需要压缩的数据块的大小;较为优选的,可以在保证压缩包的大小固定不变的情况下,根据平均压缩率确定当前需要压缩的数据块的大小。
比如,预估下一个发送的原始数据块大小Po=期望压缩包大小Pe/平均压缩率CRa,可选取期望压缩包的大小(即满足预设范围的压缩包的大小的预估值)作为第一个需要压缩的数据块的大小,其中,期望压缩包的大小可预先设置在推送服务器中。
再比如,期望压缩包的大小Pe=32KB,当前平均压缩率为CRa=66.67%,则当前需要压缩的数据块的大小为Po=Pe/CRa=32KB/66.67%=48KB。
步骤3、推送服务器根据上述当前需要压缩的数据块的大小确定需要压缩的数据块;
步骤4、推送服务器根据上述压缩算法,对需要压缩的数据块进行压缩得到相应的压缩包,并将所述压缩包推送至对应的数据接收端。
可以理解的是,在将压缩包推送至对应的数据接收端时,可优选的通过平滑控制发包速率来控制占用带宽的大小,比如,可以记录当前压缩后推送的压缩包大小和时耗,并根据该压缩后推送的压缩包大小和时耗调整发包频率,以使推送的网络宽带满足预设阈值。
也就是说,每发送一个压缩包,就计算当前时间周期内(通常是一秒)已发送压缩包的总大小和当前时间周期内的时耗是否相匹配,不匹配则做调整,如果确定出发包频率快了则休眠相应的时间。
又比如,当前周期内期望时耗tce=当前周期内已推送的压缩包总大小Scc/限制占用带宽N,当前周期内的真实时耗为tcr;进一步的,假设,当前已发送压缩包总大小为256KB,限制占用贷款为32MB,当前周期内的真实时耗tcr=7ms,则当前周期内期望时耗:
tce=当前周期内已推送的压缩包总大小Scc/限制占用带宽为N=256KB/32MB=0.008秒=8毫秒(简单地按1MB=1000KB来计算);因为tcr<tce,即发送的速度比期望的快,需要休眠(8-7)=1毫秒的时间,从而实现根据该压缩后推送的压缩包大小和时耗调整发包频率,使得推送的网络宽带满足预设阈值。
由上述可知,本实施例提供的数据文件的推送方法,根据数据接收端的资源敏感类型确定数据文件需做压缩处理时,获取该资源敏感类型对应的压缩算法,其后利用该压缩算法对数据文件进行压缩,并将压缩后的数据文件推送至对应的数据接收端;本发明实施例在数据文件传输前,根据数据接收端的特性确定需推送的数据文件是否做压缩,若需要,则选择相应的压缩算法对数据文件进行压缩并推送,可有效的限制了推送的数据文件的大小,从而降低了同步的数据量;并且,推送时,通过平滑控制推送服务器的发包频率来控制占用带宽,可进一步的减少网络带宽占用率,提高数据的时效性。
第三实施例
为便于更好的实施本发明实施例提供的数据文件的推送方法,本发明实施例还提供一种基于上述数据文件的推送方法的装置。其中名词的含义与上述数据文件的推送的方法中相同,具体实现细节可以参考方法实施例中的说明。
请参阅图3,图3为本发明实施例提供的数据文件的推送装置的结构示意图,该装置可以包括第一获取单元301、确定单元302、第二获取单元303以及压缩推送单元304。
其中,该第一获取单元301,用于获取需推送的数据文件。
本发明实施例中的数据文件可以为任意格式的文件,视具体使用场景的需求而定;比如,在广告推荐系统中,可以具体指广告点击、广告发布等数据文件。
可以理解的是,推送服务器可以从预设的分布式文件系统中获取到需推送的数据文件,其中,所述数据文件由任务提交端MC上传至该分布式文件系统中的。
比如,任务提交端先将数据文件上传到预设的hadoop分布式文件系统(即HDFS)中,并在分布式协调系统zookeeper提交推送任务请求,即在zookeeper中记录一次推送任务。推送服务器感知到分布式协调系统上有新的推送任务请求时,会从hadoop分布式文件系统上下载对应的需要推送的数据文件。
该确定单元302,用于确定数据接收端的资源敏感类型。
在某些实施方式中,确定单元302可以根据数据接收端对中央处理器以及网络带宽的敏感度,确定出数据接收端的资源敏感类型,其中,前述资源敏感类型可以包括中央处理器敏感型和/或网络带宽敏感型等等。
可以理解的是,由于不同的数据接收端对中央处理器、网络带宽的敏感性也是不一样的,因此,上述数据文件的推送装置还可以包括组合单元,用于将资源敏感类型相同的数据接收端进行组合,得到数据接收端集合;则该压缩推送单元304,还可以用于将所述压缩后的数据文件推送至对应的数据接收端集合,以使得发送更加有针对性和目的性。
该第二获取单元303,用于根据上述资源敏感类型确定数据文件需做压缩处理时,获取对应的压缩算法;
压缩推送单元304,用于利用压缩算法对数据文件进行压缩,并将压缩后的数据文件推送至对应的数据接收端。
可以理解的是,每一资源敏感类型与压缩算法相对应,推送服务器在根据资源敏感类型确定数据文件需做压缩处理时,利用相应的压缩算法对数据文件进行压缩。
比如,可具体的,若数据接收端或数据接收端集合是网络带宽敏感型的,需要严格限制推送的数据文件占用的网络带宽,可以通过限速的压缩算法来实现;若数据接收端或数据接收端集合是中央处理器敏感型的,推送数据文件时需要尽量减少对中央处理器的消耗,因此可以选用消耗中央处理器较少的压缩算法做压缩或不做压缩;若数据接收端或数据接收端集合既输入中央处理器敏感型又属于网络带宽敏感型的,可以考虑选用低耗中央处理器的压缩算法做压缩,等等。
进一步的,所述压缩推送单元304,可具体用于根据所述数据文件的大小,将所述数据文件分为多个数据块,根据所述压缩算法,对所述数据块分别进行压缩,得到相应的压缩包,并将所述压缩包推送至对应的数据接收端。
更进一步的,若推送服务器给数据接收端推送的数据文件有做压缩,由于是对每个推送包分别做压缩,因此压缩后的大小可能不一致,则该实施例可以通过限制推送服务器的发包速率方式会造成网络的波动。
比如,可具体的,所述压缩推送单元304可以包括:
(一)计算子单元,用于当确定将一个压缩包推送至对应的数据接收端后,计算已推送的压缩包的平均压缩率;
比如,该实施例中,平均压缩率CRa=已推送的压缩包总大小Sca/已推送原始数据大小So*100%。
(二)第一确定子单元,用于根据所述平均压缩率确定当前需要压缩的数据块的大小;
比如,该第一确定子单元可具体用于确定满足预设范围的压缩包的大小的预估值,根据所述平均压缩率以及所述预估值确定当前需要压缩的数据块的大小。
进一步的,预估下一个发送的原始数据块大小Po=期望压缩包大小Pe/平均压缩率CRa,可选取期望压缩包的大小(即满足预设范围的压缩包的大小的预估值)作为第一个需要压缩的数据块的大小,其中,期望压缩包的大小可预先设置在推送服务器中。
再比如,期望压缩包的大小Pe=32KB,当前平均压缩率为CRa=66.67%,则当前需要压缩的数据块的大小为Po=Pe/CRa=32KB/66.67%=48KB。
(三)第二确定子单元,用于根据所述当前需要压缩的数据块的大小确定需要压缩的数据块;
(四)压缩子单元,用于根据所述压缩算法,对需要压缩的数据块进行压缩得到相应的压缩包;
(五)推送子单元,用于将所述压缩包推送至对应的数据接收端。
可以理解的是,该推送子单元,还可以用于将所述压缩包推送至对应的数据接收端时,记录当前压缩后推送的压缩包大小和时耗,并根据所述压缩后推送的压缩包大小和时耗调整发包频率,以使推送的网络宽带满足预设阈值。
也就是说,每发送一个压缩包,就计算当前时间周期内(通常是一秒)已发送压缩包的总大小和当前时间周期内的时耗是否相匹配,不匹配则做调整,如果确定出发包频率快了则休眠相应的时间。
又比如,当前周期内期望时耗tce=当前周期内已推送的压缩包总大小Scc/限制占用带宽N,当前周期内的真实时耗为tcr;进一步的,假设,当前已发送压缩包总大小为256KB,限制占用贷款为32MB,当前周期内的真实时耗tcr=7ms,则当前周期内期望时耗:
tce=当前周期内已推送的压缩包总大小Scc/限制占用带宽为N=256KB/32MB=0.008秒=8毫秒(简单地按1MB=1000KB来计算);因为tcr<tce,即发送的速度比期望的快,需要休眠(8-7)=1毫秒的时间,从而实现根据该压缩后推送的压缩包大小和时耗调整发包频率,使得推送的网络宽带满足预设阈值。
该实施例中,上述数据文件的推送装置还可以包括推送单元,在确定数据接收端的资源敏感类型之后,用于根据所述资源敏感类型确定所述数据文件不需做压缩处理时,将所述数据文件推送至对应的数据接收端。即该场景下,推送服务器无需对数据文件进行压缩,直接将其进行推送。
需要说明的是,本发明实施例中的推送服务器可以包括主推送服务器MPS和从推送服务器SPS,其中,主推送服务器负责推送任务的调度,从推送服务器执行具体推送任务。
比如,可具体的,当从推送服务器感知到分布式协调系统上有新的推送任务请求时,会从hadoop分布式文件系统上下载对应的需要推送的数据文件,确定下载完成后,从推送服务器进入就绪状态;同时,数据接收端在空闲时进入就绪状态,当主推送服务器感知到分布式协调系统上有新的推送任务请求,且确定出从推送服务器以及数据接收端均进入就绪状态时,主推送服务器进行任务的调度,当从推送服务器接收到主推送服务器的调度时,执行推送任务。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
该数据文件的推送装置具体可以集成在服务器或网关等网络设备中。
由上述可知,本实施例提供的数据文件的推送装置,根据数据接收端的资源敏感类型确定数据文件需做压缩处理时,获取该资源敏感类型对应的压缩算法,其后利用该压缩算法对数据文件进行压缩,并将压缩后的数据文件推送至对应的数据接收端;本发明实施例在数据文件传输前,根据数据接收端的特性确定需推送的数据文件是否做压缩,若需要,则选择相应的压缩算法对数据文件进行压缩并推送,可有效的限制了推送的数据文件的大小,从而降低了同步的数据量;并且,推送时,通过平滑控制推送服务器的发包频率来控制占用带宽,可进一步的减少网络带宽占用率,提高数据的时效性。
第四实施例
相应的,本发明实施例还提供一种数据文件的推送系统,包括本发明实施例提供的任一种数据文件的推送装置(即推送服务器),具体可参见实施例三,例如,具体可以如下:
获取需推送的数据文件;确定数据接收端的资源敏感类型;根据所述资源敏感类型确定所述数据文件需做压缩处理时,获取对应的压缩算法;利用所述压缩算法对所述数据文件进行压缩;将压缩后的数据文件推送至对应的数据接收端。
其中,利用压缩算法对数据文件进行压缩;将压缩后的数据文件推送至对应的数据接收端方式可以有多种,例如,可以如下:
数据文件的推送装置,具体用于从预设的分布式文件系统中获取需推送的数据文件,所述数据文件由任务提交端上传至所述分布式文件系统;将资源敏感类型相同的数据接收端进行组合,得到数据接收端集合;将所述压缩后的数据文件推送至对应的数据接收端集合;根据所述资源敏感类型确定所述数据文件不需做压缩处理时,将所述数据文件推送至对应的数据接收端;根据所述数据文件的大小,将所述数据文件分为多个数据块;根据所述压缩算法,对所述数据块分别进行压缩,得到相应的压缩包,并将所述压缩包推送至对应的数据接收端。
进一步的,数据文件的推送装置,还用于当确定将一个压缩包推送至对应的数据接收端后,计算已推送的压缩包的平均压缩率;根据所述平均压缩率确定当前需要压缩的数据块的大小;根据所述当前需要压缩的数据块的大小确定需要压缩的数据块;根据所述压缩算法,对需要压缩的数据块进行压缩得到相应的压缩包,并将所述压缩包推送至对应的数据接收端;记录当前压缩后推送的压缩包大小和时耗,并根据所述压缩后推送的压缩包大小和时耗调整发包频率,以使推送的网络宽带满足预设阈值;确定满足预设范围的压缩包的大小的预估值;根据所述平均压缩率以及所述预估值确定当前需要压缩的数据块的大小,具体可参见前面的实施例。
此外,该数据文件的推送系统还可以包括其他的设备,比如任务提交端,主要用于将数据文件上传到预设的分布式文件系统,并在预设的分布式协调系统提交推送任务请求。例如,当推送服务器感知分布式协调系统上有新的推送任务请求,就会从分布式文件系统上下载数据文件,下载完成后进入就绪状态。
当然,该数据文件推送系统还可以包括数据接收端,若空闲时则进入就绪状态,并接收数据文件的推送装置推送的数据文件,以供线上生产系统加载,在此不再赘述。
以上各个设备的具体实施可参见前面的实施例,在此不再赘述。
由上可知,本实施例的数据文件的推送系统,根据数据接收端的资源敏感类型确定数据文件需做压缩处理时,获取该资源敏感类型对应的压缩算法,其后利用该压缩算法对数据文件进行压缩,并将压缩后的数据文件推送至对应的数据接收端;本发明实施例在数据文件传输前,根据数据接收端的特性确定需推送的数据文件是否做压缩,若需要,则选择相应的压缩算法对数据文件进行压缩并推送,可有效的限制了推送的数据文件的大小,从而降低了同步的数据量;并且,推送时,通过平滑控制推送服务器的发包频率来控制占用带宽,可进一步的减少网络带宽占用率,提高数据的时效性。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见上文针对数据文件的推送方法的详细描述,此处不再赘述。
本发明实施例提供的所述数据文件的推送装置,譬如为计算机、平板电脑、具有触摸功能的手机等等,所述数据文件的推送装置与上文实施例中的数据文件的推送方法属于同一构思,在所述数据文件的推送装置上可以运行所述数据文件的推送方法实施例中提供的任一方法,其具体实现过程详见所述数据文件的推送方法实施例,此处不再赘述。
需要说明的是,对本发明所述数据文件的推送方法而言,本领域普通测试人员可以理解实现本发明实施例所述数据文件的推送方法的全部或部分流程,是可以通过计算机程序来控制相关的硬件来完成,所述计算机程序可存储于一计算机可读取存储介质中,如存储在终端的存储器中,并被该终端内的至少一个处理器执行,在执行过程中可包括如所述数据文件的推送方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)等。
对本发明实施例的所述数据文件的推送装置而言,其各功能模块可以集成在一个处理芯片中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中,所述存储介质譬如为只读存储器,磁盘或光盘等。
以上对本发明实施例所提供的一种数据文件的推送方法、装置及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (11)
1.一种数据文件的推送方法,适用于服务器,其特征在于,包括:
获取需推送的数据文件;
根据数据接收端对中央处理器以及网络带宽的敏感度,确定数据接收端的资源敏感类型,资源敏感类型包括中央处理器敏感型和/或网络带宽敏感型;
根据所述资源敏感类型确定所述数据文件需做压缩处理时,获取所述资源敏感类型对应的压缩算法;
若所述资源敏感类型为网络带宽敏感型,所述压缩算法为限速的压缩算法;若所述资源敏感类型为中央处理器敏感型,所述压缩算法为消耗中央处理器较少的压缩算法;
若所述资源敏感类型包括网络带宽敏感型和中央处理器敏感型,所述压缩算法为低耗中央处理器的压缩算法;
根据所述数据文件的大小,将所述数据文件分为多个数据块;
根据所述压缩算法,对所述数据块分别进行压缩,得到相应的压缩包,并将所述压缩包推送至对应的数据接收端;
所述根据所述数据文件的大小,将所述数据文件分为多个数据块,根据所述压缩算法,对所述数据块分别进行压缩,得到相应的压缩包,并将所述压缩包推送至对应的数据接收端,包括:
当确定将一个压缩包推送至对应的数据接收端后,计算已推送的压缩包的平均压缩率;
根据所述平均压缩率确定当前需要压缩的数据块的大小;
根据所述当前需要压缩的数据块的大小确定需要压缩的数据块;
根据所述压缩算法,对需要压缩的数据块进行压缩得到相应的压缩包,并将所述压缩包推送至对应的数据接收端;
记录当前压缩后推送的压缩包大小和时耗,并根据所述压缩后推送的压缩包大小和时耗调整发包频率,以使推送的网络带宽满足预设阈值。
2.根据权利要求1所述的数据文件的推送方法,其特征在于,所述获取需推送的数据文件,包括:
从预设的分布式文件系统中获取需推送的数据文件,所述数据文件由任务提交端上传至所述分布式文件系统。
3.根据权利要求1所述的数据文件的推送方法,其特征在于,所述确定数据接收端的资源敏感类型之后,还包括:
将资源敏感类型相同的数据接收端进行组合,得到数据接收端集合;
则所述将压缩后的数据文件推送至对应的数据接收端为:将所述压缩后的数据文件推送至对应的数据接收端集合。
4.根据权利要求1所述的数据文件的推送方法,其特征在于,所述确定数据接收端的资源敏感类型之后,还包括:
根据所述资源敏感类型确定所述数据文件不需做压缩处理时,将所述数据文件推送至对应的数据接收端。
5.根据权利要求1所述的数据文件的推送方法,其特征在于,所述根据所述平均压缩率确定当前需要压缩的数据块的大小,包括:
确定满足预设范围的压缩包的大小的预估值;
根据所述平均压缩率以及所述预估值确定当前需要压缩的数据块的大小。
6.一种数据文件的推送装置,适用于服务器,其特征在于,包括:
第一获取单元,用于获取需推送的数据文件;
确定单元,用于根据数据接收端对中央处理器以及网络带宽的敏感度,确定数据接收端的资源敏感类型,资源敏感类型包括中央处理器敏感型和/或网络带宽敏感型;
第二获取单元,用于根据所述资源敏感类型确定所述数据文件需做压缩处理时,获取所述资源敏感类型对应的压缩算法;若所述资源敏感类型为网络带宽敏感型,所述压缩算法为限速的压缩算法;若所述资源敏感类型为中央处理器敏感型,所述压缩算法为消耗中央处理器较少的压缩算法;若所述资源敏感类型包括网络带宽敏感型和中央处理器敏感型,所述压缩算法为低耗中央处理器的压缩算法;
压缩推送单元,用于根据所述数据文件的大小,将所述数据文件分为多个数据块,根据所述压缩算法,对所述数据块分别进行压缩,得到相应的压缩包,并将所述压缩包推送至对应的数据接收端;
所述压缩推送单元包括:
计算子单元,用于当确定将一个压缩包推送至对应的数据接收端后,计算已推送的压缩包的平均压缩率;
第一确定子单元,用于根据所述平均压缩率确定当前需要压缩的数据块的大小;
第二确定子单元,用于根据所述当前需要压缩的数据块的大小确定需要压缩的数据块;
压缩子单元,用于根据所述压缩算法,对需要压缩的数据块进行压缩得到相应的压缩包;
推送子单元,用于将所述压缩包推送至对应的数据接收端;同时还用于将所述压缩包推送至对应的数据接收端时,记录当前压缩后推送的压缩包大小和时耗,并根据所述压缩后推送的压缩包大小和时耗调整发包频率,以使推送的网络带宽满足预设阈值。
7.根据权利要求6所述的数据文件的推送装置,其特征在于,所述第一获取单元,具体用于:从预设的分布式文件系统中获取需推送的数据文件,所述数据文件由任务提交端上传至所述分布式文件系统。
8.根据权利要求6所述的数据文件的推送装置,其特征在于,所述装置还包括组合单元,用于将资源敏感类型相同的数据接收端进行组合,得到数据接收端集合;
则所述压缩推送单元,还用于将所述压缩后的数据文件推送至对应的数据接收端集合。
9.根据权利要求6所述的数据文件的推送装置,其特征在于,所述装置还包括推送单元,用于根据所述资源敏感类型确定所述数据文件不需做压缩处理时,将所述数据文件推送至对应的数据接收端。
10.根据权利要求6所述的数据文件的推送装置,其特征在于,所述第一确定子单元,具体用于确定满足预设范围的压缩包的大小的预估值,根据所述平均压缩率以及所述预估值确定当前需要压缩的数据块的大小。
11.一种数据文件的推送系统,包括任务提交端、推送服务器以及数据接收端,其特征在于,所述推送服务器为如权利要求6至10任一项所述的数据文件的推送装置;
所述任务提交端,用于将数据文件上传到预设的分布式文件系统,并在预设的分布式协调系统提交推送任务请求;
所述数据接收端,用于接收所述数据文件的推送装置推送的数据文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510422363.9A CN105045873B (zh) | 2015-07-17 | 2015-07-17 | 一种数据文件的推送方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510422363.9A CN105045873B (zh) | 2015-07-17 | 2015-07-17 | 一种数据文件的推送方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105045873A CN105045873A (zh) | 2015-11-11 |
CN105045873B true CN105045873B (zh) | 2018-02-09 |
Family
ID=54452420
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510422363.9A Active CN105045873B (zh) | 2015-07-17 | 2015-07-17 | 一种数据文件的推送方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105045873B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106507107B (zh) * | 2016-12-08 | 2019-07-05 | 北京数码视讯科技股份有限公司 | 数据的处理方法和装置 |
CN108242931B (zh) * | 2016-12-23 | 2023-04-28 | 中科星图股份有限公司 | 一种数据压缩提供方法 |
CN110543455B (zh) * | 2019-09-04 | 2022-04-22 | 中国工商银行股份有限公司 | 数据处理方法、装置、系统及介质 |
CN111142788B (zh) * | 2019-11-29 | 2021-10-15 | 浪潮电子信息产业股份有限公司 | 一种数据迁移方法、装置和计算机可读存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101572725A (zh) * | 2009-05-11 | 2009-11-04 | 卓望数码技术(深圳)有限公司 | 一种向移动终端推送数据的方法、系统及移动终端 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102571820B (zh) * | 2012-02-21 | 2015-11-25 | 华为技术有限公司 | 用于传输数据的方法、压缩服务器和终端 |
CN104618371A (zh) * | 2015-01-30 | 2015-05-13 | 乐视网信息技术(北京)股份有限公司 | 一种数据下载方法、装置及系统 |
-
2015
- 2015-07-17 CN CN201510422363.9A patent/CN105045873B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101572725A (zh) * | 2009-05-11 | 2009-11-04 | 卓望数码技术(深圳)有限公司 | 一种向移动终端推送数据的方法、系统及移动终端 |
Also Published As
Publication number | Publication date |
---|---|
CN105045873A (zh) | 2015-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190155533A1 (en) | Data pipeline architecture for cloud processing of structured and uinstructured data | |
CN105045873B (zh) | 一种数据文件的推送方法、装置及系统 | |
CN109510723B (zh) | 网关设备、物联网事务管控系统及方法 | |
US9432484B1 (en) | CIM-based data storage management system having a restful front-end | |
KR20180105874A (ko) | 파워 사용량에 대한 실측을 통해 가상 머신을 선별적으로 제공하는 방법, 장치 및 시스템 | |
CN104081339A (zh) | 基于优先级和数据使用计划来管理通过网络连接的数据传输 | |
WO2017167121A1 (zh) | 确定及运用应用程序之间的关系关联的方法及装置 | |
CN106302780B (zh) | 集群设备批量传输数据的方法、装置及系统、服务器 | |
CN104639426B (zh) | 群组成员添加方法及装置 | |
US20220131937A1 (en) | Ad hoc decentralized cloud infrastructure | |
CN103581111A (zh) | 一种通信方法及系统 | |
CN103944979A (zh) | 一种消息推送方法、装置及系统 | |
CN110391873A (zh) | 用于确定数据传送方式的方法、装置以及计算机程序产品 | |
CN102882960B (zh) | 一种资源文件的发送方法及装置 | |
CN114501351A (zh) | 流量控制方法、设备及存储介质 | |
CN105075228A (zh) | 上下文感知服务的动态功率管理 | |
Xie et al. | Resource allocation for network slicing in dynamic multi-tenant networks: A deep reinforcement learning approach | |
CN107872533B (zh) | 信息推送方法、装置、服务器以及存储介质 | |
CN110311933A (zh) | 一种均衡业务流量的方法、装置、设备及存储介质 | |
CN110233791B (zh) | 数据去重方法和装置 | |
CN105917694B (zh) | 电信网络中的服务提供与激活 | |
CN104065684A (zh) | 信息处理方法、电子设备和终端设备 | |
CN114245173B (zh) | 一种图像压缩方法、装置、终端设备和存储介质 | |
CN113055444B (zh) | 一种文件共享方法及其相关装置 | |
CN113468182A (zh) | 一种数据存储方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |