CN105302494B - 一种压缩策略选择方法及装置 - Google Patents
一种压缩策略选择方法及装置 Download PDFInfo
- Publication number
- CN105302494B CN105302494B CN201510802655.5A CN201510802655A CN105302494B CN 105302494 B CN105302494 B CN 105302494B CN 201510802655 A CN201510802655 A CN 201510802655A CN 105302494 B CN105302494 B CN 105302494B
- Authority
- CN
- China
- Prior art keywords
- data
- compressed
- compression
- compression strategies
- strategies
- 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
- 238000007906 compression Methods 0.000 title claims abstract description 403
- 230000006835 compression Effects 0.000 title claims abstract description 398
- 238000010187 selection method Methods 0.000 title claims abstract description 14
- 238000012545 processing Methods 0.000 claims abstract description 62
- 238000013144 data compression Methods 0.000 claims abstract description 15
- 230000008901 benefit Effects 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 description 17
- 239000003638 chemical reducing agent Substances 0.000 description 15
- 230000005540 biological transmission Effects 0.000 description 7
- 238000000034 method Methods 0.000 description 7
- 230000006837 decompression Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 238000003825 pressing Methods 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 230000005577 local transmission Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明实施例公开了一种压缩策略选择方法及装置,包括:接收数据压缩信息;其中,所述数据压缩信息中携带待压缩数据的数据量信息;根据所述待压缩数据的数据量信息,确定所述待压缩数据的处理场景信息;根据所述待压缩数据的数据量信息和所述待压缩数据的处理场景信息,确定所述待压缩数据的压缩策略,可见,在本实施例中根据用户待压缩数据的数据量信息及用户的实际处理场景,能帮用户选择适合的压缩策略,从而使每个用户都根据自己的实际情况,选择最合适的、性价比最高的压缩策略。
Description
技术领域
本发明涉及大数据技术领域,更具体地说,涉及一种压缩策略选择方法及装置。
背景技术
随着电子商务、社会计算、物联网等新应用的发展,促使相关数据的规模呈现出快速增长的趋势,大数据正改变着人们的生活、工作和思维方式。准确、高效地从大数据中挖掘出潜在的有用信息进而支持决策变得越发重要,并逐步成为数据科学领域关注的热点。分布式存储和计算平台Hadoop以分布式文件系统HDFS和分布式计算框架MapReduce为核心,已成为大数据处理领域事实上的标准。多年来,在磁盘存储容量快速增长的同时,磁盘I/O速度却未能成比例地加快;现有的网络带宽越来越难以满足人们的需求,I/O常常成为了磁盘与网络的性能瓶颈。
以HDFS作为分布式文件系统的Hadoop能实现PB级的海量数据存储,I/O问题更加明显,因此I/O操作的优化都有可能带来Hadoop性能的提升。而压缩可以减少存储数据所占用的磁盘空间,加速数据在网络和磁盘上的传输。因此,在处理大数据时,压缩是提升处理性能的重要手段。Hadoop作为一个比较通用的大数据处理平台,提供了对一些常见的重量级压缩方法的支持,以牺牲CPU时间的方式来提高I/O的性能。此外,很多厂家也针对Hadoop中HDFS特点,提供了面向大数据处理的硬件压缩卡,将压缩工作交由压缩卡CPU来完成,这样可以最大化的节省集群的CPU时间,但是这也往往带来了成本的上升。同时,针对MapReduce和应用的特点,可以在计算的不同阶段采取不同的压缩方式,最终形成一整套的压缩方式的组合,这里称之为压缩策略。
因此,如何根据用户的实际应用情况,选择最合适的、性价比最高的压缩策略是现在需要解决的问题。
发明内容
本发明的目的在于提供一种压缩策略选择方法及装置,以帮助用户根据实际应用情况,选择最合适的、性价比最高的压缩策略。
为实现上述目的,本发明实施例提供了如下技术方案:
一种压缩策略选择方法,包括:
接收数据压缩信息;其中,所述数据压缩信息中携带待压缩数据的数据量信息;
根据所述待压缩数据的数据量信息,确定所述待压缩数据的处理场景信息;
根据所述待压缩数据的数据量信息和所述待压缩数据的处理场景信息,确定所述待压缩数据的压缩策略。
优选的,根据所述待压缩数据的数据量信息和所述待压缩数据的处理场景信息,确定所述待压缩数据的压缩策略,包括:
根据所述待压缩数据的数据量信息,确定所述待压缩数据在不同压缩策略下的时间收益和/或空间收益;
根据所述待压缩数据的处理场景信息,及所述待压缩数据在不同压缩策略下的时间收益和/或空间收益,确定所述待压缩数据的压缩策略;其中,所述压缩策略为不压缩策略、软压缩策略和硬压缩策略。
优选的,根据所述待压缩数据的处理场景信息,及所述待压缩数据在不同压缩策略下的时间收益和/或空间收益,确定所述待压缩数据的压缩策略,包括:
当所述待压缩数据的处理场景信息为计算密集型应用场景时,根据所述待压缩数据的数据量信息,确定所述待压缩数据在所述不压缩策略下的第一压缩时间;
根据所述待压缩数据的数据量信息,确定所述待压缩数据在所述软压缩策略下的第二压缩时间;
根据所述待压缩数据的数据量信息,确定所述待压缩数据在所述硬压缩策略下的第三压缩时间;
根据所述第一压缩时间和所述第二压缩时间,确定所述软压缩策略与所述不压缩策略的第一时间收益;
根据所述第一压缩时间和所述第三压缩时间,确定所述硬压缩策略与所述不压缩策略的第二时间收益;
根据所述第一时间收益和所述第二时间收益,确定所述待压缩数据的压缩策略。
优选的,根据所述待压缩数据的处理场景信息,及所述待压缩数据在不同压缩策略下的时间收益和/或空间收益,确定所述待压缩数据的压缩策略,包括:
当所述待压缩数据的处理场景信息为数据密集型应用场景时,根据所述待压缩数据的数据量信息,确定所述待压缩数据在所述不压缩策略下的第一压缩数据量;
根据所述待压缩数据的数据量信息,确定所述待压缩数据在所述软压缩策略下的第二压缩数据量;
根据所述待压缩数据的数据量信息,确定所述待压缩数据在所述硬压缩策略下的第三压缩数据量;
根据所述第一压缩数据量和所述第二压缩数据量,确定所述软压缩策略与所述不压缩策略的第一空间收益;
根据所述第一压缩数据量和所述第三压缩数据量,确定所述硬压缩策略与所述不压缩策略的第二空间收益;
根据所述第一空间收益和所述第二空间收益,确定所述待压缩数据的压缩策略。
优选的,根据所述待压缩数据的数据量信息和所述待压缩数据的处理场景信息,确定所述待压缩数据的压缩策略,包括:
当所述待压缩数据的处理场景信息为计算密集型应用场景时,若所述待压缩数据的数据量信息大于第一阈值,则确定所述待压缩数据的压缩策略为硬压缩策略;
若所述待压缩数据的数据量信息大于第二阈值且小于等于所述第一阈值,则确定所述待压缩数据的压缩策略为软压缩策略;
若所述待压缩数据的数据量信息小于等于所述第二阈值,则确定所述待压缩数据的压缩策略为不压缩策略;
当所述待压缩数据的处理场景信息为数据密集型应用场景时,确定所述待压缩数据的压缩策略为硬压缩策略。
一种压缩策略选择装置,包括:
接收模块,用于接收数据压缩信息;其中,所述数据压缩信息中携带待压缩数据的数据量信息;
第一确定模块,用于根据所述待压缩数据的数据量信息,确定所述待压缩数据的处理场景信息;
第二确定模块,用于根据所述待压缩数据的数据量信息和所述待压缩数据的处理场景信息,确定所述待压缩数据的压缩策略。
优选的,所述第二确定模块,包括:
第一确定单元,用于根据所述待压缩数据的数据量信息,确定所述待压缩数据在不同压缩策略下的时间收益和/或空间收益;
第二确定单元,用于根据所述待压缩数据的处理场景信息,及所述待压缩数据在不同压缩策略下的时间收益和/或空间收益,确定所述待压缩数据的压缩策略;其中,所述压缩策略为不压缩策略、软压缩策略和硬压缩策略。
优选的,所述第二确定单元,包括:
第一确定子单元,用于当所述待压缩数据的处理场景信息为计算密集型应用场景时,根据所述待压缩数据的数据量信息,确定所述待压缩数据在所述不压缩策略下的第一压缩时间;根据所述待压缩数据的数据量信息,确定所述待压缩数据在所述软压缩策略下的第二压缩时间;根据所述待压缩数据的数据量信息,确定所述待压缩数据在所述硬压缩策略下的第三压缩时间;
第二确定子单元,用于根据所述第一压缩时间和所述第二压缩时间,确定所述软压缩策略与所述不压缩策略的第一时间收益;根据所述第一压缩时间和所述第三压缩时间,确定所述硬压缩策略与所述不压缩策略的第二时间收益;
第三确定子单元,用于根据所述第一时间收益和所述第二时间收益,确定所述待压缩数据的压缩策略。
优选的,所述第二确定单元,包括:
第四确定子单元,用于当所述待压缩数据的处理场景信息为数据密集型应用场景时,根据所述待压缩数据的数据量信息,确定所述待压缩数据在所述不压缩策略下的第一压缩数据量;根据所述待压缩数据的数据量信息,确定所述待压缩数据在所述软压缩策略下的第二压缩数据量;根据所述待压缩数据的数据量信息,确定所述待压缩数据在所述硬压缩策略下的第三压缩数据量;
第五确定子单元,用于根据所述第一压缩数据量和所述第二压缩数据量,确定所述软压缩策略与所述不压缩策略的第一空间收益;根据所述第一压缩数据量和所述第三压缩数据量,确定所述硬压缩策略与所述不压缩策略的第二空间收益;
第六确定子单元,用于根据所述第一空间收益和所述第二空间收益,确定所述待压缩数据的压缩策略。
优选的,所述第二确定模块,包括:
第三确定单元,用于当所述待压缩数据的处理场景信息为计算密集型应用场景时,若所述待压缩数据的数据量信息大于第一阈值,则确定所述待压缩数据的压缩策略为硬压缩策略;若所述待压缩数据的数据量信息大于第二阈值且小于等于所述第一阈值,则确定所述待压缩数据的压缩策略为软压缩策略;若所述待压缩数据的数据量信息小于等于所述第二阈值,则确定所述待压缩数据的压缩策略为不压缩策略;
第四确定单元,用于当所述待压缩数据的处理场景信息为数据密集型应用场景时,确定所述待压缩数据的压缩策略为硬压缩策略。
通过以上方案可知,本发明实施例提供的一种压缩策略选择方法及装置,包括:接收数据压缩信息;其中,所述数据压缩信息中携带待压缩数据的数据量信息;根据所述待压缩数据的数据量信息,确定所述待压缩数据的处理场景信息;根据所述待压缩数据的数据量信息和所述待压缩数据的处理场景信息,确定所述待压缩数据的压缩策略,可见,在本实施例中根据用户待压缩数据的数据量信息及用户的实际处理场景,能帮用户选择适合的压缩策略,从而使每个用户都根据自己的实际情况,选择最合适的、性价比最高的压缩策略。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的一种压缩策略选择方法流程示意图;
图2为本发明实施例公开的一种压缩策略选择装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种压缩策略选择方法及装置,以帮助用户根据实际应用情况,选择最合适的、性价比最高的压缩策略。
参见图1,本发明实施例提供的一种压缩策略选择方法,包括:
S101、接收数据压缩信息;其中,所述数据压缩信息中携带待压缩数据的数据量信息;
S102、根据所述待压缩数据的数据量信息,确定所述待压缩数据的处理场景信息;
具体的,Hadoop平台中常见的处理场景包括:计算密集型应用场景、数据密集型应用场景。计算密集型应用场景指的是以计算为主的应用场景,目的是尽量减少总的计算时间T,而数据密集型应用场景指的是以数据存储为主的应用场景,目的是尽量节省存储空间S。
S103、根据所述待压缩数据的数据量信息和所述待压缩数据的处理场景信息,确定所述待压缩数据的压缩策略。
具体的,在本实施例中,根据所述待压缩数据的数据量信息和所述待压缩数据的处理场景信息,确定所述待压缩数据的压缩策略,包括:
根据所述待压缩数据的数据量信息,确定所述待压缩数据在不同压缩策略下的时间收益和/或空间收益;
根据所述待压缩数据的处理场景信息,及所述待压缩数据在不同压缩策略下的时间收益和/或空间收益,确定所述待压缩数据的压缩策略;其中,所述压缩策略为不压缩策略、软压缩策略和硬压缩策略。
具体的,在本实施例中,压缩策略分为不压缩策略、软压缩策略和硬压缩策略。参见表1为软压缩策略中相关压缩参数表,参见表2为硬压缩策略中的相关压缩参数表,其中,T表示调度传输的时间,t表示CPU计算的时间,包括压缩/解压缩,MapReduce。t1表示压缩卡CPU计算。
表1
参数名称 | 参数说明 |
T(h,m) | 数据从HDFS调度进入Mapper时间 |
t0(m,d) | 每个Mapper解压缩的时间 |
t0(m+s) | Map以及shuffle的时间 |
t0(s,c) | shuffle的中间结果压缩时间 |
T(disk) | 压缩中间结果数据写入到本地硬盘的时间 |
T(disk,r) | 中间结果数据传输到reducer的时间 |
t0(r,d) | reducer解压缩时间 |
t0(r) | reducer计算时间 |
t0(r,c) | reducer输出结果压缩时间 |
T(r,h) | reducer输出结果传输到HDFS的时间 |
表2
参数名称 | 参数说明 |
t1(c,h) | 压缩卡压缩数据,写入HDFS时间 |
T(h,m) | 压缩数据从HDFS调度进入Mapper时间 |
t1(m,d) | 压缩卡解压缩的时间 |
t0(m+s) | Map以及shuffle的时间 |
t1(s,c) | shuffle的中间结果压缩时间 |
T(disk) | 压缩中间结果数据写入到本地硬盘的时间 |
T(disk,r) | 中间结果数据传输到reducer的时间 |
t1(r,d) | reducer解压缩时间 |
t1(r) | reducer计算时间 |
t1(r,c) | reducer输出结果压缩时间 |
T(r,h) | reducer输出结果传输到HDFS的时间 |
并且,在本实施例中,设软压缩采用的压缩算法为xs,,压缩速度为s(xs),压缩比为p(xs),解压缩速度为d(xs)。设硬压缩采用的压缩算法为xh,压缩速度为s(xh),压缩比为p(xh),解压缩速度为d(xh)。全双工网络传输速度为n,硬盘读写I/O速度为:m。其中,在对压缩时间进行计算时,不管是软压缩还是硬压缩都以1字节数据为例,具体软压缩时间计算如下:
T(h,m):根据Hadoop中资源管理的优先使用本地Mapper的调度原则,在本项中,认为数据从HDFS调度进入Mapper完全通过本地磁盘读写完成,因此:T(h,m)=1/m。
t0(m,d):一般来说,在Hadoop中进行MapReduce计算时,软压缩主要集中在对中间结果和输出结果的压缩上,因此,该部分的时间为t(m,d)=0。
t0(m+s):Map计算和Shuffle计算主要使用集群CPU进行计算,无论硬压缩还是软压缩,相同应用情况下,时间一致。
t0(s,c):该部分的时间主要是压缩算法使用集群的CPU对中间结果进行压缩的时间,因此,t0(s,c)=1/s(xs)。
T(disk):该部分时间为T(disk)=1/m。
T(disk,r):该部分时间主要是数据从本地硬盘经过网络或者本地传输到各个reducer的时间,这里,为了简化模型的复杂度,无论是软压缩还是硬压缩,我们假设所有的数据都经过网络传输,因此,T(disk,r)=1/n。
t0(r,d):该部分时间为各个reducer使用集群CPU进行对传输过来的数据进行解压缩的时间,因此,t0(r,d)=1/d(xs)。
t0(r):该部分时间为reducer的计算时间,主要使用集群CPU进行计算,无论硬压缩还是软压缩,相同应用情况下,时间一致。
t0(r,c):该部分时间为reducer上使用集群CPU对输出数据压缩的时间,该部分计算与reduce的计算应该是串行进行:因此,t0(r,c)=1/s(xs)。
T(r,h):该部分时间为输出后的数据写入HDFS的时间,根据调度原则,无论软压缩还是硬压缩,不妨假设该部分内容是由本地完成,此假设对压缩策略的评估效果无影响。
具体的,根据软压缩的计算方法,同理我们可以得到各个环节的时间计算公式,这里值得指出的是,在软压缩中,使用的集群CPU来进行压缩/解压缩计算,但是在基于压缩卡的硬件压缩中,所有的压缩/解压缩计算过程由压缩卡完成,不再占用集群CPU时间,因此在本实施例中,硬压缩时间计算方法在这里不再赘述。
具体的,根据Hadoop中MapReduce的原理,在本实施例中将整个MapReduce的过程分为Map—Shuffle—reduce三个计算阶段,每个计算阶段在计算前或者完成后都可以根据情况,选择对数据进行解压或者压缩的工作,以f表示该阶段是否存在压缩或者解压缩,那么,
根据软压缩、硬压缩的流程图,整个MapReduce计算过程,以从HDFS读取数据为起点,到reducer写数据到HDFS为终点,一共可以分为Map前-中间计算—输出三个阶段,如果当前阶段有压缩/解压工作,则表示为1或者2,如果没有,则表示为0,Hadoop允许对中间结果和输出结果进行压缩,设Mapper前数据量为v1,中间结果数据量为v2,输出结果数据量为v3。那么,在本实施例中的三种压缩策略的时间计算方法和空间计算方法如下所示:
1、不压缩
不压缩的策略n为0-(0-0)-0,其中0代表不压缩,则使用不压缩策略时所有环节均不压缩,则该策略下的时间计算公式为:
Tuncompress=v1*T(h,m)+t0(m+s)+v2*T(disk)+v2*T(disk,r)+t0(r)+v3*T(r,h)
空间计算公式为:
Suncompress=v1+v2+v3
2、软压缩
对于软压缩来说,由于Hadoop自身的压缩算法只允许对中间结果和输出结果进行压缩,因此:软压缩策略又分为策略s1、策略s2和策略s3,其中:
策略s1:0-(2-1)-2,表示HDFS存储未压缩数据,中间结果和输出结果进行了压缩,该策略下的时间计算公式为:
Ts-compress=v1*T(h,m)+t0(m+s)
+v2*(t0(s,c)+p(xs)*(T(disk)+T(disk,r)+t0(r,d)))
+t0(r)+v3*(t0(r,c)+p(xs)*T(r,h))
该策略下的空间计算公式为:
Ss-compress=v1+v2*p(xs)+v3*p(xs)
策略s2:0-(0-0)-2,表示HDFS存储未压缩数据,中间结果不压缩,输出结果压缩,该策略下时间计算公式:
Ts-compress=v1*T(h,m)+t0(m+s)
+v2*(T(disk)+T(disk,r))
+t0(r)+v3*(t0(r,c)+p(xs)*T(r,h))
该策略下空间计算公式:
Ss-compress=v1+v2+v3*p(xs)
策略s3:0-(2-1)-0,表示HDFS存储未压缩数据,只压缩中间结果,该策略下时间计算公式:
Ts-compress=v1*T(h,m)+t0(m+s)
+v2*(t0(s,c)+p(xs)*(T(disk)+T(disk,r)+t0(r,d)))
+t0(r)+v3*T(r,h)
该策略下空间计算公式:
Ss-compress=v1+v2*p(xs)+v3。
3、硬压缩
对硬压缩来说,由于压缩卡的特性,以及目前市场上面向Hadoop的压缩卡都是对HDFS透明的,所以硬压缩本身只有一种策略,即涉及HDFS时便进行压缩/解压缩工作,这时候,往往在HDFS上存储的数据也是压缩数据:
策略h:1-(2-1)-2,该策略下的时间计算公式为:
Th-compress=v1*p(xh)*(T(h,m)+t1(m,d))+t1(m+s)
+v2*(t1(s,c)+p(xh)*(T(disk)+T(disk,r)+t1(r,d)))
+t1(r)+v3*(t1(r,c)+p(xh)*T(r,h))
该策略下的空间计算公式为:
Sh-compress=v1p(xh)+v2*p(xh)+v3p(xh)。
具体的,由于在本实施例中,待压缩数据的处理场景信息分为计算密集型应用场景和数据密集型应用场景,因此在本实施例中,将以这两种场景进行分别描述。
1、当所述待压缩数据的处理场景信息为计算密集型应用场景时,根据所述待压缩数据的数据量信息,确定所述待压缩数据在所述不压缩策略下的第一压缩时间;其中,第一压缩时间为Tuncompress;
根据所述待压缩数据的数据量信息,确定所述待压缩数据在所述软压缩策略下的第二压缩时间;
其中,在本实施例中,由于软压缩分为三种压缩策略,分别是策略s1、策略s2和策略s3,在这里统一用Ts-compress表示;
根据所述待压缩数据的数据量信息,确定所述待压缩数据在所述硬压缩策略下的第三压缩时间;
其中,第三压缩时间为Th-compress;
根据所述第一压缩时间和所述第二压缩时间,确定所述软压缩策略与所述不压缩策略的第一时间收益;
其中,在这里第一压缩时间为不压缩的压缩时间,第二压缩时间为软压缩的压缩时间,因此这里的第一时间收益为软压缩与不压缩相比的时间收益,则第一时间收益为:TBs=(Tuncompress-Ts-compress(xs))/Tuncompress;
根据所述第一压缩时间和所述第三压缩时间,确定所述硬压缩策略与所述不压缩策略的第二时间收益;
其中,在这里第一压缩时间为不压缩的压缩时间,第三压缩时间为硬压缩的压缩时间,因此这里的第一时间收益为硬压缩与不压缩相比的时间收益,则第二时间收益为:TBh=(Tuncompress-Th-compress(xh))/Tuncompress;
根据所述第一时间收益和所述第二时间收益,确定所述待压缩数据的压缩策略。
具体的,第一时间收益和第二时间收益都确定,就能清楚的知道软压缩相比不压缩的时间收益和硬压缩相对于不压缩的时间收益,则就能确定软压缩、硬压缩和不压缩三者谁用的时间短,从而选择时间最短的。具体的,由于软压缩中包括三种压缩策略,策略s1为中间结果和输出结果都进行压缩,策略s2为只压缩输出结果,策略s3为只压缩中间结果,那么这时可以根据用户的所压缩的具体数据来选择,例如,若用户待压缩的数据在输出结果时,数据比较大,这时可以选择策略s。
需要说明的是,Hadoop中对数据压缩必然是以CPU的时间来换取网络传输和磁盘读写的时间,压缩的步骤越多,例如软压缩策略1,那么占用的CPU时间也就越多,但是磁盘IO和网络传输的时间会相应的减少,而对于软压缩策略2和软压缩策略3,分别从不同的环节上节省了CPU的时间,但是也相应地增加了网络传输或者磁盘IO的时间,对于不同的压缩策略来说,CPU时间与网络、IO时间是一个此消彼长的过程。
在本实施例中以未压缩、软压缩策略1、硬压缩三种策略在(Terasort)下的性能对比为例来说明本方法:
1TB数据,软压缩采用策略1,单位:分钟
时间收益:
第一时间收益:
即:软压缩vs未压缩:TBs=(Tuncompress-Ts-compress(xs))/Tuncompress
=(134-96)/134=28.3%
第二时间收益:
即:硬压缩vs未压缩:TBh=(Tuncompress-Th-compress(xh))/Tuncompress
=(134-94)/134=29.8%
具体的,由第一时间收益和第二时间收益可以看出,硬压缩相比软压缩的时间收益更大,则这时可以选择硬压缩。但是为了清楚的算出软压缩和硬压缩相比的时间收益,则可以计算第三时间收益:
即:软压缩vs硬压缩:TBhs=(Ts-compress(xs)-Th-compress(xh))/Ts-compres s
=(96-94)/96=2.08%
由此可以看出,硬压缩与算压缩相比,有百分之2.08的时间收益,则说明硬压缩的时间比软压缩的时间更短。
对于硬压缩来讲,采用压缩卡的方式,将压缩和解压缩的工作交由压缩卡来完成,从而最大程度上节省集群的CPU计算时间,但是加用压缩卡一方面增加成本,另外一方面,压缩卡特性往往要求所有的环节都要进行压缩/解压缩计算,理论上讲,当数据量计算量不大时,集群CPU不再成为瓶颈,硬件压缩策略往往比软压缩策略并无巨大优势,此外,使用压缩卡往往意味着选择压缩算法时受到厂家的限制,面对不同的应用时,无法灵活选择压缩算法。
2、当所述待压缩数据的处理场景信息为数据密集型应用场景时,根据所述待压缩数据的数据量信息,确定所述待压缩数据在所述不压缩策略下的第一压缩数据量;其中,第一压缩数据量为Suncompress;
根据所述待压缩数据的数据量信息,确定所述待压缩数据在所述软压缩策略下的第二压缩数据量;其中,第二压缩数据量为Ss-compress;
根据所述待压缩数据的数据量信息,确定所述待压缩数据在所述硬压缩策略下的第三压缩数据量;其中,第三压缩数据量为Sh-compress;
根据所述第一压缩数据量和所述第二压缩数据量,确定所述软压缩策略与所述不压缩策略的第一空间收益;
其中,在这里第一压缩数据量为不压缩的压缩数据量,第二压缩数据量为软压缩的压缩数据量,因此这里的第一空间收益为软压缩与不压缩相比的空间收益,则第一空间收益为:SBs=(Suncompress-Ss-compress(xs))/Suncompress;
根据所述第一压缩数据量和所述第三压缩数据量,确定所述硬压缩策略与所述不压缩策略的第二空间收益;
其中,在这里第一压缩数据量为不压缩的压缩数据量,第三压缩数据量为硬压缩的压缩数据量,因此这里的第二空间收益为硬压缩与不压缩相比的空间收益,则第二空间收益为:SBh=(Suncompress-Sh-compress(xh))/Suncompress;
根据所述第一空间收益和所述第二空间收益,确定所述待压缩数据的压缩策略。
具体的,第一空间收益和第二空间收益都确定,就能清楚的知道软压缩相比不压缩的空间收益和硬压缩相对于不压缩的空间收益,则就能确定软压缩、硬压缩和不压缩三者谁用压缩后所占用的空间小,从而选择占用空间最小的压缩策略。
同理,为了方便理解举例如下:
空间收益:terasort是排序类应用,中间结果和输出结果不变,单位:TB
第一空间收益:
即:软压缩vs未压缩:SBs=(Suncompress-Ss-compress(xs))/Suncompress
=(3T-2.222TB)/3=25.9%
第二空间收益:
即:硬压缩vs未压缩:SBh=(Suncompress-Sh-compress(xh))/Suncompress
=(3-0.402)/3=86.6%
由此可以看出,硬压缩相比软压缩在与不压缩相比的空间收益更大,因此这里选择硬压缩。但是为了清楚的算出软压缩和硬压缩相比的空间收益,则可以计算第三空间收益。需要说明的是,理论上来讲,无论是软压缩还是硬压缩,如果压缩算法相同,那么Ss-compress=Sh-compress,但是往往使用压缩卡可以节省集群的CPU时间,所以对于数据密集型的应用来说,在衡量软压缩与硬压缩时,时间成本也应该作为一个考量,介于时间成本的不可量化型,这里我们采用时间作为空间收益的权重因子,
即:软压缩vs硬压缩:
SBhs=wt×(Ss-compress(xs)-Sh-compress(xh))/Ss-compress
=(96/94)*(2.222-0.402)/2.222=83.65%.
由此可以看出,硬压缩与软压缩相比的空间收益为百分之83.65,即在数据密集型应用场景时,选择硬压缩的空间收益比软压缩的空间收益大,即选择硬压缩。
本发明实施例提供的一种压缩策略选择方法,包括:接收数据压缩信息;其中,所述数据压缩信息中携带待压缩数据的数据量信息;根据所述待压缩数据的数据量信息,确定所述待压缩数据的处理场景信息;根据所述待压缩数据的数据量信息和所述待压缩数据的处理场景信息,确定所述待压缩数据的压缩策略,可见,在本实施例中根据用户待压缩数据的数据量信息及用户的实际处理场景,能帮用户选择适合的压缩策略,从而使每个用户都根据自己的实际情况,选择最合适的、性价比最高的压缩策略。
优选的,在本发明的另一实施例中,根据所述待压缩数据的数据量信息和所述待压缩数据的处理场景信息,确定所述待压缩数据的压缩策略,包括:
当所述待压缩数据的处理场景信息为计算密集型应用场景时,若所述待压缩数据的数据量信息大于第一阈值,则确定所述待压缩数据的压缩策略为硬压缩策略;
若所述待压缩数据的数据量信息大于第二阈值且小于等于所述第一阈值,则确定所述待压缩数据的压缩策略为软压缩策略;
若所述待压缩数据的数据量信息小于等于所述第二阈值,则确定所述待压缩数据的压缩策略为不压缩策略;
当所述待压缩数据的处理场景信息为数据密集型应用场景时,确定所述待压缩数据的压缩策略为硬压缩策略。
具体的,在本实施例中,处理根据计算待处理数据的时间收益和空间收益之外,还可以根据其应用场景和数据大小直接判定其应用的策略。
下面对本发明实施例提供的一种压缩策略选择装置进行介绍,下文描述的一种压缩策略选择装置与上文描述的一种压缩策略选择方法可以相互参照。
参见图2,本发明实施例提供的一种压缩策略选择装置,包括:
接收模块100,用于接收数据压缩信息;其中,所述数据压缩信息中携带待压缩数据的数据量信息;
第一确定模块200,用于根据所述待压缩数据的数据量信息,确定所述待压缩数据的处理场景信息;
第二确定模块300,用于根据所述待压缩数据的数据量信息和所述待压缩数据的处理场景信息,确定所述待压缩数据的压缩策略。
优选的,在本发明提供的另一实施例中,所述第二确定模块,包括:
第一确定单元,用于根据所述待压缩数据的数据量信息,确定所述待压缩数据在不同压缩策略下的时间收益和/或空间收益;
第二确定单元,用于根据所述待压缩数据的处理场景信息,及所述待压缩数据在不同压缩策略下的时间收益和/或空间收益,确定所述待压缩数据的压缩策略;其中,所述压缩策略为不压缩策略、软压缩策略和硬压缩策略。
优选的,在本发明提供的另一实施例中,所述第二确定单元,包括:
第一确定子单元,用于当所述待压缩数据的处理场景信息为计算密集型应用场景时,根据所述待压缩数据的数据量信息,确定所述待压缩数据在所述不压缩策略下的第一压缩时间;根据所述待压缩数据的数据量信息,确定所述待压缩数据在所述软压缩策略下的第二压缩时间;根据所述待压缩数据的数据量信息,确定所述待压缩数据在所述硬压缩策略下的第三压缩时间;
第二确定子单元,用于根据所述第一压缩时间和所述第二压缩时间,确定所述软压缩策略与所述不压缩策略的第一时间收益;根据所述第一压缩时间和所述第三压缩时间,确定所述硬压缩策略与所述不压缩策略的第二时间收益;
第三确定子单元,用于根据所述第一时间收益和所述第二时间收益,确定所述待压缩数据的压缩策略。
优选的,在本发明提供的另一实施例中,所述第二确定单元,包括:
第四确定子单元,用于当所述待压缩数据的处理场景信息为数据密集型应用场景时,根据所述待压缩数据的数据量信息,确定所述待压缩数据在所述不压缩策略下的第一压缩数据量;根据所述待压缩数据的数据量信息,确定所述待压缩数据在所述软压缩策略下的第二压缩数据量;根据所述待压缩数据的数据量信息,确定所述待压缩数据在所述硬压缩策略下的第三压缩数据量;
第五确定子单元,用于根据所述第一压缩数据量和所述第二压缩数据量,确定所述软压缩策略与所述不压缩策略的第一空间收益;根据所述第一压缩数据量和所述第三压缩数据量,确定所述硬压缩策略与所述不压缩策略的第二空间收益;
第六确定子单元,用于根据所述第一空间收益和所述第二空间收益,确定所述待压缩数据的压缩策略。
优选的,在本发明提供的另一实施例中,所述第二确定模块,包括:
第三确定单元,用于当所述待压缩数据的处理场景信息为计算密集型应用场景时,若所述待压缩数据的数据量信息大于第一阈值,则确定所述待压缩数据的压缩策略为硬压缩策略;若所述待压缩数据的数据量信息大于第二阈值且小于等于所述第一阈值,则确定所述待压缩数据的压缩策略为软压缩策略;若所述待压缩数据的数据量信息小于等于所述第二阈值,则确定所述待压缩数据的压缩策略为不压缩策略;
第四确定单元,用于当所述待压缩数据的处理场景信息为数据密集型应用场景时,确定所述待压缩数据的压缩策略为硬压缩策略。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (4)
1.一种压缩策略选择方法,其特征在于,包括:
接收数据压缩信息;其中,所述数据压缩信息中携带待压缩数据的数据量信息;
根据所述待压缩数据的数据量信息,确定所述待压缩数据的处理场景信息;
根据所述待压缩数据的数据量信息和所述待压缩数据的处理场景信息,确定所述待压缩数据的压缩策略;
其中,根据所述待压缩数据的数据量信息和所述待压缩数据的处理场景信息,确定所述待压缩数据的压缩策略,包括:
根据所述待压缩数据的数据量信息,确定所述待压缩数据在不同压缩策略下的时间收益和/或空间收益;
根据所述待压缩数据的处理场景信息,及所述待压缩数据在不同压缩策略下的时间收益和/或空间收益,确定所述待压缩数据的压缩策略;其中,所述压缩策略为不压缩策略、软压缩策略和硬压缩策略;
其中,根据所述待压缩数据的处理场景信息,及所述待压缩数据在不同压缩策略下的时间收益和/或空间收益,确定所述待压缩数据的压缩策略,包括:
当所述待压缩数据的处理场景信息为计算密集型应用场景时,根据所述待压缩数据的数据量信息,确定所述待压缩数据在所述不压缩策略下的第一压缩时间;
根据所述待压缩数据的数据量信息,确定所述待压缩数据在所述软压缩策略下的第二压缩时间;
根据所述待压缩数据的数据量信息,确定所述待压缩数据在所述硬压缩策略下的第三压缩时间;
根据所述第一压缩时间和所述第二压缩时间,确定所述软压缩策略与所述不压缩策略的第一时间收益;
根据所述第一压缩时间和所述第三压缩时间,确定所述硬压缩策略与所述不压缩策略的第二时间收益;
根据所述第一时间收益和所述第二时间收益,确定所述待压缩数据的压缩策略;
其中,根据所述待压缩数据的处理场景信息,及所述待压缩数据在不同压缩策略下的时间收益和/或空间收益,确定所述待压缩数据的压缩策略,包括:
当所述待压缩数据的处理场景信息为数据密集型应用场景时,根据所述待压缩数据的数据量信息,确定所述待压缩数据在所述不压缩策略下的第一压缩数据量;
根据所述待压缩数据的数据量信息,确定所述待压缩数据在所述软压缩策略下的第二压缩数据量;
根据所述待压缩数据的数据量信息,确定所述待压缩数据在所述硬压缩策略下的第三压缩数据量;
根据所述第一压缩数据量和所述第二压缩数据量,确定所述软压缩策略与所述不压缩策略的第一空间收益;
根据所述第一压缩数据量和所述第三压缩数据量,确定所述硬压缩策略与所述不压缩策略的第二空间收益;
根据所述第一空间收益和所述第二空间收益,确定所述待压缩数据的压缩策略。
2.根据权利要求1所述的压缩策略选择方法,其特征在于,根据所述待压缩数据的数据量信息和所述待压缩数据的处理场景信息,确定所述待压缩数据的压缩策略,包括:
当所述待压缩数据的处理场景信息为计算密集型应用场景时,若所述待压缩数据的数据量信息大于第一阈值,则确定所述待压缩数据的压缩策略为硬压缩策略;
若所述待压缩数据的数据量信息大于第二阈值且小于等于所述第一阈值,则确定所述待压缩数据的压缩策略为软压缩策略;
若所述待压缩数据的数据量信息小于等于所述第二阈值,则确定所述待压缩数据的压缩策略为不压缩策略;
当所述待压缩数据的处理场景信息为数据密集型应用场景时,确定所述待压缩数据的压缩策略为硬压缩策略。
3.一种压缩策略选择装置,其特征在于,包括:
接收模块,用于接收数据压缩信息;其中,所述数据压缩信息中携带待压缩数据的数据量信息;
第一确定模块,用于根据所述待压缩数据的数据量信息,确定所述待压缩数据的处理场景信息;
第二确定模块,用于根据所述待压缩数据的数据量信息和所述待压缩数据的处理场景信息,确定所述待压缩数据的压缩策略;
其中,所述第二确定模块,包括:
第一确定单元,用于根据所述待压缩数据的数据量信息,确定所述待压缩数据在不同压缩策略下的时间收益和/或空间收益;
第二确定单元,用于根据所述待压缩数据的处理场景信息,及所述待压缩数据在不同压缩策略下的时间收益和/或空间收益,确定所述待压缩数据的压缩策略;其中,所述压缩策略为不压缩策略、软压缩策略和硬压缩策略
其中,所述第二确定单元,包括:
第一确定子单元,用于当所述待压缩数据的处理场景信息为计算密集型应用场景时,根据所述待压缩数据的数据量信息,确定所述待压缩数据在所述不压缩策略下的第一压缩时间;根据所述待压缩数据的数据量信息,确定所述待压缩数据在所述软压缩策略下的第二压缩时间;根据所述待压缩数据的数据量信息,确定所述待压缩数据在所述硬压缩策略下的第三压缩时间;
第二确定子单元,用于根据所述第一压缩时间和所述第二压缩时间,确定所述软压缩策略与所述不压缩策略的第一时间收益;根据所述第一压缩时间和所述第三压缩时间,确定所述硬压缩策略与所述不压缩策略的第二时间收益;
第三确定子单元,用于根据所述第一时间收益和所述第二时间收益,确定所述待压缩数据的压缩策略;
其中,所述第二确定单元,包括:
第四确定子单元,用于当所述待压缩数据的处理场景信息为数据密集型应用场景时,根据所述待压缩数据的数据量信息,确定所述待压缩数据在所述不压缩策略下的第一压缩数据量;根据所述待压缩数据的数据量信息,确定所述待压缩数据在所述软压缩策略下的第二压缩数据量;根据所述待压缩数据的数据量信息,确定所述待压缩数据在所述硬压缩策略下的第三压缩数据量;
第五确定子单元,用于根据所述第一压缩数据量和所述第二压缩数据量,确定所述软压缩策略与所述不压缩策略的第一空间收益;根据所述第一压缩数据量和所述第三压缩数据量,确定所述硬压缩策略与所述不压缩策略的第二空间收益;
第六确定子单元,用于根据所述第一空间收益和所述第二空间收益,确定所述待压缩数据的压缩策略。
4.根据权利要求3所述的压缩策略选择装置,其特征在于,所述第二确定模块,包括:
第三确定单元,用于当所述待压缩数据的处理场景信息为计算密集型应用场景时,若所述待压缩数据的数据量信息大于第一阈值,则确定所述待压缩数据的压缩策略为硬压缩策略;若所述待压缩数据的数据量信息大于第二阈值且小于等于所述第一阈值,则确定所述待压缩数据的压缩策略为软压缩策略;若所述待压缩数据的数据量信息小于等于所述第二阈值,则确定所述待压缩数据的压缩策略为不压缩策略;
第四确定单元,用于当所述待压缩数据的处理场景信息为数据密集型应用场景时,确定所述待压缩数据的压缩策略为硬压缩策略。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510802655.5A CN105302494B (zh) | 2015-11-19 | 2015-11-19 | 一种压缩策略选择方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510802655.5A CN105302494B (zh) | 2015-11-19 | 2015-11-19 | 一种压缩策略选择方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105302494A CN105302494A (zh) | 2016-02-03 |
CN105302494B true CN105302494B (zh) | 2019-06-18 |
Family
ID=55199807
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510802655.5A Active CN105302494B (zh) | 2015-11-19 | 2015-11-19 | 一种压缩策略选择方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105302494B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107193642A (zh) * | 2016-03-14 | 2017-09-22 | 阿里巴巴集团控股有限公司 | 任务数据压缩切换方法、宜压缩程度评价方法及相关装置 |
CN106293542B (zh) * | 2016-08-23 | 2020-06-05 | 腾讯科技(深圳)有限公司 | 一种文件解压缩的方法及装置 |
CN108243022B (zh) * | 2016-12-23 | 2020-06-05 | 中国移动通信有限公司研究院 | 一种网络服务消息传输方法、装置、终端及服务器 |
CN106970824B (zh) * | 2017-03-07 | 2019-12-17 | 华中科技大学 | 一种基于带宽感知的虚拟机迁移压缩方法及系统 |
CN108599774B (zh) * | 2018-04-26 | 2022-03-08 | 郑州云海信息技术有限公司 | 一种压缩方法、系统、装置及计算机可读存储介质 |
CN117111845B (zh) * | 2023-08-18 | 2024-07-26 | 中电云计算技术有限公司 | 一种数据压缩方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101355364A (zh) * | 2008-09-08 | 2009-01-28 | 北大方正集团有限公司 | 文件压缩方法及装置、文件解压缩方法及装置 |
KR20100020733A (ko) * | 2008-08-13 | 2010-02-23 | 주식회사 케이티 | Ims망에서 sip 메시지의 선별적 압축 방법 및 장치 |
CN102437894A (zh) * | 2011-11-04 | 2012-05-02 | 百度在线网络技术(北京)有限公司 | 用于对待发送信息进行压缩处理的方法、装置及设备 |
CN104008153A (zh) * | 2014-05-21 | 2014-08-27 | 浪潮(北京)电子信息产业有限公司 | 一种面向大数据处理的数据处理方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090100195A1 (en) * | 2007-10-11 | 2009-04-16 | Barsness Eric L | Methods and Apparatus for Autonomic Compression Level Selection for Backup Environments |
-
2015
- 2015-11-19 CN CN201510802655.5A patent/CN105302494B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100020733A (ko) * | 2008-08-13 | 2010-02-23 | 주식회사 케이티 | Ims망에서 sip 메시지의 선별적 압축 방법 및 장치 |
CN101355364A (zh) * | 2008-09-08 | 2009-01-28 | 北大方正集团有限公司 | 文件压缩方法及装置、文件解压缩方法及装置 |
CN102437894A (zh) * | 2011-11-04 | 2012-05-02 | 百度在线网络技术(北京)有限公司 | 用于对待发送信息进行压缩处理的方法、装置及设备 |
CN104008153A (zh) * | 2014-05-21 | 2014-08-27 | 浪潮(北京)电子信息产业有限公司 | 一种面向大数据处理的数据处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105302494A (zh) | 2016-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105302494B (zh) | 一种压缩策略选择方法及装置 | |
RU2767447C2 (ru) | Процессор нейронной сети, использующий сжатие и распаковку данных активации для снижения использования пропускной способности памяти | |
JP7029554B2 (ja) | 深層学習モデルをトレーニングするための方法及び装置、電子機器、コンピュータ可読記憶媒体並びにコンピュータプログラム | |
CN102457283B (zh) | 一种数据压缩、解压缩方法及设备 | |
CN106033476B (zh) | 一种云计算环境中分布式计算模式下的增量式图计算方法 | |
CN109783472A (zh) | 表数据的迁移方法、装置、计算机设备和存储介质 | |
CN107450856A (zh) | 存储数据的写入方法、读取方法以及相应的装置、终端 | |
CN109547574A (zh) | 一种数据传输方法及相关装置 | |
CN110968366A (zh) | 一种基于有限mec资源的任务卸载方法、装置及设备 | |
US20220391780A1 (en) | Method of federated learning, electronic device, and storage medium | |
CN116991560B (zh) | 针对语言模型的并行调度方法、装置、设备及存储介质 | |
CN106528896A (zh) | 一种数据库优化方法和装置 | |
CN109842652A (zh) | 一种文件的上传方法、终端、云服务器和计算机存储介质 | |
CN111489279A (zh) | Gpu加速优化方法、装置及计算机存储介质 | |
CN109213745B (zh) | 一种分布式文件存储方法、装置、处理器及存储介质 | |
CN110019347A (zh) | 一种区块链的数据处理方法、装置及终端设备 | |
CN116594568A (zh) | 一种数据存储方法、装置、电子设备及存储介质 | |
CN109067649B (zh) | 节点处理方法及装置、存储介质和电子设备 | |
EP4325373A1 (en) | Method for optimizing matrix multiplication operation on system on chip, and related product | |
CN114244912B (zh) | 数据传输方法、装置、计算机设备及存储介质 | |
CN105786882B (zh) | 一种数据表标识生成、数据写入方法及装置 | |
CN112884408A (zh) | 物品出库方法、装置、电子设备和计算机可读介质 | |
EP3991024A1 (en) | Neural processing element with single instruction multiple data (simd) compute lanes | |
CN112311833B (zh) | 数据更新方法和装置 | |
CN107203524A (zh) | 一种打包APK文件的方法、加载Bundle文件的方法及系统 |
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 |