AntDB 企业增强特性介绍——同步异步自适应流复制

AntDB 提供了 hot-standby 的能力,功能与 Oracle 11g 的active standby 类似。并且通过流复制的方式,大大地缩短了备份库与主库的事务间隔。

传统流复制分为同步和异步两种模式。同步复制,即主机的事务要等到备机提交成功后才会提交并结束事务,缺点是备机故障时,主机会一直宕机;异步复制,即指主机的事务完全不受备机的影响,缺点是主备机之间在高并发场景下数据会存在时延,无法做到实时强一致性。很多时候,数据安全、持续高可用和处理性能之间需要取得平衡。AntDB 在同步异步流复制基础上新增一种自适应流复制模式:采用同步模式时,当备机故障后,主备机之间自动切换成异步流复制模式不会造成主节点宕机。

AntDB 如何做到满足金融行业需要,达到 RTO 为 14 秒左右所做的系统设计,主要有如下几个方面。

1.流复制机制
AntDB 内核在流复制基础上实现了分布式跨平台内存级的流复制协议,以进行异构计算,通过流式事务处理机制可实现在高并发极限压力下主从节点间数据毫秒级同步延时,为业务的持续可用创造了底层有利条件,如图 3-10 所示。

流复制执行流程如下:
(1)启动主备机数据库服务。
(2)在备机上启动 startup 进程。
(3)备机启动 walreceiver 进程。
(4)walreceiver 进程向主节点发送连接请求,如果主节点没有运行,该进程会定期不断地尝试建立连接。
(5)主节点接收到连接请求后,启动 walsender 进程。walsender 进程和
walreceiver 进程建立物理连接。
(6)walreceiver 进程向主节点发送自己保存的最新 LSN 号。
(7)如果备节点的 LSN 号小于主节点的 LSN 号,walsender 进程向备机发送两个 LSN 之间产生变化的事务日志到备节点。备节点收到事务日志后开始进行回放(replay),直到追平主节点。
(8)后续主节点的变化会通过实时流的方式发送到备节点。一旦 commit
成功,postgres 进程会通知 walsender 进程从 walbuffers 中读取最新变化的数据发送到备节点。

除了支持流式数据复制之外,还支持多种数据同步模式,如同步、异步、半同步和多数派提交协议,且可以多种同步模式组合实现层层级联复制,满足远程和本地等多样的数据同步需求,如图 3-11 所示。

AntDB 内置了流复制的一些管理工具和系统视图,方便对流复制过程进行管理和监控,比如通过 pg_stat_replication 系统视图可以查看当前流复制的状态, 如图 3-12 所示。

2.自适应切换
在 AntDB 内核实现中,当同步 slave 节点出现异常后,主节点接收不到备机的确认消息会导致主节点无响应,一直不返回消息,造成客户端无法为业务继续提供写服务,不符合业务连续性保障的设计。参考 Oracle 最大保护、最大性能、最大可用之间的自适应切换设计,AntDB 也提供了类似的内核实现,解决了备节点异常后业务依然可持续,如图 3-13 所示。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/27976.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用Red Hat Insights注册RedHat系统

文章目录 前因Step 1: 确认所选择的系统Step 2: 将系统注册到Red Hat InsightsStep 3:具体操作演示 前因 使用SSH命令远程连接红帽系统,提示需要使用下面提示的命令进行系统注册订阅。 C:\Users\xyb>ssh -i xybdiy-aws-key.pem ec2-user18.179.118.78 The authen…

Mysql升级8.0后日期类型兼容性问题

背景 最近对原有项目数据库进行升级,从MySQL 5.7 升级到8.0,因此项目种的驱动程序也要做相应升级。 问题 一、 升级后报:java.time.LocalDateTime cannot be cast to java.util.Date 该问题是因为代码中使用Map类型获取查询返回值&#xf…

劝学:Android 14 Framework 引入了哪些“新”技术栈

作者:Mr_万能胶 2023 年 Google I/O 已于 2023 年 5 月 10 日 拉开帷幕,Android 14 Beta 版本近期也已经 释放到 Google partners,本文主要分析 Google 在 Android 14 框架代码中引入了哪些新的技术栈,而对于新功能和 API Change&…

Netty中ServerBootstrap类介绍

一、Netty基本介绍 Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。Netty 在保证易于开发的同时还保证了其应用的性能,稳定性和伸缩性。 Netty 是一…

OpenShift Route 的实现原理

OpenShift Route 的实现原理 OpenShift 如何使用 HAProxy 实现 Router 和 RouteRouter appHAProxy 配置1. HTTP2. HTTPS OpenShift 中的 Route 解决了从集群外部访问服务的需求,与 Kubernetes 中的 Ingress 类似。 OpenShift 中 Route 资源 API 定义如下&#xff1…

【数据结构】树

树 一些简单的性质: 设树中的结点总数为n,等于所有结点的度数之和1。设树中度数为i的结点数为ni ,则nn0n1n2…nm11 * n12 * n2…m*nm度为m的树中第i层上至多有m^i-1个结点(i>1)高度为h的m叉树至少有(m^h-1)/(m-1)个结点具有n个结点的m叉树的最小高度…

React生命周期

生命周期是一个抽象的概念,在生命周期的整个过程,分成了很多个阶段: 比如挂载阶段(Mount),组件第一次在DOM树中被渲染的过程; 比如更新过程(Update),组件状…

Spring集成Kafka

前言 我负责的其中一个项目,接口的交互量在千万级/d,所以要存储大量的日志,为了防止日志的存储影响到系统的性能,所以在技术选型就决定了使用Kafka中间件和一个日志存储系统来负责日志的存储。 使用Kafka 的优点: 1.…

图书推荐|大数据从业人人必备的Excel大数据处理分析

《Excel大数据处理&分析》为活页式新形态教材,介绍了Excel 2016的数据表基本操作、数据输入、数据获取、数据排序、数据筛选、分类汇总、公式与函数、日期和时间函数、数学和统计函数、查找和引用函数、数据透视表、图表的可视化分析、宏和VBA、数据分析工具的应…

23年软件测试前景和出路?新人入行测试怎样走“正确“的路...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 现在面试&#xf…

金融计量学第1节课:股指收益率序列统计特征

量化策略开发,高质量社群,交易思路分享等相关内容 导论与介绍 大家好,我是Le Chiffre 今天我们来为大家分享金融计量学系列内容,在松鼠量化3年多分享的内容中,大部分以量化策略为主,至今为止,…

Kotlin Lambda表达式和匿名函数的组合简直太强了

Kotlin Lambda表达式和匿名函数的组合简直太强了 简介 首先,在 Kotlin 中,函数是“第一公民”(First Class Citizen)。因此,它们可以被分配为变量的值,作为其他函数的参数传递或者函数的返回值。同样&…

【Excelc超实用快捷键!!!办公效率1000%up!up!up!】

目录索引 ctrle:提取数据:合并数据: 普通快捷键:ctrla:ctrlc:ctrlv:ctrlx:ctrlz:ctrly:ctrls:ctrlf: 文字格式快捷键:ctrl…

Python程序设计基础:数值

文章目录 一、数值数据类型二、python内置的数值操作三、math库 一、数值数据类型 Python语言可以很方便的用于处理数值运算问题,在数值运算过程中,常见的额两种数据类型分别为整数类型(int)和浮点类型(float&#xf…

局域网内不同网段的设备互相连接设置

目录 介绍1、打开网络连接,找到本地网络->属性->ipv4->属性->高级:2、在高级设置页面,我们添加一个IP,这个IP和板子在一个网段,我这里设置的是192.168.253.101:3、设置完成即可生效&#xff0c…

Jetpack Compose ——Row

当我们构建界面时,经常需要在Compose中使用Row布局来水平排列多个组件。Row提供了一种方便的方式来管理和定位子组件,使它们按照我们期望的方式呈现。 在Compose中,Row可以接受多个子组件作为参数,并根据指定的布局规则进行排列。…

ChatGPT 应用——使用 chatGPT 写高考作文

写作文,很简单,但写一篇好的作文,是非常有难度的。 想要写一篇高分作文,需要对作文题目有正确的理解,需要展现独到的观点和深入的思考,需要具备清晰的逻辑结构,需要准确而得体的语言表达。 正…

金鸣识别的表格分析技术揭秘

表格分析是指将图片中的表格区域分割出来,并识别出表格中的单元格和单元格中的内容。表格分析技术主要包括以下几个步骤: 1. 表格检测:通过图像处理技术,将图片中的表格区域分割出来。 2. 单元格分割:将表格中的每个单…

Unity入门4——重要组件与API

一、GameObject (一)成员变量 // 名字 print(this.gameObject.name); this.gameObject.name "Lesson4唐老狮改名"; print(this.gameOb…