一种压缩存储方法和装置制造方法及图纸

技术编号:15763120 阅读:226 留言:0更新日期:2017-07-06 00:05
本发明专利技术实施例提供了一种压缩存储方法和装置,其中的方法具体包括:获取待存储数据的压缩参数,和/或,获取与待存储数据对应的存储设备的设备参数;依据所述压缩参数和/或设备参数,选择与所述待存储数据对应的目标压缩方案;利用所述目标压缩方案对所述待存储数据进行压缩存储。本发明专利技术实施例能够最大化地发挥所述目标压缩方案的优势,从而能够大大提高数据库的吞吐量等性能。并且,本发明专利技术实施例可以选择最契合当前CPU核数的目标压缩算法,从而可以在保证数据库性能的同时,能够增加压缩存储的稳定性,且能够尽可能地节省数据库集群中存储设备的资源。

Compression storage method and apparatus

The embodiment of the invention provides a compression storage method and device, the method includes: obtaining the compression parameter data to be stored, and / or equipment parameters acquisition and storage device to store the corresponding data; according to the compression parameters and / or equipment parameter selection and the data to be stored the corresponding target compression scheme; target using the compression scheme for the data to be stored is compressed and stored. The embodiment of the invention can maximize the advantages of the target compression scheme so as to greatly improve the throughput performance of the database. Also, the embodiment of the invention can choose the most suitable to the current number of nuclear CPU target compression algorithm, which can guarantee the performance of database at the same time, can increase the stability of compression and storage, and can be as much as possible to save storage devices in the cluster resource database.

【技术实现步骤摘要】
一种压缩存储方法和装置
本专利技术涉及计算机
,特别是涉及一种压缩存储方法和装置。
技术介绍
随着信息技术的发展,特别是Internet技术的发展,各领域的信息量都呈爆炸性增长趋势,高于1012字节的海量数据层出不穷。为了有效地管理海量数据,目前提出了压缩数据库技术,压缩数据库技术可以提高海量数据的存储效率,而且可以提高数据库的吞吐量等性能。现有方案通常采用InnoDB内部提供的zlib压缩算法进行海量数据的压缩存储;其中,InnoDB是MySQL数据库中应用最广的存储引擎,zlib可以提供数据压缩用的函数库,由此可以节省大约25%—50%左右的存储空间,且能够降低IO(输入输出,InputOutput)消耗,及提升数据库的吞吐量。然而,在使用现有方案的过程中,有时会遇到这样的问题:在数据量基数较大的情况下、继续频繁的insert(插入)或者update(更新)操作时,InnoDB所使用B-tree(B-树)索引本身的特性容易导致数据库性能的显著下降,例如,可能导致数据库的吞吐量下降。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的一种压缩存储方法和装置。依据本专利技术的一个方面,提供了一种压缩存储方法,包括:获取待存储数据的压缩参数,和/或,获取与待存储数据对应的存储设备的设备参数;依据所述压缩参数和/或设备参数,选择与所述待存储数据对应的目标压缩方案;利用所述目标压缩方案对所述待存储数据进行压缩存储。可选地,所述压缩参数包括应用场景参数和/或数据库架构参数,则所述依据所述压缩参数和/或设备参数,选择与所述待存储数据对应的目标压缩方案的步骤,进一步包括:从数据库的至少一种存储引擎中选择与所述应用场景参数和/或数据库架构参数对应的目标存储引擎;从所述目标存储引擎的至少一种压缩算法中选择对应的目标压缩算法,所述目标存储引擎及其对应的目标压缩算法组成所述目标压缩方案。可选地,所述从数据库的至少一种存储引擎中选择与所述应用场景参数对应的目标存储引擎的步骤,进一步包括:所述应用场景参数为第一应用场景参数,则选择对应的第一存储引擎为目标存储引擎;或者,所述应用场景参数为第二应用场景参数,则选择对应的第二存储引擎为目标存储引擎;其中,所述第一应用场景参数包括:联机事务处理场景参数、以及读密集场景参数中的至少一种;其中,所述第二应用场景参数包括:联机分析处理场景参数、以及批量装载和读密集场景参数中的至少一种。可选地,所述从数据库的至少一种存储引擎中选择与所述数据库架构参数对应的目标存储引擎的步骤,进一步包括:所述数据库架构参数为第一数据库架构参数,则选择对应的第三存储引擎为目标存储引擎;或者,所述数据库架构参数为第二数据库架构参数,则选择对应的第四存储引擎为目标存储引擎;其中,所述第一数据库架构参数包括:主从架构参数;或者,所述第二数据库架构参数包括:非主从架构参数。可选地,所述压缩参数包括压缩指标参数,则所述依据所述压缩参数和/或设备参数,选择所述待存储数据对应的目标压缩方案的步骤,进一步包括:从目标存储引擎的至少一种压缩算法中选择契合所述压缩指标参数和/或所述设备参数的目标压缩算法,所述目标存储引擎及其对应的目标压缩算法组成所述目标压缩方案。可选地,所述设备参数包括如下参数中的至少一种:CPU参数、磁盘参数和内存参数。可选地,所述压缩指标参数包括如下参数中的至少一种:压缩时间参数和压缩比参数。可选地,所述契合所述压缩指标参数和/或所述设备参数的目标压缩算法包括:契合第一级压缩指标参数的第一目标压缩算法;或者契合第二级压缩指标参数的第二目标压缩算法;或者契合第三级压缩指标参数的第三目标压缩算法;其中,所述第一级压缩指标参数、第二级压缩指标参数和第三级压缩指标参数对应的压缩指标递减;或者契合第一级设备参数的第一目标压缩算法;或者契合第二级设备参数的第二目标压缩算法;或者契合第三级设备参数的第三目标压缩算法;其中,所述第一级设备参数、第二级设备参数和第三级设备参数对应的设备性能递减。依据本专利技术的另一方面,提供了一种压缩存储装置,包括:获取模块,用于获取待存储数据的压缩参数,和/或,获取与待存储数据对应的存储设备的设备参数;选择模块,用于依据所述压缩参数和/或设备参数,选择与所述待存储数据对应的目标压缩方案;以及压缩存储模块,用于利用所述目标压缩方案对所述待存储数据进行压缩存储。可选地,所述压缩参数包括应用场景参数和/或数据库架构参数,则所述选择模块,进一步包括:第一选择子模块,用于从数据库的至少一种存储引擎中选择与所述应用场景参数和/或数据库架构参数对应的目标存储引擎;及第二选择子模块,用于从所述目标存储引擎的至少一种压缩算法中选择对应的目标压缩算法,所述目标存储引擎及其对应的目标压缩算法组成所述目标压缩方案。可选地,所述第一选择子模块,进一步包括:第一选择单元,用于在所述应用场景参数为第一应用场景参数时,选择对应的第一存储引擎为目标存储引擎;或者,第二选择单元,用于在所述应用场景参数为第二应用场景参数时,选择对应的第二存储引擎为目标存储引擎;其中,所述第一应用场景参数包括:联机事务处理场景参数、以及读密集场景参数中的至少一种;其中,所述第二应用场景参数包括:联机分析处理场景参数、以及批量装载和读密集场景参数中的至少一种。可选地,所述第一选择子模块,进一步包括:第三选择单元,用于在所述数据库架构参数为第一数据库架构参数时,选择对应的第三存储引擎为目标存储引擎;或者,第四选择单元,用于在所述数据库架构参数为第二数据库架构参数时,选择对应的第四存储引擎为目标存储引擎;其中,所述第一数据库架构参数包括:主从架构参数;或者,所述第二数据库架构参数包括:非主从架构参数。可选地,所述压缩参数包括压缩指标参数,则所述选择模块,进一步包括:第三选择子模块,用于从目标存储引擎的至少一种压缩算法中选择契合所述压缩指标参数和/或所述设备参数的目标压缩算法,所述目标存储引擎及其对应的目标压缩算法组成所述目标压缩方案。可选地,所述设备参数包括如下参数中的至少一种:CPU参数、磁盘参数和内存参数。可选地,所述压缩指标参数包括如下参数中的至少一种:压缩时间参数和压缩比参数。可选地,所述契合所述压缩指标参数和/或所述设备参数的目标压缩算法包括:契合第一级压缩指标参数的第一目标压缩算法;或者契合第二级压缩指标参数的第二目标压缩算法;或者契合第三级压缩指标参数的第三目标压缩算法;其中,所述第一级压缩指标参数、第二级压缩指标参数和第三级压缩指标参数对应的压缩指标递减;或者契合第一级设备参数的第一目标压缩算法;或者契合第二级设备参数的第二目标压缩算法;或者契合第三级设备参数的第三目标压缩算法;其中,所述第一级设备参数、第二级设备参数和第三级设备参数对应的设备性能递减。根据本专利技术实施例的一种压缩存储方法和装置,可以依据待压缩数据对应的压缩参数和/或设备参数,选择与所述待存储数据对应的目标压缩方案;由于上述压缩参数可用于表示与待压缩数据的特性相关的参数,或者,上述压缩参数也可用于表示与待压缩数据的压缩需求相关的参数,或者,上述压缩参数也可用于表示与待压缩数据的存储环境相关的参本文档来自技高网...
一种压缩存储方法和装置

【技术保护点】
一种压缩存储方法,包括:获取待存储数据的压缩参数,和/或,获取与待存储数据对应的存储设备的设备参数;依据所述压缩参数和/或设备参数,选择与所述待存储数据对应的目标压缩方案;利用所述目标压缩方案对所述待存储数据进行压缩存储。

【技术特征摘要】
1.一种压缩存储方法,包括:获取待存储数据的压缩参数,和/或,获取与待存储数据对应的存储设备的设备参数;依据所述压缩参数和/或设备参数,选择与所述待存储数据对应的目标压缩方案;利用所述目标压缩方案对所述待存储数据进行压缩存储。2.如权利要求1所述的方法,其特征在于,所述压缩参数包括应用场景参数和/或数据库架构参数,则所述依据所述压缩参数和/或设备参数,选择与所述待存储数据对应的目标压缩方案的步骤,进一步包括:从数据库的至少一种存储引擎中选择与所述应用场景参数和/或数据库架构参数对应的目标存储引擎;从所述目标存储引擎的至少一种压缩算法中选择对应的目标压缩算法,所述目标存储引擎及其对应的目标压缩算法组成所述目标压缩方案。3.如权利要求2所述的方法,其特征在于,所述从数据库的至少一种存储引擎中选择与所述应用场景参数对应的目标存储引擎的步骤,进一步包括:所述应用场景参数为第一应用场景参数,则选择对应的第一存储引擎为目标存储引擎;或者,所述应用场景参数为第二应用场景参数,则选择对应的第二存储引擎为目标存储引擎;其中,所述第一应用场景参数包括:联机事务处理场景参数、以及读密集场景参数中的至少一种;其中,所述第二应用场景参数包括:联机分析处理场景参数、以及批量装载和读密集场景参数中的至少一种。4.如权利要求2所述的方法,其特征在于,所述从数据库的至少一种存储引擎中选择与所述数据库架构参数对应的目标存储引擎的步骤,进一步包括:所述数据库架构参数为第一数据库架构参数,则选择对应的第三存储引擎为目标存储引擎;或者,所述数据库架构参数为第二数据库架构参数,则选择对应的第四存储引擎为目标存储引擎;其中,所述第一数据库架构参数包括:主从架构参数;或者,所述第二数据库架构参数包括:非主从架构参数。5.如权利要求1所述的方法,其特征在于,所述压缩参数包括压缩指标参数,则所述依据所述压缩参数和/或设备参数,...

【专利技术属性】
技术研发人员:王立新杨挺
申请(专利权)人:北京奇虎科技有限公司奇智软件北京有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1