Skip to content

Latest commit

 

History

History
75 lines (45 loc) · 3.9 KB

20210929_01.md

File metadata and controls

75 lines (45 loc) · 3.9 KB

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

作者

digoal

日期

2021-09-29

标签

PostgreSQL , multi-master , 逻辑复制 , 单元化 , 多主


背景

视频回放

1、产品的问题点

  • PG multi-master 支持不友好

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

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

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

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

4、会导致什么问题?

  • 无法支持多实例多写, 也就意味着只能一写多读, 或者“假多写“, 针对同一条数据只能有1个写入点(例如按字段hash), 所有写操作需要发往中心数据库, 可能产生较高的响应延迟. 而且需要有中间件来支持sql的正确路由操作, 使得业务和数据库耦合度更佳高, 复杂度更高.

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

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

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

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

  • 希望内核层支持完备的multi-master解决方案(解决以上几个核心问题)

您的愿望将传达给PG kernel hacker、数据库厂商等, 帮助提高数据库产品质量和功能, 说不定下一个PG版本就有您提出的功能点. 针对非常好的提议,奖励限量版PG文化衫、纪念品、贴纸、PG热门书籍等,奖品丰富,快来许愿。开不开森.

digoal's wechat