DTC 2023回顾丨基于数据复制技术的多写多读数据库集群解决方案

news2024/11/15 13:49:07

在不久前结束的2023 DTC数据技术嘉年华中国数据库创新论坛上,GBASE南大通用8s产品经理郭茁老师分享了GBase 8s《基于数据复制技术的多写多读数据库集群解决方案》。

今天带大家一同回顾下本次演讲。

海量数据的存储和运算是目前行业内面临的一个重要问题,为此业界也提出了很多解决方法。此次GBase 8s提出“基于集中式高可用技术搭载数据复制技术”,探究突破传统集中式集群局限的可支持多读多写的集群整体解决方案

集中式数据库

·计算集中、存储集中

·遵循ACID,强调事务处理性能和数据强一致性

·适用于事务密集型场景及行业核心交易系统

分布式数据库

·分布式计算、分布式存储

·遵循CAP,强调可用性和扩展性

·适用于数据密集型场景及大数据应用领域

分布式数据库相较集中式数据库在可用性方面具有天然优势,而集中式数据库又主要应用于行业核心交易场景,因此,既能突破传统集群技术瓶颈又保留强一致性等优势是集中式数据库需要重点关注的能力。

GBase 8s的数据复制技术GBase 8s Replication(GR)恰好为这一问题的解决提供了助力。

数据复制就是在一个或多个地点产生数据的多份拷贝,实现数据共享目的。

GBase 8s Replication(GR)是基于日志的异步工具,用于在GBase 8s数据库服务器之间复制数据。源服务器上的GR通过读取逻辑日志,存储事务并将每个事务作为复制数据可靠传输至目标服务器。

GR 复制数据分为三个阶段:数据捕获、数据传输和应用复制的数据。

1. 客户端应用程序在定义了复制的数据库中执行事务。

2. 该事务被写入逻辑日志。

3. 日志捕捉组件读取逻辑日志并将逻辑记录传递到分组组件。

4. 分组组件计算需要复制的逻辑日志,并将它们分组到描述原始事务的操作的消息中。

5. 分组组件将消息添加到发送队列。在特定情况下,发送队列将消息临时储存到磁盘上。

6. 发送队列通过 GR 网络将复制消息传输到目标服务器。

7. 复制消息被添加到目标服务器的接收队列中。

8. 数据同步组件将该事务应用到目标数据库。如果有必要的话,数据同步组件还会执行冲突解决。

9. 在确认队列中放置一条表示消息已成功应用的消息。

10. 将确认消息发送回到源服务器。

数据复制技术的优势

多写多读落地案例

山西省某运营商智能网

该项目于2017年上线,采用GBase 8s 复制集群技术,用于山西省某运营商的IVPN业务, 4节点GR集群。

客户价值

1. 实现了数据的实时复制

2. SQL平均时间小于5ms,远低于传统数据库的响应时间

3. 4个节点可以实现负载均衡,多节点写入多节点查询的功能

北京某商超集团

该项目于2017年上线,用于该商超集团的公司业务管理和门店结算业务。2018年上线了68节点的GR复制集群,用户门店和总部的数据进行实时交换和同步。

客户价值

1. GR复制的节点多达68个

2. 网络带宽2Mb/s,集群同步对带宽的要求不高

3. 门店和总部的数据库均是可写可读,并进行数据的实时同步

4. 如果网络异常,在网络故障恢复之后,积压的数据会自动同步到对端;

5. 如果主机或数据库异常,故障处理完毕之后,对端的数据也会自动的完成同步

某变电站监控系统

业务系统为变电站的监控系统,设备长期处于偏远地区,服务器的工作环境较差,维护人员的IT技能相对薄弱。用户希望数据库具备优秀的自维护能力。

客户价值

  1. 故障期间业务系统切换可以在1秒之内完成
  2. 故障恢复之后数据库中的数据可以自动追平,无需人工干预
  3. 数据库长期处于自动恢复的状态,不需要专职的DBA,客户只需要维护数据库服务器即可

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

真实logging的构建

import logging import os.path import timeimport colorlog from logging.handlers import RotatingFileHandlerdefault_formats {# 终端输出格式color_format: %(log_color)s%(asctime)s-%(name)s-%(filename)s-[line:%(lineno)d]-%(levelname)s-[log-messge]: %(message)s,…

【Hydro】半图解法调洪演算步骤,附Python代码

说明 半图解法计算步骤如下: (1)根据水位~库容关系、水位~泄流关系以及计算时段等绘制辅助曲线; (2)确定起调水位 Z 1 Z_1 Z1​及相应的 q 1 q_1 q1​、 V 1 V_1 V1​计算各时段平均入库流量 Q p Q_p Qp​; (3)在水位坐标轴上确定…

使OpenGauss支持Python3存储过程

目录 一、概述 二、编译opengauss支持Python3存储过程 三、还有问题 一、概述 OpenGauss是可以支持以Python2、3编写存储过程的,但是这个功能默认不开启,想要这个功能要自己编译源码,目前这部分源码感觉不够成熟,还有一些问题&…

Linux必会100个命令(六十)curl

在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是综合传输工具。 curl选项比较多,使用man curl或者curl -h获取帮助信息。 -a/--append …

ClickHouse学习笔记(五):ClickHouse 副本与分片

文章目录 1、概述2、数据副本2.1、副本的特点2.2、副本的定义形式 3、ReplicatedMergeTree 原理解析3.1、数据结构3.1.1 ZooKeeper 内的节点结构3.1.2 Entry 日志对象的数据结构 3.2、副本协同的核心流程3.2.1、INSERT 的核心执行流程3.2.2、MERGE 的核心执行流程3.2.3、MUTATI…

【LeetCode股票买卖系列:714. 买卖股票的最佳时机含手续费 | 暴力递归=>记忆化搜索=>动态规划】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

【Vue 基础】尚品汇项目-07-动态展示三级联动数据

由于TypeNav是全局组件,因此将“src/pages/Home”中的“TypeNav”文件夹移动到“src/components”文件夹中 在main.js中修改TypeNav的路径 删除测试请求部分代码 当组件挂载完毕,可以向服务器发请求,然后获取数据,显示数据了。在“…

maven从入门到精通 第二章 Maven中运行Java与Web项目

这里写自定义目录标题 一 maven中运行Java项目1.新建项目2. 运行项目2.1查看当前目录2.2 编译项目2.3测试当前项目2.4 生成jar包2.5 迁移数据位置 二 MAVEN中执行Web项目1.配置项目1.1 配置 web.html1.2 配置index.jsp1.3 注册servlet1.4 直接编译运行,发现配置失败…

机器人工程学习和研究的结构性失衡

结论:无解,谁是那屈指可数的幸运者/(ㄒoㄒ)/~~ 供给:培养的机器人工程专业人才 需求:市场企业主体招聘的相关人才 不匹配,错配,导致供给无效。 机器人工程学习和研究的结构性失衡可能是由多种原因导致的…

Java学习-MySQL-备份

Java学习-MySQL-备份 为什么要备份: 1.保证重要的数据不丢失 2.数据转移 MySQL数据库备份的方式: 1.直接拷贝物理文件 2.在Sqlyog 这种可视化工具中导出 3.使用命令行导出,mysqldump,命令行使用 Sqlyog导出表 1.右键表 → 备…

智慧畜牧三维可视化,图扑数字孪生赋能现代农业

前言 "畜牧业是我国重要的农业产业之一,对于国民经济的发展和人民群众的生活具有重要的意义。智慧畜牧作为现代畜牧业的发展方向之一,将信息技术和现代管理相结合,提高养殖效率和品质,为行业的可持续发展注入新的动力。智慧…

PySpark基础入门(5):Spark 内核调度

目录 Spark 内核调度 DAG 内存迭代计算 Spark并行度 Spark任务调度流程 Spark 内核调度 Spark任务调度:如何组织任务去处理RDD中每个分区的数据,根据RDD的依赖关系构建DAG,基于DAG划分Stage,将每个Stage中的任务发到指定节…

盘点那些免费开源、无比精致的图标库,无论是设计还是开发,都很好用

之前分享过很多好看精致的图标库,这对日常设计和开发工作,都很方便,欢迎大家尝试。 css.gg 详细介绍:https://www.thosefree.com/css-gg 一套漂亮的纯 CSS 实现的免费开源图标库,700多个时尚漂亮的 css 图标库&…

本地开发项目删除原有git信息,上传到自己的git仓库

1. 删除原有git信息 进入到项目的目录,右键,选择 git Bash Here 输入 rm -rf .git 查看当前的远程信息:git remote -v 如果有远程信息 使用 git remote rm origin 删除 2.添加自己的远程信息 使用 git remote add origin https://xxxx.git…

分布式事务 --- Seata事务模式、高可用

一、事务模式 1.1、XA模式 XA 规范 是 X/Open 组织定义的分布式事务处理(DTP,Distributed Transaction Processing)标准,XA 规范 描述了全局的TM与局部的RM之间的接口,几乎所有主流的数据库都对 XA 规范 提供了支持。…

三种常用的以太网端口链路类型:Access、Hybrid和Trunk

以太网是计算机网络中最常用的协议之一,它允许计算机在同一局域网上通信。在以太网中,交换机(Switch)是一个重要的组件,它们有许多不同的端口,用于连接不同的设备。为了管理和维护这些端口,有三…

Java 数组在内存中的结构是怎样的?数组访问、遍历、复制、扩容、缩容如何编写代码?

Java是一门面向对象的编程语言,数组是其中的重要数据结构之一。在Java中,数组是一种固定长度、有序的数据结构,可以存储一组相同数据类型的元素。在本文中,我们将详细介绍Java数组在内存中的结构。 Java数组的定义 在Java中&…

美国访问学者博士后签证过期后应如何更新?

“美国访问学者类J签证过期后应如何更新?”有读者希望知识人网分享相关经验。今天我们来简单介绍下美国签证免面谈代传递服务,以及其申请条件和相关流程,希望能对大家有所帮助。 首先我们需要明确两个概念: DS2019表的有效期&…

第一章(四):Django框架的模板(DTL):变量、标签、模板过滤器、模板继承、配置模板文件(staticfiles)

系列文章目录 备注:这里是Django系列文章的所有文章的目录 第一章(一) : Django框架如何创建项目、创建应用、创建templates;如何启动django项目; 第一章(二):Django框架的模式、路由、视图; 第一章(三):D…

copilot平替tabnine解析

1.copilot 借着最近chatgpt大火的东风,copilot又重新火了一把。 什么是copilot?直接上wiki百科上的解释 GitHub Copilot是GitHub和OpenAI合作开发的一个人工智能工具,用户在使用Visual Studio Code、Microsoft Visual Studio、Vim、Cursor或…