【YashanDB知识库】关于表空间压缩

本文内容来自YashanDB官网,原文内容请见 https://www.yashandb.com/newsinfo/7106886.html?templateId=1718516

实现方法

1、YashanDB 的表空间压缩通过文件打洞(Hole Punching)实现。

2、“文件打洞”简单地说,如果文件中有连续字节0x00出现,只需要记录0字节数据块开始出现位置和块长度,而不需要实际保存原数据块。

3、表空间压缩支持LZ4(默认),ZSTD两种压缩算法。

4、数据库首先对BLOCK内容进行压缩,然后根据压缩结果做如下操作:

● 压缩失败或压缩之后的大小大于等于BLOCK大小,则不压缩,写入原始的BLOCK

● 压缩释放的空间不足一个文件系统的页大小,则不压缩,写入原始的BLOCK

● 压缩释放的空间大于等于一个文件系统的页大小,将释放的空间按照文件系统的页向下取整,写入压缩后的BLOCK,并将释放的空间进行打洞

5、DBWR写入时进行压缩;读取到DATA BUFFER过程解压。

环境要求

不是所有的文件系统都支持文件打洞功能,目前支持的文件系统有:xfs,ext4, btrfs, tmpfs, gfs2。此外,YashanDB还要求文件系统的的页大小为512、1024、2048或4096。

使用方法

创建表空间时指定压缩属性及压缩算法ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值