MySQL内核月报 2014.08-MariaDB·分支特性·FusionIO特性支持

MySQL内核月报 2014.08-MariaDB·分支特性·FusionIO特性支持背景随着存储设备越来越快 InnoDB 许多原有的设计不再适合新的高速硬件 因此 MariaDB10 1Alpha 版本针对 FusionIOPCI ESSD 做出了专门的优化 充分利用了 Fio 的硬件特性 MDEV 6246 这个需求改造了 MariaDB 以利用 fio 的 Atomicwrites 和文件系统压缩特性 为何 Fio 会更快呢 因为传统的存储

背景


为何Fio会更快呢,因为传统的存储设备读取,是左图的方式,要经过RAID控制器,来回的路径就长了。而Fio才有右图的方式,设备通过PCI槽直接与CPU交互,大大缩短了路径。

fusionio.png


MariaDB新增了一个参数来启用这个特性,一旦开启,所有文件会用DFS_IOCTL_ATOMIC_WRITE_SET标记打开。


这样一来Double Write Buffer就没有存在的价值了,因为不会出现部分写,每个write下去都可以保证所写内容全部完成,这可以相当程度上提升InnoDB的性能。

Page compression

总而言之,InnoDB的Compressed Page有这些缺点:



它的实现方法是,只在Page即将写入到文件系统时,才进行压缩,因此最终只有压缩后的容量被写入到磁盘,如果压缩失败,那么就把没有压缩的容量写入磁盘。另外还会对Page内的512字节的倍数的未使用空间清理掉,不占用实际存储:


当页面被读取时,会在放入Buffer Pool之前进行解压缩,将原始页面载入内存。因此需要在文件头中加入一个新的Page type:FIL_PAGE_PAGE_COMPRESSED page.jpeg

综合起来可以这样定义一张表:


意思是将t3表存到/dev/fioa盘,开启Page compression,采用4级压缩,开启原子写。

经过测试,可以看出,LZ4的压缩比例最好,而且,对性能影响非常小。

storage.png

tpcc.png



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/212235.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午8:30
下一篇 2026年3月18日 下午8:30


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号