一种针对数据库文件的存储空间优化方法及系统技术方案

技术编号:33651668 阅读:17 留言:0更新日期:2022-06-02 20:29
本发明专利技术提供了一种针对数据库文件的存储空间优化方法包括以下步骤:基于读写分离数据库基础架构,设置时间窗口使用数据处理线程模型积累由代理实例分流向只写实例的数据写请求;当时间窗口内数据积累满足时间窗口数据落盘条件后,采样探测时间窗口内的数据,确定对应数据是否适合进行压缩;若确定时间窗口内的数据适合进行压缩,则获取当前系统的工作负载信息,工作负载信息包括但不限于CPU和内存,构建基于工作负载的动态压缩策略,选择数据压缩算法对时间窗口内积累的数据文件进行压缩处理存储,通过本发明专利技术的技术方案,提高了存储空间利用率,降低了数据总拥有成本,降低了数据存储与备份传输成本。存储与备份传输成本。存储与备份传输成本。

【技术实现步骤摘要】
一种针对数据库文件的存储空间优化方法及系统


[0001]本专利技术涉及数据库压缩存储
,具体而言,涉及一种针对数据库文件的存储空间优化方法及系统。

技术介绍

[0002]随着智能手机、可穿戴设备、自动驾驶和其他连接设备的广泛应用,这些物联网设备的数据都存储在云平台的数据库中,数据规模出现了4V特征。国际数据公司IDC表明,到2025年将有41.6亿的物联网设备与我们的生活息息相关,这些数据将会产生更多的信息需求。传统的单节点数据处理架构以及存储容量已经不能满足于这些数据的存储访问需求,云平台可以为应用程序提供灵活且经济高效的环境。越来越多的应用和系统迁移到云中进行存储处理,但随之而来的是各种复杂的数据存储问题。现有的新型存储设备不断出现,越来越多的云服务提供商对其进行采购使用,但是其高昂的成本削弱了云服务提供商的市场竞争力。如何提供高可用、低成本的数据库服务成为了云服务提供商的难题。
[0003]相关技术中,托管在云平台中的数据库基础架构通常为“读写分离”模式,只读实例存储数据请求,并将其同步至只写实例。然而,只读实例中的数据只做存储和同步使用,占据了一定的存储空间,存储空间利用率低。只写实例处理频繁的数据写入请求,真实场景中的数据写入大小大部分小于1KB,这种频繁的不足1KB的数据写入请求会损耗新型的NVMe SSD硬盘寿命。
[0004]云服务提供商为了保障其提供的服务的高可靠性,通常会对节点数据存储文件进行备份传输至数据存储空间存储,当数据节点进行扩容或者恢复数据等操作时,需将节点的数据备份文件传输至目标节点进行恢复。数据库备份往往是为了容灾而准备的,其还可以服务于数据回滚、应用测试、内部审计等业务场景。对于小型数据库,可以用逻辑备份,但是真实场景下的数据库往往数十GB甚至数百GB,如果使用逻辑备份会极大的降低业务处理速度,而且出错频率高,因此云服务提供商往往使用物理备份对云平台的提供的数据库服务进行数据备份。云服务提供商提供的数据库服务不会因数据库备份进行短暂的关闭,往往使用热备份进行备份数据,即不影响数据库服务的数据备份。大多数业务场景下的数据库备份文件不直接存储在本地服务器,往往需要传输至其他服务器进行存储。
[0005]然而,目前并没有针对数据库中的字段存储特性进行深入研究,无法有效降低数据备份的存储空间,如果备份时不对数据文件进行任何处理,那么数据备份传输将会消耗大量的网络带宽,且备份时间较长,影响数据库上层业务的进行。

技术实现思路

[0006]本专利技术旨在至少解决现有技术或相关技术中存在的技术问题之一。
[0007]为此,本专利技术的目的在于提供一种针对数据库文件的存储空间优化方法及系统,通过对只写实例中的数据进行压缩处理,提高存储空间利用率,降低数据总拥有成本,利用数据库数据字段的存储特性减少数据传输大小,优化数据库数据文件备份模型,降低数据
存储与备份传输成本。
[0008]为了实现上述目的,本专利技术的第一方面的技术方案提供了一种针对数据库文件的存储空间优化方法,包括以下步骤:
[0009]基于读写分离数据库基础架构,设置时间窗口使用数据处理线程模型积累由代理实例分流向只写实例的数据写请求;
[0010]当时间窗口内数据积累满足时间窗口数据落盘条件后,采样探测时间窗口内的数据,确定对应数据是否适合进行压缩;
[0011]若确定时间窗口内的数据适合进行压缩,则获取当前系统的工作负载信息,所述工作负载信息包括但不限于CPU和内存,构建基于工作负载的动态压缩策略,选择数据压缩算法对时间窗口内积累的数据文件进行压缩处理存储,所述动态压缩策略公式为:
[0012][0013]其中,所述D表征为数据大小,所述表征为选择数据压缩算法x的平均压缩率,表征为选择数据压缩算法x的预测压缩时值,和分别表征为选择压缩算法x带来CPU和内存变化的影响值,α和β分别表征为CPU和内存的权重系数。
[0014]在该技术方案中,从读写分离只写实例落盘IO路径入手,基于读写分离数据库基础架构,设置时间窗口使用数据处理线程模型积累由代理实例分流向只写实例的数据写请求,在满足时间窗口数据落盘条件后,对时间窗口内的数据进行采样检测,确定时间窗口内的数据是否适合压缩,采用哪一种压缩算法更适合当前工作负载,构建基于工作负载的动态压缩策略,选择数据压缩算法对时间窗口积攒的数据文件进行压缩处理存储,实现高关联度模式访问数据压缩策略,在不盲目抢夺系统资源的情况下,结合系统资源使用情况对数据存储进行压缩处理,可以更有效地减少只读实例中的数据文件存储成本,提高服务的可用性。不同的压缩算法处理数据时的工作负载不同,会造成一定的系统延时,本专利技术基于工作负载构建动态压缩策略,有效避免了系统资源使用不均,出现尖刺等情况的发生。
[0015]在上述技术方案中,优选地,在对时间窗口内积累的数据文件进行压缩处理存储的同时,通过并行复制的方法对binlog日志进行同步。
[0016]在该技术方案中,在对时间窗口内积累的数据文件进行压缩处理存储的同时,通过并行复制的方法对binlog日志进行同步,能够有效降低复制延迟。
[0017]需要说明的是,由于云平台中读写分离数据库基础架构的特点,数据写请求只写入只写实例,而不立刻写入只读实例,只写实例和只读实例实现数据同步只能依托只写实例进行,容易出现复制延迟。而采用并行复制的方法对binlog日志进行同步,能够有效降低复制延迟。
[0018]在上述任一项技术方案中,优选地,针对数据库文件的存储空间优化方法还包括以下步骤:对数据库文件进行备份存储时,基于Dynamic compress的动态压缩编码技术,根据数据类型使用多线程异步处理模型进行数据压缩操作,所述多线程异步处理模型具体包括:
[0019]使用数据复制文件线程对数据库文件存储目录中的多个数据文件进行同时复制,每个数据复制文件线程处理一个数据文件且对应一个压缩前Buffer队列进行存储拷贝;
[0020]基于Dynamic compress的动态压缩编码技术,根据数据类型采用多线程对每一压缩前Buffer队列中的数据进行压缩处理;
[0021]压缩处理结束后写入压缩后Buffer队列,由数据存储文件线程将其写入目标备份存储空间。
[0022]在该技术方案中,对数据库文件进行备份存储时使用多线程异步处理模型,根据数据类型基于Dynamic compress的动态压缩编码技术进行数据压缩操作,使用数据复制文件线程对多个文件进行同时复制,每个线程处理一个数据文件,使用一个数据Buffer存储拷贝的数据文件,然后开启多线程对Buffer中的数据进行处理。按照固定数据长度进行动态数据压缩处理,最后处理结束后,写入Buffer队列,由另外一个数据存储文件线程将其写入目标文件,从而能够有效减少线程排队写入时间,降低数据总拥有成本。
[0023]需要说明的是,由于对数据进行压缩处理往往是密集型计算的操作,如果复制数据时同步对数据进行压缩,会对数本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种针对数据库文件的存储空间优化方法,其特征在于,包括以下步骤:基于读写分离数据库基础架构,设置时间窗口使用数据处理线程模型积累由代理实例分流向只写实例的数据写请求;当时间窗口内数据积累满足时间窗口数据落盘条件后,采样探测时间窗口内的数据,确定对应数据是否适合进行压缩;若确定时间窗口内的数据适合进行压缩,则获取当前系统的工作负载信息,所述工作负载信息包括但不限于CPU和内存,构建基于工作负载的动态压缩策略,选择数据压缩算法对时间窗口内积累的数据文件进行压缩处理存储,所述动态压缩策略公式为:其中,所述D表征为数据大小,所述表征为选择数据压缩算法x的平均压缩率,表征为选择数据压缩算法x的预测压缩时值,和分别表征为选择压缩算法x带来CPU和内存变化的影响值,α和β分别表征为CPU和内存的权重系数。2.根据权利要求2所述的针对数据库文件的存储空间优化方法,其特征在于,在对时间窗口内积累的数据文件进行压缩处理存储的同时,通过并行复制的方法对binlog日志进行同步。3.根据权利要求1所述的针对数据库文件的存储空间优化方法,其特征在于,还包括以下步骤:对数据库文件进行备份存储时,基于Dynamic compress的动态压缩编码技术,根据数据类型使用多线程异步处理模型进行数据压缩操作,所述多线程异步处理模型具体包括:使用数据复制文件线程对数据库文件存储目录中的多个数据文件进行同时复制,每个数据复制文件线程处理一个数据文件且对应一个压缩前Buffer队列进行存储拷贝;基于Dynamic compress的动态压缩编码技术,根据数据类型采用多线程对每一压缩前Buffer队列中的数据进行压缩处理;压缩处理结束后写入压缩后Buffer队列,由数据存储文件线程将其写入目标备份存储空间。4.根据权利要求3所述的针对数据库文件的存储空间优化方法,其特征在于,基于Dynamic compress的动态压缩编码技术,根据数据类型采用多线程对每一压缩前Buffer队列中的数据进行压缩处理具体包括以下步骤:若待处理的数据类型为long数字类型,按照7位数字为一组对其进行分段,每一组的最后一位设为标志位,标志位为0则表示当前数字不是最后一组,标志位为1则表示当前数字为最后一组;基于Dynamic compress的动态压缩编码技术,依次对每一组数据中的前导零进行压缩,直到压缩完标志位为1的最后一组后停止。5.根据权利要求4所述的针对数据库文件的存储空间优化方法,其特征在于,若待处理的数据类型为long数字类型,在按照7位数字为一组对其进行分段之前,还包括:根据首位符号位判断其是否为负数;若确定为负数,则进行移位操作,将符号位放置最后一位,并对其他位的数字取反。
6.根据权利要求3所述的针对数据库文件的存储空间优化方法,其特征在于,基于Dynamic compress的动态压缩编码技术,根据数据类型采用多线程对每一压缩前Buffer队列中的数据进行压缩处理具体包括以下步骤:若待处理的数据类型为字符类型,则依据字符前缀,对具有共同前缀编码的字符进行分桶操作;合并具有相同前缀编码的数据,生成较大数据块;使...

【专利技术属性】
技术研发人员:朱东杰王书东刘以海侯国慧陈安
申请(专利权)人:滨州东方地毯有限公司
类型:发明
国别省市:

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

1