openGauss- 资源池化性能优化
可获得性
本特性自openGauss 5.1.0版本开始引入,仅适用于资源池化架构。
特性简介
本特性包含以下3个子特性:
- 资源池化备机可见性逻辑优化,本地缓存从主机获取到的事务xid对应的csn,减少网络开销和消息交互。
- 资源池化主机获取集群oldestxmin逻辑优化,主机本地记录备机实时获取快照的xmin,备机定时发送本机的oldestxmin给主机,减少广播开销。
- 资源池化备机获取快照逻辑优化,主机每次广播最新快照给备机,备机从本地获取快照,减少网络开销和消息交互。
客户价值
在资源池化架构下,通过相关逻辑的优化,可以提升备机只读场景的性能,在典型sysbench一主一备,主机读写备机只读测试场景中,备机性能可提升50%到80%。
特性描述
本特性包含以下3个子特性:
- 资源池化备机可见性逻辑优化:原有逻辑中备机在判断元组可见性时,如果元组上的xid未标识已提交,会向主机获取当前元组xid对应的实时csn用于判断可见性,如果备机查询的页面多,查询流程长,该交互逻辑会十分频繁,影响主机和备机的执行效率。该特性通过在备机本地内存中建立事务提交状态的二级缓存信息,备机进行元组可见性判断时,先从本地缓存获取,再从主节点获取,并更新本地缓存。
- 资源池化主机获取集群oldestxmin逻辑优化:原有逻辑中主机在每次生成最新的快照信息时,会触发广播消息从集群中的所有备机获取各自的oldestxmin,从而更新集群的oldestxmin,用于vacuum和heap tuple prune的操作。该特性通过在备机从主机获取快照时,在主机内存记录快照的xmin,同时备机通过后台线程定时发送本地的oldestxmin给主机,主机通过后台线程定时清理无效的xmin信息。
- 资源池化备机获取快照逻辑优化:原有逻辑中备机每次读都需要去主机获取实时的最新的快照信息,当备机读业务多时,主备交互频繁。该特性通过在主机每次生成最新快照时广播发送最新的快照信息给集群中的每个备机,备机在本地缓存最新的快照,备机中的每次读优先从本地最新快照中获取,可以减少备机只读业务多时的备机获取快照的消息交互。同时为减少备机数量多时由于广播操作对主机的影响,该特性通过开关可控制是否打开,默认关闭,详细可参考ss_enable_bcast_snapshot
特性增强
本特性是在资源池化架构下,对原有的备机可见性判断、主机获取oldestxmin以及备机获取快照特性进行的增强。
特性约束
无
依赖关系
本特性依赖资源池化架构。
详情查看:https://opengauss.org
详情查看:https://docs-opengauss.osinfra.cn