一种数据压缩方法、存储引擎及存储系统技术方案

技术编号:8594065 阅读:311 留言:0更新日期:2013-04-18 07:16
本发明专利技术实施例提供一种数据压缩方法、存储引擎及存储系统,涉及计算机技术领域,能够实现文件数据中的独立页面的压缩。该存储引擎包括:数据引擎虚拟机层,用于接收应用程序下发的对文件数据进行压缩的操作指令;多路搜索树层,用于对该文件数据进行多路搜索树操作,并将经过多路搜索树操作处理后的页面号发送给页面层,该页面号对应的页面用于存储该文件数据;页面层,用于对该经过多路搜索树操作处理后的页面号对应的页面进行页面操作,得到独立页面数据;压缩层,该压缩层包括页面压缩数据模块,该页面压缩数据模块用于对该独立页面数据进行压缩得到页面压缩数据。本发明专利技术实施例提供的数据压缩方法、存储引擎及存储系统用于数据的压缩。

【技术实现步骤摘要】

本专利技术涉及计算机领域,尤其涉及一种数据压缩方法、存储引擎及存储系统
技术介绍
随着计算机技术及网络技术的高速发展,出现了数据库系统。数据库系统可以实 现数据库中的数据的共享和集中管理,所述集中管理包括对数据进行修改等操作。而数据 库系统管理的数据存储在存储系统中,因此存储系统的空间和存取速度对数据库系统的数 据管理操作存在影响。当存储系统中存储的数据不断增多时,可用空间会变小,此时就需要 对存储系统中的数据进行压缩来释放部分空间。现有技术采用的数据库的数据压缩方法通常由数据仓储软件或数据统计分析软 件等大数据软件将数据库的待压缩数据使用普通压缩软件如zlib、Izma等进行文件级的 压缩,即对待压缩数据中的各个文件数据进行整体压缩。当需要对于压缩后的文件数据进 行修改、查询、删除和插入等页面操作时,首先对压缩后的文件数据进行解压,再对解压后 的文件数据中的个别页面进行相应页面操作,在完成页面操作后,再进行文件数据的整体 压缩。该压缩方法缺乏灵活性,且存储服务器的性能损耗较大。
技术实现思路
本专利技术的实施例提供一种数据压缩方法、存储引擎及存储系统,能够实现文件数 据中的独立页面的压缩。为达到上述目的,本专利技术的实施例采用如下技术方案本专利技术第一方面提供一种存储引擎,包括数据引擎虚拟机层、多路搜索树层、页面层和压缩层;所述压缩层包括页面压缩数据模块;所述数据弓I擎虚拟机层,用于接收应用程序下发的对文件数据进行压缩的操作指 令;所述多路搜索树层,用于对所述文件数据进行多路搜索树操作,并将经过多路搜 索树操作处理后的页面号发送给页面层,所述页面号对应的页面用于存储所述文件数据;所述页面层,用于对所述经过多路搜索树操作处理后的页面号对应的页面进行页 面操作,得到独立页面数据;页面压缩数据模块,用于对所述独立页面数据进行压缩得到页面压缩数据。结合第一方面的第一种可能实现方式,所述压缩层还包括元数据模块;所述元数据模块,用于保存所述页面压缩数据的页面号和偏移量;所述压缩层,还用于根据所述元数据模块中保存的所述页面号和所述偏移量将所 述页面压缩数据存储到文件系统中。结合第一种可能实现方式的第二种可能实现方式,所述元数据模块还用于保存所 述页面压缩数据的空间占用值;所述压缩层还包括扩展数据模块;所述压缩层还用于,当所述页面压缩数据不是首次存储时,根据所述元数据模块 中保存的所述页面压缩数据的空间占用值,比较所述页面压缩数据的空间占用值是否大于 前一次页面压缩数据的空间占用值;当所述页面压缩数据的空间占用值大于所述前一次页 面压缩数据的空间占用值时,将所述页面压缩数据分为第一子页面压缩数据与第二子页面 压缩数据,所述第一子页面压缩数据的空间占用值为所述前一次页面压缩数据的空间占用 值,所述第二子页面压缩数据的空间占用值为所述页面压缩数据的空间占用值与所述前一 次页面压缩数据的空间占用值的差值;将所述第一子页面压缩数据保存至所述页面压缩数 据模块;将所述第二子页面压缩数据保存至所述扩展数据模块;所述元数据模块,还用于保存第一子页面压缩数据的页面号和偏移量及第二子页 面压缩数据的页面号和偏移量。结合第二种可能实现方式的第三种可能实现方式,所述压缩层还用于将所述页面 压缩数据模块保存的所述第一子页面压缩数据存储到所述文件系统,以及将所述扩展数据 模块保存的所述第二子页面压缩数据存储到所述文件系统。结合第一方面至第三种可能实现方式的第四种可能实现方式,所述数据引擎虚拟 机层,还用于接收应用程序下发的对所述页面压缩数据进行解压的操作指令;所述页面压缩数据模块,还用于根据所述元数据模块中保存的所述页面压缩数据 的页面号和偏移量,获得所述页面压缩数据,并对所述页面压缩数据进行解压。结合第四种可能实现方式的第五种可能实现方式,所述页面压缩数据模块,具体 用于分别从所述元数据模块中获取第一子页面压缩数据的页面号和偏移量,以及第二子页 面压缩数据的页面号和偏移量;根据所述第一子页面压缩数据的页面号和偏移量获得所述 第一子页面压缩数据;根据所述第二子页面压缩数据的页面号和偏移量获得所述第二子页 面压缩数据;分别对所述第一子页面压缩数据和所述第二子页面压缩数据进行解压。本专利技术第二方面提供一种数据压缩方法,应用于存储引擎,所述存储引擎包括数 据引擎虚拟机层、多路搜索树层、页面层和压缩层;所述方法包括通过所述数据引擎虚拟机层接收应用程序下发的对文件数据进行压缩的操作指 令;通过所述多路搜索树层对所述文件数据进行多路搜索树操作;通过所述页面层对经过多路搜索树操作的页面号对应的页面进行页面操作,得到 独立页面数据;通过所述压缩层对所述独立页面数据进行压缩得到页面压缩数据。结合第一种可能实现方式的第二种可能实现方式,所述方法还包括将所述页面压缩数据的页面号和偏移量保存至所述压缩层的元数据模块中;根据所述元数据模块中保存的所述页面号和所述偏移量将所述页面压缩数据存 储到文件系统中。结合第二种可能实现方式的第三种可能实现方式,所述方法还包括当所述页面压缩数据不是首次存储时,根据所述元数据模块中保存的所述页面压 缩数据的空间占用值,比较所述页面压缩数据的空间占用值是否大于前一次页面压缩数据 的空间占用值;当所述页面压缩数据的空间占用值大于所述前一次页面压缩数据的空间占用值时,将所述页面压缩数据分为第一子页面压缩数据与第二子页面压缩数据,所述第一子页 面压缩数据的空间占用值为所述前一次页面压缩数据的空间占用值,所述第二子页面压缩 数据的空间占用值为所述页面压缩数据的空间占用值与所述前一次页面压缩数据的空间 占用值的差值。结合第三种可能实现方式的第四种可能实现方式,所述方法还包括将所述第一子页面压缩数据保存至所述压缩层的页面压缩数据模块;将所述第二子页面压缩数据保存至所述压缩层的扩展数据模块;将所述第一子页面压缩数据的页面号和偏移量保存至元数据模块中;将所述第二子页面压缩数据的页面号和偏移量保存至元数据模块中。结合第四种可能实现方式的第五种可能实现方式,所述方法还包括将所述页面压缩数据模块保存的所述第一子页面压缩数据存储到所述文件系统, 以及将所述扩展数据模块保存的所述第二子页面压缩数据存储到所述文件系统。结合第二方面至第五种可能实现方式的第六种可能实现方式,所述方法还包括通过所述数据弓I擎虚拟机层接收应用程序下发的对所述页面压缩数据进行解压 的操作指令;根据所述元数据模块中保存的所述页面压缩数据的页面号和偏移量,获得所述页 面压缩数据,并对所述页面压缩数据进行解压。结合第六种可能实现方式的第七种可能实现方式,所述根据所述元数据模块中保 存的所述页面压缩数据的页面号和偏移量,获得所述页面压缩数据,并对所述页面压缩数 据进行解压包括分别从所述元数据模块中获取第一子页面压缩数据的页面号和偏移量,以及第二 子页面压缩数据的页面号和偏移量;根据所述第一子页面压缩数据的页面号和偏移量获得所述第一子页面压缩数 据;根据所述第二子页面压缩数据的页面号和偏移量获得所述第二子页面压缩数 据;分别对所述第一子页面压缩数据和所述第二子页面压缩数据进行解压。本专利技术第三方面提供一种存储系统,包括以上任一所述的存储引擎。本专利技术实施例提供一种数据压缩方法、存储引擎及存储系统,该存储引本文档来自技高网...

【技术保护点】
一种存储引擎,其特征在于,包括:数据引擎虚拟机层、多路搜索树层、页面层和压缩层;所述压缩层包括:页面压缩数据模块;所述数据引擎虚拟机层,用于接收应用程序下发的对文件数据进行压缩的操作指令;所述多路搜索树层,用于对所述文件数据进行多路搜索树操作,并将经过多路搜索树操作处理后的页面号发送给页面层,所述页面号对应的页面用于存储所述文件数据;所述页面层,用于对所述经过多路搜索树操作处理后的页面号对应的页面进行页面操作,得到独立页面数据;页面压缩数据模块,用于对所述独立页面数据进行压缩得到页面压缩数据。

【技术特征摘要】
1.一种存储引擎,其特征在于,包括数据引擎虚拟机层、多路搜索树层、页面层和压缩层; 所述压缩层包括页面压缩数据模块; 所述数据引擎虚拟机层,用于接收应用程序下发的对文件数据进行压缩的操作指令; 所述多路搜索树层,用于对所述文件数据进行多路搜索树操作,并将经过多路搜索树操作处理后的页面号发送给页面层,所述页面号对应的页面用于存储所述文件数据; 所述页面层,用于对所述经过多路搜索树操作处理后的页面号对应的页面进行页面操作,得到独立页面数据; 页面压缩数据模块,用于对所述独立页面数据进行压缩得到页面压缩数据。2.根据权利要求1所述的存储引擎,其特征在于,所述压缩层还包括元数据模块; 所述元数据模块,用于保存所述页面压缩数据的页面号和偏移量; 所述压缩层,用于根据所述元数据模块中保存的所述页面号和所述偏移量将所述页面压缩数据存储到文件系统中。3.根据权利要求2所述的存储引擎,其特征在于,所述元数据模块还用于保存所述页面压缩数据的空间占用值;所述压缩层还包括扩展数据模块; 所述压缩层还用于,当所述页面压缩数据不是首次存储时,根据所述元数据模块中保存的所述页面压缩数据的空间占用值,比较所述页面压缩数据的空间占用值是否大于前一次页面压缩数据的空间占用值;当所述页面压缩数据的空间占用值大于所述前一次页面压缩数据的空间占用值时,将所述页面压缩数据分为第一子页面压缩数据与第二子页面压缩数据,所述第一子页面压缩数据的空间占用值为所述前一次页面压缩数据的空间占用值,所述第二子页面压缩数据的空间占用值为所述页面压缩数据的空间占用值与所述前一次页面压缩数据的空间占用值的差值;将所述第一子页面压缩数据保存至所述页面压缩数据模块;将所述第二子页面压缩数据保存至所述扩展数据模块; 所述元数据模块,还用于保存第一子页面压缩数据的页面号和偏移量及第二子页面压缩数据的页面号和偏移量。4.根据权利要求3所述的存储引擎,其特征在于, 所述压缩层还用于将所述页面压缩数据模块保存的所述第一子页面压缩数据存储到所述文件系统,以及将所述扩展数据模块保存的所述第二子页面压缩数据存储到所述文件系统。5.根据权利要求1至4任一权利要求所述的存储引擎,其特征在于, 所述数据引擎虚拟机层,还用于接收应用程序下发的对所述页面压缩数据进行解压的操作指令; 所述页面压缩数据模块,还用于根据所述元数据模块中保存的所述页面压缩数据的页面号和偏移量,获得所述页面压缩数据,并对所述页面压缩数据进行解压。6.根据权利要求5所述的存储引擎,其特征在于, 所述页面压缩数据模块,具体用于分别从所述元数据模块中获取第一子页面压缩数据的页面号和偏移量,以及第二子页面压缩数据的页面号和偏移量;根据所述第一子页面压缩数据的页面号和偏移量获得所述第一子页面压缩数据;根据所述第二子页面压缩数据的页面号和偏移量获得所述第二子页面压缩数据;分别对所述第一子页面压缩数据和所述第二子页面压缩数据进行解压...

【专利技术属性】
技术研发人员:靳文军伍华涛
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1