openGauss新功能:极致RTO回放支持备机读

2023-11-01 14:52

本文主要是介绍openGauss新功能:极致RTO回放支持备机读,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

极致RTO回放是openGauss提供的一种加速备机日志回放的高可用功能,能够做到支撑数据库主机重启后快速恢复,RTO < 10s。极致RTO功能是通过对物理日志回放建立多级流水线,将回放的并发度提高到页面级,来提升日志回放速度的。openGauss在该功能的基础上,进一步演进,在开启极致RTO回放模式的备机上同时支持读功能。从而实现了在提升回放速度的同时,让备机分担业务压力,降低成本。

c1b7a6032f70e51c4f901d4bfa7c95df.jpeg

极致RTO支持备机读主要解决了以下两个难题:

  1. 极致RTO回放模式是按照页面级别的粒度并行回放的,即物理日志会分解成多个不同页面的日志项,分发给多个不同的线程并行去回放,相同页面的日志项回放是串行进行的,不同页面的日志项回放是并行进行的,特别是对于Btree这种通常会生成包含多个页面的物理日志,该机制在明显提升回放效率的同时,也对支持读功能造成了很大的挑战,要能够在不同页面回放进度不一致时保证读数据的一致性;

  2. 由于openGauss内部是采用的MVCC机制(Multi-Version Concurrency Control 多版本并发控制),历史的备机读特性存在较明显的缺陷,当备机回放到涉及到历史版本数据清理或可见性变更等类型的操作时,如果有持有较旧快照的查询还有可能去访问旧版本数据,那么该操作的回放将暂时被阻塞,直到该查询正常结束,或者等待查询超时发送信号取消查询,而无论是回放阻塞还是查询被取消都对业务影响比较明显。

极致RTO备机读功能通过实现数据页面多版本读机制,解决了以上两个问题。在回放过程中,每当某个页面回放若干次后,生成一次历史版本,当查询操作在访问页面时,可以根据持有快照中的信息,选择一个基准版本的页面,再按需回放若干次后,来获得正确的页面版本。因此,即使不同页面的回放进度不一致,也能够获取到正确的历史版本页面从而保证读数据的一致性;并且,对于持有较旧快照的长查询,也不会和回放产生冲突,不会阻塞回放,从而避免了备机读业务对备机回放速度的影响,同时也大大降低了备机上查询被取消的概率。


欢迎大家体验社区最新发布的创新版本openGauss 5.1.0版本:https://opengauss.org/zh/download/


这篇关于openGauss新功能:极致RTO回放支持备机读的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/323779

相关文章

最好用的WPF加载动画功能

《最好用的WPF加载动画功能》当开发应用程序时,提供良好的用户体验(UX)是至关重要的,加载动画作为一种有效的沟通工具,它不仅能告知用户系统正在工作,还能够通过视觉上的吸引力来增强整体用户体验,本文给... 目录前言需求分析高级用法综合案例总结最后前言当开发应用程序时,提供良好的用户体验(UX)是至关重要

python实现自动登录12306自动抢票功能

《python实现自动登录12306自动抢票功能》随着互联网技术的发展,越来越多的人选择通过网络平台购票,特别是在中国,12306作为官方火车票预订平台,承担了巨大的访问量,对于热门线路或者节假日出行... 目录一、遇到的问题?二、改进三、进阶–展望总结一、遇到的问题?1.url-正确的表头:就是首先ur

如何评价Ubuntu 24.04 LTS? Ubuntu 24.04 LTS新功能亮点和重要变化

《如何评价Ubuntu24.04LTS?Ubuntu24.04LTS新功能亮点和重要变化》Ubuntu24.04LTS即将发布,带来一系列提升用户体验的显著功能,本文深入探讨了该版本的亮... Ubuntu 24.04 LTS,代号 Noble NumBAT,正式发布下载!如果你在使用 Ubuntu 23.

TP-LINK/水星和hasivo交换机怎么选? 三款网管交换机系统功能对比

《TP-LINK/水星和hasivo交换机怎么选?三款网管交换机系统功能对比》今天选了三款都是”8+1″的2.5G网管交换机,分别是TP-LINK水星和hasivo交换机,该怎么选呢?这些交换机功... TP-LINK、水星和hasivo这三台交换机都是”8+1″的2.5G网管交换机,我手里的China编程has

Django中使用SMTP实现邮件发送功能

《Django中使用SMTP实现邮件发送功能》在Django中使用SMTP发送邮件是一个常见的需求,通常用于发送用户注册确认邮件、密码重置邮件等,下面我们来看看如何在Django中配置S... 目录1. 配置 Django 项目以使用 SMTP2. 创建 Django 应用3. 添加应用到项目设置4. 创建

使用 Python 和 LabelMe 实现图片验证码的自动标注功能

《使用Python和LabelMe实现图片验证码的自动标注功能》文章介绍了如何使用Python和LabelMe自动标注图片验证码,主要步骤包括图像预处理、OCR识别和生成标注文件,通过结合Pa... 目录使用 python 和 LabelMe 实现图片验证码的自动标注环境准备必备工具安装依赖实现自动标注核心

通过C#和RTSPClient实现简易音视频解码功能

《通过C#和RTSPClient实现简易音视频解码功能》在多媒体应用中,实时传输协议(RTSP)用于流媒体服务,特别是音视频监控系统,通过C#和RTSPClient库,可以轻松实现简易的音视... 目录前言正文关键特性解决方案实现步骤示例代码总结最后前言在多媒体应用中,实时传输协议(RTSP)用于流媒体服

Java操作xls替换文本或图片的功能实现

《Java操作xls替换文本或图片的功能实现》这篇文章主要给大家介绍了关于Java操作xls替换文本或图片功能实现的相关资料,文中通过示例代码讲解了文件上传、文件处理和Excel文件生成,需要的朋友可... 目录准备xls模板文件:template.xls准备需要替换的图片和数据功能实现包声明与导入类声明与

基于Qt实现系统主题感知功能

《基于Qt实现系统主题感知功能》在现代桌面应用程序开发中,系统主题感知是一项重要的功能,它使得应用程序能够根据用户的系统主题设置(如深色模式或浅色模式)自动调整其外观,Qt作为一个跨平台的C++图形用... 目录【正文开始】一、使用效果二、系统主题感知助手类(SystemThemeHelper)三、实现细节

Python开发围棋游戏的实例代码(实现全部功能)

《Python开发围棋游戏的实例代码(实现全部功能)》围棋是一种古老而复杂的策略棋类游戏,起源于中国,已有超过2500年的历史,本文介绍了如何用Python开发一个简单的围棋游戏,实例代码涵盖了游戏的... 目录1. 围棋游戏概述1.1 游戏规则1.2 游戏设计思路2. 环境准备3. 创建棋盘3.1 棋盘类