【DB吐槽大会】第57期 - PG multi-master 支持不友好

简介: 大家好,这里是DB吐槽大会,第57期 - PG multi-master 支持不友好

背景


1、产品的问题点

  • PG multi-master 支持不友好

2、问题点背后涉及的技术原理

  • PG 支持逻辑复制, 内置了pub、sub订阅功能, 但是针对同一个表只能单向复制, 无法实现双向复制(会有无限循环的问题)
  • 无法很好的解决数据冲突问题, 例如:
  • 更新操作, 在更新数据同步到目标节点之前, 目标节点对同一条记录也执行了更新操作, 这个问题会导致数据不一致.

3、这个问题将影响哪些行业以及业务场景

  • multi-master 被应用于什么业务场景?
  • 高可用场景, 多写可以满足无缝切换、升级需求.
  • 全球化、或者单元化部署的业务, 在多个IDC的应用可以就近访问本地数据库, 多个IDC的数据库通过星型复制实现统一整体.

4、会导致什么问题?

  • 无法支持多实例多写, 所有写操作需要发往中心数据库, 可能产生较高的响应延迟.

5、业务上应该如何避免这个坑

  • 可以业务自己开发同步工具, 通过增加事务标记来标示从wal中解析出来逻辑记录的初始节点. 避免无限循环的问题.
  • 使用一些复制工具来实现multi-master

6、业务上避免这个坑牺牲了什么, 会引入什么新的问题

  • 增加了复杂度
  • 工具本身的可靠性无法保障
  • 数据复制冲突没有很好的解决方案
  • 全局序列没有很好的解决方案

7、数据库未来产品迭代如何修复这个坑

  • 希望内核层支持完备的multi-master解决方案



相关文章
|
关系型数据库 分布式数据库 PolarDB
PolarDB 开源基础教程系列 7.2 应用实践之 跨境电商场景
本文介绍了如何在跨境电商场景中快速判断商标或品牌侵权,避免因侵权带来的法律纠纷。通过创建品牌表并使用PostgreSQL的pg_trgm插件和GIN索引,实现了高性能的字符串相似匹配功能。与传统方法相比,PolarDB|PostgreSQL的方法不仅提升了上万倍的查询速度,还解决了传统方法难以处理的相似问题检索。具体实现步骤包括创建品牌表、插入随机品牌名、配置pg_trgm插件及索引,并设置相似度阈值进行高效查询。此外,文章还探讨了字符串相似度计算的原理及应用场景,提供了进一步优化和扩展的方向。
385 11
|
存储 算法
Leetcode第三题(无重复字符的最长子串)
这篇文章介绍了解决LeetCode第三题“无重复字符的最长子串”的算法,使用滑动窗口技术来找出给定字符串中最长的不含重复字符的子串,并提供了详细的代码实现和解释。
709 0
Leetcode第三题(无重复字符的最长子串)
|
关系型数据库 分布式数据库 PolarDB
PolarDB开源数据库进阶课1 搭建共享存储集群
在笔记本上构建PolarDB RAC环境,本文介绍了一种适用于Windows、macOS和Linux的方法:通过将宿主机上的文件模拟为块设备,并在多个Docker容器中使用loop设备共享该文件。此方法解决了macOS不支持直接挂载块设备的问题。
473 2
|
机器学习/深度学习 存储 人工智能
【AI 初识】人工智能中使用了哪些不同的搜索算法?
【5月更文挑战第2天】【AI 初识】人工智能中使用了哪些不同的搜索算法?
|
关系型数据库 Docker Python
什么是Docker Volume?
摘要:Docker Volume,通常翻译为数据卷,用于保存持久化数据。当我们将数据库例如MySQL运行在Docker容器中时,一般将数据通过Docker Volume保存在主机上,这样即使删除MySQL容器,数据依然保存在主机上,有效保证了数据的安全性。
4736 1
|
前端开发
[C++11]std::promise介绍及使用
[C++11]std::promise介绍及使用
560 0
|
SQL 关系型数据库 数据库
postgresql数据库|数据库实操----表复制详解
postgresql数据库|数据库实操----表复制详解
518 0
|
机器学习/深度学习 人工智能 算法
强化学习基础篇[2]:SARSA、Q-learning算法简介、应用举例、优缺点分析
强化学习基础篇[2]:SARSA、Q-learning算法简介、应用举例、优缺点分析
强化学习基础篇[2]:SARSA、Q-learning算法简介、应用举例、优缺点分析
|
存储 传感器 监控
【DB吐槽大会】第1期——PG MVCC
大家好,这是DB吐槽大会,第1期 - PG MVCC
12527 0