ADIO特性与去双写
可获得性
本特性自505.1.0版本开始引入。
特性简介
ADIO异步刷页使用异步直接I/O模式完成数据库的刷页操作。在多数场景下,主机不再记录双写文件。
客户价值
随着客户数据库中数据量的不断积累,客户数据库中存储的数据量相对于机器物理内存的比值将会越来越大。此时,刷页操作效率以及带来的I/O操作会限制数据库性能的发挥。因此,通过优化刷页模式和I/O操作来提升大容量场景下的性能便尤为重要。
特性描述
ADIO异步刷页:大容量场景下,I/O资源比较紧俏。当前数据库BIO模式对于整体I/O资源利用不充分,容易导致刷页速度落后于消耗页面的速度,导致缓冲区页面消耗完时产生性能震荡,进而影响性能。本特性通过ADIO(异步直接I/O模式)充分利用IO资源,从而提升整体数据库的性能。同时,提供从BIO模式到ADIO模式的在线切换(参见《管理员指南》中“配置运行参数 > GUC参数说明”章节的“enable_adio_function”参数说明),使用户可以在不影响业务的情况下切换到ADIO模式。
去双写:增量checkpoint开启后,由于没有full page write保护,因此采用双写文件方案(即写两次)来防止半写。拉起始遇到半写页面,便能通过双写文件方案恢复。但是写两次会导致整体I/O量多一倍,而在大容量场景下IO资源很紧俏,因此去双写可以有效降低I/O使用量。当开启去双写功能时,若所有备机都处于正常状态,则主机会停止记录双写文件。若主机由于宕机产生半写页面,则通过备机页面进行修复。(注意:由于当前版本存在特性约束,分布式模式下不支持去双写。)
特性增强
无。
特性约束
在当前版本,去双写与数据修复特性存在依赖关系,而数据修复特性不支持修复hashbucket,所以分布式模式下不支持去双写。除此之外,由于该版本数据修复接口的timeout为固定值,如果想让半写页面及时恢复,需要开启流控机制,以防止因主备之间页面版本差距过大而导致的频繁修复失败问题。
依赖关系
去双写依赖数据修复特性中提供的主备间相互修复的接口。
更多详情请参考GaussDB 文档中心:https://doc.hcs.huawei.com/db/zh-cn/gaussdbqlh/24.1.30/productdesc/qlh_03_0001.html