背景
1、産品的問題點
- PG multi-master 支援不友好
2、問題點背後涉及的技術原理
- PG 支援邏輯複制, 内置了pub、sub訂閱功能, 但是針對同一個表隻能單向複制, 無法實作雙向複制(會有無限循環的問題)
- 無法很好的解決資料沖突問題, 例如:
-
- 更新操作, 在更新資料同步到目标節點之前, 目标節點對同一條記錄也執行了更新操作, 這個問題會導緻資料不一緻.
3、這個問題将影響哪些行業以及業務場景
- multi-master 被應用于什麼業務場景?
-
- 高可用場景, 多寫可以滿足無縫切換、更新需求.
- 全球化、或者單元化部署的業務, 在多個IDC的應用可以就近通路本地資料庫, 多個IDC的資料庫通過星型複制實作統一整體.
4、會導緻什麼問題?
- 無法支援多執行個體多寫, 所有寫操作需要發往中心資料庫, 可能産生較高的響應延遲.
5、業務上應該如何避免這個坑
- 可以業務自己開發同步工具, 通過增加事務标記來标示從wal中解析出來邏輯記錄的初始節點. 避免無限循環的問題.
- 使用一些複制工具來實作multi-master
6、業務上避免這個坑犧牲了什麼, 會引入什麼新的問題
- 增加了複雜度
- 工具本身的可靠性無法保障
- 資料複制沖突沒有很好的解決方案
- 全局序列沒有很好的解決方案
7、資料庫未來産品疊代如何修複這個坑
- 希望核心層支援完備的multi-master解決方案