CN105022741A - 压缩方法和系统以及云存储方法和系统 - Google Patents
压缩方法和系统以及云存储方法和系统 Download PDFInfo
- Publication number
- CN105022741A CN105022741A CN201410166852.8A CN201410166852A CN105022741A CN 105022741 A CN105022741 A CN 105022741A CN 201410166852 A CN201410166852 A CN 201410166852A CN 105022741 A CN105022741 A CN 105022741A
- Authority
- CN
- China
- Prior art keywords
- data
- fragment
- fragment data
- storage server
- module
- 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.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种压缩方法和系统以及云存储方法和系统,属于云计算技术领域。该压缩方法包括步骤:查询与第一分片数据相似的相关数据,并向元数据服务器查询所述相关数据所在的存储服务器信息;根据所述元数据服务器返回的信息,指示所述第一分片数据或所述相关数据所在的存储服务器调度数据并执行对应的压缩操作。本发明通过判定两个数据块之间的相似性,将高相似性的数据块调度到同一个存储服务器上进行压缩,从而获得较高的压缩比,更加节约存储空间。
Description
技术领域
本发明涉及云计算技术领域,特别涉及一种压缩方法和系统以及云存储方法及其系统。
背景技术
云存储是指通过集群应用、网格技术或分布式文件系统等功能,将网络中大量不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的云计算系统。在云存储系统中,文件一般被分片(Chunk)保存在多个存储服务器(又名Chunk Server)中。分片大小一般是固定的,例如按照64MB大小进行分片。
在云存储系统中,为了提高存储利用率,一般会提供重复数据删除(又叫重删、消重)和数据压缩等存储策略。重复数据删除基于文件或者分片的粒度进行,使得相同的数据,在系统中逻辑上只保持一份。数据压缩已有很多无损压缩/解压算法,如LZO,GZIP,Zippy/Snappy等,可基于文件或者分块为单位,对数据进行压缩后保存。
发明人发现目前云存储系统中的重删和压缩策略在使用中存在如下缺点:基本的重删功能要求文件或者数据块完全一致,计算出的数据指纹(例如SHA-1摘要)才会一致。数据指纹算法具有雪崩效应,只要数据有一个字节的不同,指纹就会完全不同,无法消重。如果采用滑动窗口法或者变长分块法进行消重,一方面需要大量的计算,另一方面只要两块数据之间略有周期性的若干字节不同,仍然无法消重。压缩策略,对某些类型或应用的数据较有效,对另一些原本已经是压缩的数据,如H.264的视频数据无效。此外,即使用户数据可以压缩,对用户的单个块数据,或者以单个文件为单位进行压缩,往往效果也有限。在现有技术中,由于消重、压缩都是消耗较多计算资源的操作,如果效果不明显, 就会降低云存储系统的存储利用率,同时降低了云存储系统的性能。
发明内容
针对现有技术的上述缺陷,本发明所要解决的技术问题是如何有效提高云存储系统的存储利用率及性能。
为实现上述目的,一方面,本发明的实施例中提供一种云存储的压缩方法,包括步骤:
查询与第一分片数据相似的相关数据,并向元数据服务器查询所述相关数据所在的存储服务器信息;
根据所述元数据服务器返回的信息,指示所述第一分片数据或所述相关数据所在的存储服务器调度数据并执行对应的压缩操作。
优选地,所述方法中,所述查询与第一分片数据相似的相关数据进一步包括步骤:
通过相对熵原理计算所述第一分片数据的词频率-逆向文档频率值来获取所述第一分片数据的特征向量;
通过余弦定理计算所述第一分片数据的特征向量与其他分片数据的特征向量之间的夹角,根据所述夹角确定分片数据之间的相似度,找出与所述第一分片数据最相似的第二分片数据或者所述第二分片数据被压缩后的第三分片数据。
优选地,所述方法中,所述指示所述第一分片数据或所述相关数据所在的存储服务器调度数据并执行对应的压缩操作进一步包括步骤:
在所述第一分片数据所在的第一存储服务器的信息与所述相关数据所在的第二存储服务器的信息不同时,将数据量少的数据调度至对方存储服务器上,并在自身存储服务器上删除所述数据量少的数据,同时更新元数据信息;
通知所述对方存储服务器执行对所述第一分片数据与所述相关数据的合并压缩。
优选地,所述方法中,所述查询与第一分片数据相似的相关数据还包括步骤:
根据用户自定义的策略,将满足用户指定条件所产生的分片数据判 定为所述相似的相关数据。
优选地,所述方法中还包括步骤:
在执行完所述压缩操作后,对数据信息进行更新;
其中,所述更新包括:
更新压缩得到的新分片数据的元数据信息;
删除参与压缩的数据,更新所述参与压缩的数据的元数据信息及压缩信息。
另一方面,本发明的实施例中还同时提供一种云存储方法,在如上所述的压缩方法的全部步骤之外还包括步骤:
将全部待存储数据划分为分片数据后保存至各存储服务器上。
再一方面,本发明的实施例中还同时提供一种云存储的压缩系统,所述系统包括:
相似性确定模块,用于查询与第一分片数据相似的相关数据,并向元数据服务器查询所述相关数据所在的存储服务器信息;
调度压缩模块,用于根据所述元数据服务器返回的信息,指示所述第一分片数据或所述分片数据所在的存储服务器调度数据并执行对应的压缩操作。
优选地,所述相似性确定模块中进一步包括:
数据集获取模块,用于通过相对熵原理计算所述第一分片数据的词频率-逆向文档频率值来获取所述第一分片数据的特征向量;
数据集比对模块,用于通过余弦定理计算所述第一分片数据的特征向量与其他分片数据的特征向量之间的夹角,根据所述夹角确定分片数据之间的相似度,找出与所述第一分片数据最相似的第二分片数据或者所述第二分片数据被压缩后的第三分片数据。
优选地,所述调度压缩模块中进一步包括:
数据调度模块,用于在所述第一分片数据所在的第一存储服务器的信息与所述相关数据所在的第二存储服务器的信息不同时,将数据量少的数据调度至对方存储服务器上,并在自身存储服务器上删除所述数据量少的数据,同时更新元数据信息;
数据压缩模块,用于通知所述对方存储服务器执行对所述第一分片 数据与所述相关数据的合并压缩。
优选地,所述相似性确定模块中还包括:
策略设置模块,用于根据用户自定义的策略,将满足用户指定条件所产生的分片数据判定为所述相似的相关数据。
优选地,所述系统还包括:
信息更新模块,用于在执行完所述压缩操作后,对数据信息进行更新;
其中,所述信息更新模块进一步包括:
新数据信息更新模块,用于更新压缩得到的新分片数据的元数据信息;
原数据信息更新模块,用于删除参与压缩的数据,更新所述参与压缩的数据的元数据信息及压缩信息。
再一方面,本发明的实施例中还同时提供一种云存储系统,包括:如上所述的压缩系统,以及
分片存储模块,用于将全部待存储数据划分为分片数据后保存至各存储服务器上。
本发明通过判定两个数据块之间的相似性,将高相似性的数据块调度到同一个存储服务器上进行压缩,从而获得较高的压缩比,更加节约存储空间。
附图说明
图1为本发明的一个实施例中基于内容相似性的云存储方法的流程示意图;
图2为本发明的一个优选实施例中基于内容相似性的云存储系统的结构示意图;
图3为本发明的一个优选实施例中基于内容相似性判定的云存储方法的流程示意图;
图4为本发明的另一个优选实施例中基于内容相似性判定的云存储方法的流程示意图;
图5为图3和图4中已被压缩的分片数据的读出过程的流程示意图;
图6为图3和图4中已被压缩的分片数据的删除过程的流程示意图。
具体实施方式
为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明作进一步详细描述。
现有技术中,云存储系统的存储利用率主要依赖于消重及压缩策略,而消重策略又严重依赖于对存储内容是否相同的判断效率和准确度上。由于相同性判定一般基于大量数据的比对,只有数据或分片数据完全相同时才采取措施进行消重手段进行优化,而对分片数据之间不考虑它们的相似性各自进行压缩,效果往往很有限,这使得现有云存储系统可优化的余地非常有限。
在本发明的技术方案中,优化针对的数据不仅限于相同数据,压缩手段还可进一步应用到相似数据上,同时还采用了一定的调度手段进一步优化系统存取效率,从而实现了存储利用率的大幅提升。
如图1所示,在本发明的一个实施例中,基于内容相似性的云存储方法具体包括步骤:
将全部待存储数据划分为分片数据后保存至各存储服务器上;
查询与第一分片数据相似的相关数据,并向元数据服务器查询所述相关数据所在的存储服务器信息;
根据所述元数据服务器返回的信息,指示所述第一分片数据或所述相关数据所在的存储服务器调度数据并执行对应的压缩操作。
本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,包括上述实施例方法的各步骤,而所述的存储介质可以是:ROM/RAM、磁碟、光盘、存储卡等。因此,本领域相关技术人员应能理解,与本发明的方法相对应的,本发明还同时包括一种基于内容相似性的云存储系统,如图2所示,与上述方法步骤一一对应地,该系统包括:
分片存储模块30,用于将全部待存储数据划分为分片数据后保存至各存储服务器上;
相似性确定模块10,用于查询与第一分片数据相似的相关数据,并向元数据服务器查询所述相关数据所在的存储服务器信息;
调度压缩模块20,用于根据所述元数据服务器返回的信息,指示所述第一分片数据或所述分片数据所在的存储服务器调度数据并执行对应的压缩操作。
其中,相似性确定模块10和调度压缩模块20可以独立于分片存储模块30存在,这两者构成了相似性压缩系统1。参见图2,调度压缩模块20还可进一步分为数据调度模块201、数据压缩模块202和数据解压模块203;数据调度模块201用于将经过相似性确定模块10确定出的高相似度的数据调度至同一个存储服务器上;数据压缩模块202用于将经过数据调度模块201调度至同一个存储服务器上的分片数据进行压缩;数据解压模块203用于在需要使用数据时将经过数据压缩模块202压缩后的分片数据从压缩文件中解压出来。
优选地,相似性确定模块10包括数据对比模块101和策略设置模块102。策略设置模块102用于根据用户自定义的跨分片数据的压缩策略,将特定的相似分片数据直接存储至同一个存储服务器中。而数据对比模块101用于根据相对熵原理和余弦定理确认两个或者多个分片数据之间的相似度。数据对比模块101进一步包括:数据集获取模块101a和数据集比对模块101b;数据集获取模块101a用于获取分片数据的特征向量,数据集比对模块101b用于通过余弦定理来计算两个分片数据的特征向量之间的夹角。
分片存储模块30可以由云存储应用301、云存储客户端302和元数据服务器303共同实现;存储服务器3根据系统的需要集中和/或分布式地设置任意多个。
再结合图3~6所示,在本发明各个优选实施例中,针对上述方法和系统所可能面对的各种不同应用场景做了进一步的描述。
图3为本发明的一个优选实施例中提供的基于内容相似性的云存储方法的流程示意图。在图3中,第一分片数据(chunk)a所在服务器为第一存储服务器(Chunk server)A,相关数据(包括相似分片数据b或相似分片数据的压缩包b')所在服务器为第二存储服务器B。图2首先 采用步骤S301~S310描述了现有云存储文件分片的保存过程,步骤S311~S313是对第一分片数据的处理过程,步骤S314~S325是基于内容相似性的优化存储过程。具体地,在本发明的优选实施例一中,基于内容相似性的云存储方法包括如下步骤:
步骤S301、云存储应用调用云存储客户端,要求写入文件;
步骤S302、云存储客户端向云存储元数据服务器要求写入文件;
步骤S303、元数据服务器向云存储客户端返回可用的存储服务器信息;
步骤S304、云存储客户端向存储服务器写入分片数据;
优选地,如果是多副本方式,则向多个存储服务器写入分片的副本数据;
步骤S305、存储服务器保存分片数据;
步骤S306、存储服务器向云存储客户端返回保存分片成功的信息;优选地,如果文件有多个分片,则重复步骤S304至步骤S306;
步骤S307、所有分片保存完毕后,云存储客户端将所有元数据信息写入元数据服务器;
步骤S308、元数据服务器保存分片元数据;
步骤S309、元数据服务器返回保存元数据响应成功信息,给云存储客户端;
步骤S310、返回写入文件成功的消息给云存储应用。
以上步骤为现有云存储系统保存文件的过程。在本发明中未加改动。
步骤S311、第一存储服务器A在系统空闲时,计算和上报本服务器上保存的第一分片数据a的特征向量到相似性压缩系统;
具体地,计算特征向量时,如有必要可能访问元数据服务器,获取第一分片数据a的元数据信息。
步骤S312、相似性压缩系统保存第一分片数据a的特征向量到自己的数据库中。
步骤S313、相似性压缩系统返回保存成功信息给第一存储服务器A。第一存储服务器A对本地保存的第一分片数据a做记号,表明已经 上报过特征向量。
以上步骤S311~步骤S313过程,是所有存储服务器都会执行的过程。
其中,分片数据的特征向量的计算来源于对分片数据的元数据和分片数据本身的数据分析。元数据包括系统元数据和用户自定义元数据,从中获得该分片数据所在文件的类型、长度、分类、作者、行业、关键字、摘要等数据。分片数据本身的数据分析,包括通过词频率-逆向文档频率(即TF-IDF值)的统计获取,计算相对熵。本发明中,通过对分片数据的元数据信息和对分片数据本身的数据分析,基于相对熵原理,计算出分片数据的特征向量,并将分片数据的特征向量保存在相似性压缩系统的数据库中;该步骤主要由图2中的数据集获取模块101a完成。
相对熵是在数学上用来衡量两个函数的两组参数值以及计算结果是否相似的方案,其基本原理是:如果两组参数设置完全一样、函数值相同,则其相对熵为0。在信息检索领域,相对熵可利用词频率-逆向文档频率来计算;使用关键词的次数除以总字数,可得到关键词频率;逆文本频率指数公式为log(D/Dw),其中D是全部样本数,Dw是出现过关键词的样本数。一个字在样本中出现的越少,它的逆向文档频率越高,价值也越大,反之,类似“和”、“的”、“一”这样的字词,在每篇文挡均出现,逆向文档频率为0。需要查找某个词组“abc”时,其相关性计算公式就变为:TFa*IDFa+TFb*IDFb+TFc*IDFc;采用该方式可以简单计算出分片数据的特征向量。
步骤S314、相似性压缩系统在系统空闲时执行数据比对过程。利用数据集比对模块101b,在系统中逐一对未经压缩的分片数据进行比对。
具体地,例如,第一存储服务器A的第一分片数据a未经压缩,则对第一分片数据a的特征向量使用余弦定理公式,逐一计算它和数据集中所有分片的余弦夹角,获取其相似性:如果大于系统阈值,则认为它们高度相似。对于所有满足高度相似的分片中,找到最相似的第二分片数据b,或者最相似的第二分片数据b被压缩后的数据b'(实际也是以分片数据形式存储在存储服务器中,以下称第三分片数据b')。
其中,余弦定理是用来计算两个分片数据的特征向量之间的夹角的 方案,本发明中该步骤主要由图2中的数据集比对模块101b完成。具体地,如果夹角的余弦值大于系统阈值,例如缺省为0.99,即认为它们高度相似;两个完全相同的分片数据,夹角为0,余弦值为1。
余弦定理用来在数学上计算两个向量之间的夹角:对于每个分片中的数据,如果以字节为单位,可以认为其中只有0-255种不同值;如果以字(双字节)为单位,可以认为有65536种不同单字;如果以中文双字词为单位,大约有10万个。如果系统以字为单位,可以认为每个分片都是一个65536维的向量,每个维度为该分片中该字数据出现的次数,可用该向量代表该分片;如果两个分片完全一致,其夹角为0。余弦定理计算两分片向量{Xi,i=1…65536}与{Yi,i=1…65536}的夹角θ余弦公式为:
以上特征向量抽取和余弦定理夹角的计算公式是公开成熟的数学理论,早已在互联网搜索引擎、论文查重等领域得到了广泛应用;但用于云存储分片数据的相似性比对,是本发明的创新之处。因此,对于任意给定的一个分片数据,可用该公式计算在相似性压缩系统中其与其他每个分片数据之间的相似度,并与系统阈值比较,从而获得和它高度相似的分片数据块的集合。
步骤S315、向元数据服务器查询第二分片数据b或第三分片数据b'所在的第二存储服务器B。
步骤S316、元数据服务器向相似性压缩系统返回第二存储服务器B的信息。
步骤S317、如果第一存储服务器A和第二存储服务器B不同,则相似性压缩系统将第一分片数据a调度到第二分片数据b所在的第二存储服务器B上。如果数据有N个副本,则将分片数据a的N个副本,分别调度到分片数据b所在的N个存储服务器上。该步骤主要由图2中的数据调度模块201完成。
具体地,数据调度模块的调度过程包括:将第一分片数据a复制到 第二存储服务器B上,并在第一存储服务器A上删除第一分片数据a。
步骤S318、第二存储服务器B返回操作成功的消息给相似性压缩系统。
步骤S319、相似性压缩系统更新分片数据a的元数据信息到元数据服务器上。
步骤S320、元数据服务器保存更新后的元数据,返回更新成功的响应,给相似性压缩系统。
步骤S321、相似性压缩系统,通知第二存储服务器B,执行对第一分片数据a与第二分片数据b或与第三分片数据b'的合并压缩。
步骤S322、第二存储服务器B返回成功响应,给相似性压缩系统。
步骤S323、第二存储服务器B真正执行对第一分片数据a与第二分片数据b或与第三分片数据b'的合并压缩,结果产生第四分片数据c。在更新元数据成功后,删除第一分片数据a、第二分片数据b或第三分片数据b'。
步骤S324、第二存储服务器B更新第一分片数据a、第二分片数据b的信息到元数据服务器。元数据服务器返回保存成功的响应给第二存储服务器B。
步骤S325、第二存储服务器B更新第一分片数据a、第二分片数据b的压缩信息,给相似性压缩系统。
需要说明的是,以上流程仅仅是本发明实施例中正常执行的流程。具体实现时,还包括各种异常情况和相应的异常处理过程。
优选地,数据调度模块201是云存储系统的基本功能,它可以将部署在某个存储服务器上的分片数据调度到另一个存储服务器之上。比如可以将第一分片数据a从第一存储服务器A上移动到第二存储服务器B上,并更新相应的元数据信息。利用数据调度模块,本发明将相似性确定模块发现的未压缩第一分片数据a,调度到与其高度相似的第二分片数据b或第二分片数据b的压缩后的第三分片数据b'所在的存储服务器上,如果第二分片数据b或第三分片数据b'大小不超过系统设置,只要该存储服务器剩余空间满足要求,即可将它们压缩为同一个数据块。对于采用多副本的云存储系统,则第一分片数据a的每个副本都调度到第 二分片数据b或第三分片数据b'所在的每个副本的存储服务器上。由于第一分片数据a与第二分片数据b或第三分片数据b'存在高度相似性,有利于压缩算法构造更大规模的数据字典,取得较好的压缩效果。
数据调度模块201在云存储系统中一般用于实现以下目的:实现分片数据的重新分布,以避免某些存储服务器负载太高,另一些负载太低;使分片数据移动到靠近客户端的存储服务器上,减少应用响应时间;使分片数据存放在满足特定条件的存储服务器上。在本发明中,使用分片数据调度模块来移动分片数据,使得高度相似的数据块可以调度到同一个存储服务器上。具体的数据调度迁移工作,对应用透明。
数据压缩模块202是云存储系统的基本功能,也是云存储增值策略的一部分。在存储服务器上执行分片数据压缩功能,可将某个分片压缩,节约存储空间。如果第二分片数据b或第三分片数据b'大小不超过系统设置,数据压缩模块202将数据调度模块201准备好的高相似度第一分片数据a与第二分片数据b或与第三分片数据b'合并压缩,即可将它们压缩为同一个数据块。由于这些分片数据存在高度相似性,有利于压缩算法构造更大规模的数据字典,取得较好的压缩效果。在本发明中,使用数据压缩模块执行对多个相似分片数据块的压缩,从而获得更大的压缩比。若干相似的分片数据则通过数据相似性确定模块、策略设置模块获得,并通过数据调度模块使它们存储在同一个存储服务器上。具体的压缩算法可采用目前成熟的LZO,GZIP等算法。
数据解压模块203是数据压缩模块202的逆功能。当用户访问某个分片数据时,根据用户请求将该分片数据从压缩文件中解压出来,恢复成压缩前的数据,并返回给客户端。如果用户对该分片数据进行了修改,则相似性确定模块10需要对修改后的数据重新进行比对,决定是否压缩。
此外,上述调度压缩过程中以将第一分片数据a调度到第二存储服务器B来压缩为例进行了说明,该方式仅作为示例性说明。实际情况中,优选采用数据调度量最小的方式进行,即如果第一分片数据a及其副本总数据量大于第二分片数据b(或第三分片数据b')及其副本的总数据量,也可采用将第二分片数据b或第三分片数据b'调度到第一存储服务 器A来压缩的方式进行处理。
本优选实施例提供的基于内容相似性判定的云存储方法及系统(尤其是相似性压缩系统)中,通过采用相对熵原理和余弦定理,判定两个数据块之间的相似性;将高相似性的数据块调度到同一个存储服务器上,通过压缩算法进行压缩,从而获得较高的压缩比,更加节约存储空间。与传统的高效云存储策略如消重、压缩等相比,它在相似数据间进行压缩,有利于压缩程序构造更大的数据字典,从而比数据各自压缩的老策略获得更高的压缩比。本发明解决了现有云存储技术中,无法通过消重技术消除重复性的相似数据,且在相似数据被存储到多个存储服务器上时,只能单独对它们进行压缩,压缩比有限的缺点。此外,在本发明的另一个优选实施例中,图2的相似性确定模块中还包括策略设置模块102,可以应用用户自定义的压缩策略,主要用于将特定的相似性数据进行压缩,比如特定应用调用应用程序接口(API)后产生的相似数据。策略设置模块102允许应用在写入文件时显式地通过API申明自己的应用数据之间具有高度相似性。云存储系统在存储该应用的文件时,根据该策略可将其N个副本存储在特定的N个应用服务器上。这样,在逻辑上,该应用的数据总是保存在同一个存储服务器上,以方便进行数据间压缩。
在保存数据到云存储系统时,元数据服务器根据该策略,将该用户或者应用的数据,都调度到同一个存储服务器上存储。如果有N副本,则保证每套副本都保存在N个不同的存储服务器上。存储服务器根据该策略,将满足用户设置条件的分片数据进行压缩,并且保存压缩后的数据块。当用户需要读取数据时,执行解压操作,生成单独的分片数据。如果该数据进行过更新,则在压缩后的数据块中删除老分片数据,加入新分片数据后重新压缩。这些具体的压缩解压过程,对用户和应用透明。
如果用户或者应用数据之间具有天然的较高相似性,例如来自同一采样系统的测量数据、来自计费系统的用户话单等,它们周期性的定时产生,具有固定的格式或者结构,但具体数据随时间不同,因此无法采用传统的消重策略消除重复性。由于数据周期性产生新数据,因此也无法由应用来执行压缩;加上这些数据要求可靠存储,一般也不会要求更 改。现有的云存储策略一般按照存储服务器的存储利用率和当前负载情况进行调度,将数据及其副本存储到符合条件的多个存储服务器上。不同时间产生的文件,可能保存在不同的存储服务器上;即使对每个文件执行压缩,效果也有限。此时,对于与第一分片数据a高度相似的第二分片数据b(或其压缩的第三分片数据b'),应用可以设置采用下述的分片间压缩策略。
图4为本发明的上述另一优选实施例中提供的基于用户设置策略的云存储方法的流程示意图,基于用户设置策略的压缩过程,包括如下步骤:
步骤S401、云存储应用调用云存储客户端,要求写入文件。写入文件时,使用跨分片数据压缩策略,表明本应用的数据之间,具有较高的相似性。
步骤S402、云存储客户端向元数据服务器要求写入文件。
步骤S403、元数据服务器向云存储客户端返回可用存储服务器信息。
步骤S404、云存储客户端向存储服务器写入分片数据。如果是多副本方式,则向多个存储服务器写入分片的副本数据。
步骤S405、存储服务器保存分片数据。
步骤S406、存储服务器向云存储客户端返回保存分片成功的信息。
具体地,如果文件有多个分片,则重复执行步骤S404~步骤S406。
步骤S407、所有分片保存完毕后,云存储客户端将所有元数据信息写入元数据服务器。
步骤S408、元数据服务器保存分片元数据。
步骤S409、元数据服务器返回保存元数据响应成功信息,给云存储客户端。
步骤S410、云存储客户端根据发送保存分片数据压缩信息的请求给相似性压缩系统。
步骤S411、相似性压缩系统保存分片数据压缩信息。
步骤S412、相似性压缩系统返回保存成功的响应给云存储客户端。
步骤S413、云存储客户端返回“文件写入成功”的响应给云存储应 用。
步骤S414、相似性压缩系统定时运行,确定需要执行压缩的那些分片数据信息。
具体地,例如有第一分片数据a和第二分片数据b,其中第一分片数据a是未经压缩的分片数据,第二分片数据b可能是未经压缩的,也可能是包含多个分片数据的已压缩数据。
步骤S415、相似性压缩系统向元数据服务器查询第一分片数据a、第二分片数据b所在的第一存储服务器A。
步骤S416、元数据服务器返回第一存储服务器A的元数据信息。
步骤S417、相似性压缩系统命令第一存储服务器A执行将第一分片数据a与第二分片数据b两块数据合并压缩的指令。
步骤S418、第一存储服务器A返回响应消息给相似性压缩系统。
步骤S419、第一存储服务器A真正执行对第一分片数据a与第二分片数据b的合并压缩,产生第四分片数据c。
步骤S420、第一存储服务器A更新第一分片数据a、第二分片数据b的元数据,使它们指向第四分片数据c,并在本地做记录。更新成功后,删除第一分片数据a和第二分片数据b。
步骤S421、第一存储服务器A更新第一分片数据a、第二分片数据b的压缩数据到相似性压缩系统。
需要说明的是,以上流程仅仅是本发明实施例中正常执行的流程。具体实现时,还包括各种异常情况和相应的异常处理过程。
本实施例提供的基于用户设置策略的云存储方法中,进一步还通过提供用户自定义压缩策略,使得特定的用户或者应用产生的相似数据都调度到同一个存储服务器上存储;或者如果有N副本,则保证每套副本都保存在N个不同的存储服务器上。由于这些特定的相似数据总是保存在同一个存储服务器上,可以方便进行数据间压缩,进行压缩后可节约存储空间。
优选地,图5为图3和图4中已被压缩的分片数据的读出过程的流程示意图,如图5所示,已被压缩的分片数据的读取过程包括如下步骤:
步骤S501、用户调用云存储客户端接口,要求读取文件。
步骤S502、云存储客户端向元数据服务器发出读取文件元数据的请求。
步骤S503、元数据服务器返回文件元数据给云存储客户端。
步骤S504、云存储客户端根据元数据信息,向第一存储服务器A发出请求,读取第一分片数据a。
步骤S505、第一存储服务器A发现第一分片数据a位于压缩文件a'中,执行解压操作,释放出第一分片数据a。如果第一分片数据a未被压缩,则直接使用第一分片数据a。
步骤S506、第一存储服务器A返回第一分片数据a给云存储客户端。
优选地,如果文件或者读取请求中包含有多个分片,则重复步骤S504~步骤S506的过程,读取多个分片。
步骤S507、云存储客户端对文件分片进行聚合,返回整个文件或者大的片段。
步骤S508、云存储客户端返回文件数据给云存储应用。
需要说明的是,以上流程仅仅是本发明实施例中正常执行的流程。具体实现时,还包括各种异常情况和相应的异常处理过程。
图6为图3和图4中已被压缩的分片数据的删除过程的流程示意图,如图6所示,已被压缩的分片数据的删除过程包括如下步骤:
步骤S601、云存储应用调用云存储客户端接口,要求删除文件。
步骤S602、云存储客户端向元数据服务器发出读取文件元数据的请求。
步骤S603、元数据服务器返回文件元数据给云存储客户端。
步骤S604、云存储客户端根据元数据信息,向第一存储服务器A发出请求,删除第一分片数据a。
步骤S605、第一存储服务器A发现第一分片数据a位于压缩文件a'中,对压缩文件a'执行部分删除操作,即只删除其中的第一分片数据a,剩余部分仍然保存为压缩文件a'。如果第一分片数据a未被压缩,则直接删除第一分片数据a。
步骤S606、第一存储服务器A向相似性压缩系统更新信息,删除 第一分片数据a的相关压缩信息。
步骤S607、第一存储服务器A向云存储客户端返回“删除操作成功”的消息。
优选地,如果文件有多个分片或者多个副本,则重复执行步骤S604~步骤S607的过程。
步骤S608、云存储客户端向元数据服务器发出删除文件元数据的请求。
步骤S609、元数据服务器删除文件元数据,返回操作成功的响应给云存储客户端。
步骤S610、云存储客户端给云存储应用返回删除操作成功的响应。
需要说明的是,以上流程仅仅是本发明实施例中正常执行的流程。具体实现时,还包括各种异常情况和相应的异常处理过程。
本发明提供了云存储环境下,对多个相似文件或分片数据进行调度,使它们保存在同一个存储服务器上,然后执行压缩,以便获得较高的压缩比。本发明提供两种方式来确认数据的相似性。一是通过相对熵和余弦定理,由相似性压缩系统来计算和判定,二是提供应用策略接口,以便特定的应用来调用此策略。由数据调动模块将高相似性数据调度到同一个存储服务器上,再由数据压缩模块/数据解压模块进行压缩和解压缩。具体压缩和解压缩过程对应用透明。
本发明中,可以在云存储系统的存储服务器中,将高度相似的数据进行压缩,构造大的数据字典,提供较高的压缩比。和现有消重、压缩策略相比,本发明解决了现有云存储系统中,相似数据使用消重功能无效,而对数据或文件单独进行压缩效果较差的问题。本发明适用于数据相似但无法消重的场合,与传统的高效云存储策略如消重、压缩等相比,它在相似数据间进行压缩,有利于压缩程序构造更大的数据字典,从而比数据各自压缩的老策略获得更高的压缩比。进一步地,本发明也通过提供用户自定义压缩策略,使得特定的用户或者应用,可以把相似数据直接存储到同一个存储服务器上,进行压缩从而节约存储空间。这使本发明进一步适用于互联网环境的搜索、应用数据存储等场景(这些场景中,一般较少数据修改、删除操作;对于无法通过消重技术消除重复性 的相似数据,在相似数据被存储到多个存储服务器上时,单独对它们进行压缩,压缩比有限),相对于现有云存储技术,本发明将相似数据调度至同一存储服务器进行压缩,有效提高了压缩比。
显然,本领域的技术人员应该明白,本发明的上述各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而可以将它们存储在硬件中来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不受限于任何特定的硬件和软件结合。
可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。
Claims (12)
1.一种云存储的压缩方法,其特征在于,所述方法包括步骤:
查询与第一分片数据相似的相关数据,并向元数据服务器查询所述相关数据所在的存储服务器信息;
根据所述元数据服务器返回的信息,指示所述第一分片数据或所述相关数据所在的存储服务器调度数据并执行对应的压缩操作。
2.根据权利要求1所述的方法,其特征在于,所述方法中,所述查询与第一分片数据相似的相关数据进一步包括步骤:
通过相对熵原理计算所述第一分片数据的词频率-逆向文档频率值来获取所述第一分片数据的特征向量;
通过余弦定理计算所述第一分片数据的特征向量与其他分片数据的特征向量之间的夹角,根据所述夹角确定分片数据之间的相似度,找出与所述第一分片数据最相似的第二分片数据或者所述第二分片数据被压缩后的第三分片数据。
3.根据权利要求1所述的方法,其特征在于,所述方法中,所述指示所述第一分片数据或所述相关数据所在的存储服务器调度数据并执行对应的压缩操作进一步包括步骤:
在所述第一分片数据所在的第一存储服务器的信息与所述相关数据所在的第二存储服务器的信息不同时,将数据量少的数据调度至对方存储服务器上,并在自身存储服务器上删除所述数据量少的数据,同时更新元数据信息;
通知所述对方存储服务器执行对所述第一分片数据与所述相关数据的合并压缩。
4.根据权利要求1所述的方法,其特征在于,所述方法中,所述查询与第一分片数据相似的相关数据还包括步骤:
根据用户自定义的策略,将满足用户指定条件所产生的分片数据判定为所述相似的相关数据。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述方法中还包括步骤:
在执行完所述压缩操作后,对数据信息进行更新;
其中,所述更新包括:
更新压缩得到的新分片数据的元数据信息;
删除参与压缩的数据,更新所述参与压缩的数据的元数据信息及压缩信息。
6.一种云存储方法,其特征在于,所述云存储方法在如权利要求1-5中任一项所述的压缩方法的全部步骤之外还包括步骤:
将全部待存储数据划分为分片数据后保存至各存储服务器上。
7.一种云存储的压缩系统,其特征在于,所述系统包括:
相似性确定模块,用于查询与第一分片数据相似的相关数据,并向元数据服务器查询所述相关数据所在的存储服务器信息;
调度压缩模块,用于根据所述元数据服务器返回的信息,指示所述第一分片数据或所述分片数据所在的存储服务器调度数据并执行对应的压缩操作。
8.根据权利要求7所述的系统,其特征在于,所述相似性确定模块中进一步包括:
数据集获取模块,用于通过相对熵原理计算所述第一分片数据的词频率-逆向文档频率值来获取所述第一分片数据的特征向量;
数据集比对模块,用于通过余弦定理计算所述第一分片数据的特征向量与其他分片数据的特征向量之间的夹角,根据所述夹角确定分片数据之间的相似度,找出与所述第一分片数据最相似的第二分片数据或者所述第二分片数据被压缩后的第三分片数据。
9.根据权利要求7所述的系统,其特征在于,所述调度压缩模块中进一步包括:
数据调度模块,用于在所述第一分片数据所在的第一存储服务器的信息与所述相关数据所在的第二存储服务器的信息不同时,将数据量少的数据调度至对方存储服务器上,并在自身存储服务器上删除所述数据量少的数据,同时更新元数据信息;
数据压缩模块,用于通知所述对方存储服务器执行对所述第一分片数据与所述相关数据的合并压缩。
10.根据权利要求7所述的系统,其特征在于,所述相似性确定模块中还包括:
策略设置模块,用于根据用户自定义的策略,将满足用户指定条件所产生的分片数据判定为所述相似的相关数据。
11.根据权利要求7-10中任一项所述的系统,其特征在于,所述系统还包括:
信息更新模块,用于在执行完所述压缩操作后,对数据信息进行更新;
其中,所述信息更新模块进一步包括:
新数据信息更新模块,用于更新压缩得到的新分片数据的元数据信息;
原数据信息更新模块,用于删除参与压缩的数据,更新所述参与压缩的数据的元数据信息及压缩信息。
12.一种云存储系统,其特征在于,所述云存储系统包括:如权利要求7-11中任一项所述的压缩系统,以及
分片存储模块,用于将全部待存储数据划分为分片数据后保存至各存储服务器上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410166852.8A CN105022741B (zh) | 2014-04-23 | 2014-04-23 | 压缩方法和系统以及云存储方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410166852.8A CN105022741B (zh) | 2014-04-23 | 2014-04-23 | 压缩方法和系统以及云存储方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105022741A true CN105022741A (zh) | 2015-11-04 |
CN105022741B CN105022741B (zh) | 2018-09-28 |
Family
ID=54412725
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410166852.8A Active CN105022741B (zh) | 2014-04-23 | 2014-04-23 | 压缩方法和系统以及云存储方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105022741B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106817406A (zh) * | 2016-12-22 | 2017-06-09 | 南京邮电大学 | 一种应用于RCFile存储模型的预分配的自适应压缩方法 |
CN111033487A (zh) * | 2017-04-13 | 2020-04-17 | Emc知识产权控股有限公司 | 基于微服务的去重 |
WO2020192627A1 (zh) * | 2019-03-22 | 2020-10-01 | 华为技术有限公司 | 一种分块方法及其装置 |
CN112104730A (zh) * | 2020-09-11 | 2020-12-18 | 杭州海康威视系统技术有限公司 | 存储任务的调度方法、装置及电子设备 |
CN112099725A (zh) * | 2019-06-17 | 2020-12-18 | 华为技术有限公司 | 一种数据处理方法、装置及计算机可读存储介质 |
WO2023279833A1 (zh) * | 2021-07-08 | 2023-01-12 | 华为技术有限公司 | 一种数据处理方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101963982A (zh) * | 2010-09-27 | 2011-02-02 | 清华大学 | 基于位置敏感哈希的删冗存储系统元数据管理方法 |
CN101980196A (zh) * | 2010-10-25 | 2011-02-23 | 中国农业大学 | 文章比对方法与装置 |
US20110161297A1 (en) * | 2009-12-28 | 2011-06-30 | Riverbed Technology, Inc. | Cloud synthetic backups |
CN102222085A (zh) * | 2011-05-17 | 2011-10-19 | 华中科技大学 | 一种基于相似性与局部性结合的重复数据删除方法 |
CN102495894A (zh) * | 2011-12-12 | 2012-06-13 | 成都市华为赛门铁克科技有限公司 | 重复数据查找方法、装置及系统 |
US20140075152A1 (en) * | 2012-09-11 | 2014-03-13 | International Business Machines Corporation | Method for generating a delta for compressed data |
-
2014
- 2014-04-23 CN CN201410166852.8A patent/CN105022741B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110161297A1 (en) * | 2009-12-28 | 2011-06-30 | Riverbed Technology, Inc. | Cloud synthetic backups |
CN101963982A (zh) * | 2010-09-27 | 2011-02-02 | 清华大学 | 基于位置敏感哈希的删冗存储系统元数据管理方法 |
CN101980196A (zh) * | 2010-10-25 | 2011-02-23 | 中国农业大学 | 文章比对方法与装置 |
CN102222085A (zh) * | 2011-05-17 | 2011-10-19 | 华中科技大学 | 一种基于相似性与局部性结合的重复数据删除方法 |
CN102495894A (zh) * | 2011-12-12 | 2012-06-13 | 成都市华为赛门铁克科技有限公司 | 重复数据查找方法、装置及系统 |
US20140075152A1 (en) * | 2012-09-11 | 2014-03-13 | International Business Machines Corporation | Method for generating a delta for compressed data |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106817406A (zh) * | 2016-12-22 | 2017-06-09 | 南京邮电大学 | 一种应用于RCFile存储模型的预分配的自适应压缩方法 |
CN106817406B (zh) * | 2016-12-22 | 2020-05-26 | 南京邮电大学 | 一种应用于RCFile存储模型的预分配的自适应压缩方法 |
CN111033487A (zh) * | 2017-04-13 | 2020-04-17 | Emc知识产权控股有限公司 | 基于微服务的去重 |
WO2020192627A1 (zh) * | 2019-03-22 | 2020-10-01 | 华为技术有限公司 | 一种分块方法及其装置 |
US11755540B2 (en) | 2019-03-22 | 2023-09-12 | Huawei Technologies Co., Ltd. | Chunking method and apparatus |
CN112099725A (zh) * | 2019-06-17 | 2020-12-18 | 华为技术有限公司 | 一种数据处理方法、装置及计算机可读存储介质 |
WO2020253406A1 (zh) * | 2019-06-17 | 2020-12-24 | 华为技术有限公司 | 一种数据处理方法、装置及计算机可读存储介质 |
US11797204B2 (en) | 2019-06-17 | 2023-10-24 | Huawei Technologies Co., Ltd. | Data compression processing method and apparatus, and computer-readable storage medium |
CN112104730A (zh) * | 2020-09-11 | 2020-12-18 | 杭州海康威视系统技术有限公司 | 存储任务的调度方法、装置及电子设备 |
CN112104730B (zh) * | 2020-09-11 | 2023-03-28 | 杭州海康威视系统技术有限公司 | 存储任务的调度方法、装置及电子设备 |
WO2023279833A1 (zh) * | 2021-07-08 | 2023-01-12 | 华为技术有限公司 | 一种数据处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105022741B (zh) | 2018-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10936562B2 (en) | Type-specific compression in database systems | |
KR102007070B1 (ko) | 메모리 관리 시의 중복 제거를 위해서 기준 세트로 기준 블록을 취합하는 기법 | |
CN109074362B (zh) | 分布式系统中的拆分和移动范围 | |
CN105022741A (zh) | 压缩方法和系统以及云存储方法和系统 | |
US11494339B2 (en) | Multi-level compression for storing data in a data store | |
US8380681B2 (en) | Extensible pipeline for data deduplication | |
US9715434B1 (en) | System and method for estimating storage space needed to store data migrated from a source storage to a target storage | |
US8943032B1 (en) | System and method for data migration using hybrid modes | |
US9811549B2 (en) | Applying a database transaction log record directly to a database table container | |
US8949208B1 (en) | System and method for bulk data movement between storage tiers | |
US9817879B2 (en) | Asynchronous data replication using an external buffer table | |
US20200012569A1 (en) | Methods and systems for serverless data deduplication | |
US11221992B2 (en) | Storing data files in a file system | |
US10210186B2 (en) | Data processing method and system and client | |
US11429658B1 (en) | Systems and methods for content-aware image storage | |
US11226865B2 (en) | Mostly unique file selection method for deduplication backup systems | |
US20200133719A1 (en) | Method of efficiently migrating data from one tier to another with suspend and resume capability | |
US11422721B2 (en) | Data storage scheme switching in a distributed data storage system | |
US20170123689A1 (en) | Pipelined Reference Set Construction and Use in Memory Management | |
CN113296709B (zh) | 用于去重的方法和设备 | |
CN110704194A (zh) | 管理内存数据及在内存中维护数据的方法和系统 | |
CN105493080A (zh) | 基于上下文感知的重复数据删除的方法和装置 | |
US11372570B1 (en) | Storage device, computer system, and data transfer program for deduplication | |
US10649807B1 (en) | Method to check file data integrity and report inconsistencies with bulk data movement | |
JP2010170475A (ja) | ストレージシステム、ストレージシステムにおけるデータ書込方法及びデータ書込プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 210000, 1-5 story, Jinshan building, 8 Shanxi Road, Nanjing, Jiangsu. Applicant after: Suning.com group Limited by Share Ltd Address before: 210042 15, 1 Suning Road, Xuanwu District, Nanjing, Jiangsu. Applicant before: Yun Shang Group Plc of Suning |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |