Mysql

高延遲的mysql master master

  • February 24, 2015

我們有一個單一的主設置,在德國有許多奴隸,在澳大利亞有一些奴隸。

為了在澳大利亞有更快的寫入速度,我們希望在德國和澳大利亞之間建立一個 master-master 設置。讀取從屬將保留在兩個區域的本地主控之下。

我們測試了 Percona XtraDB Cluster,但是送出是同步的,而且寫入太慢了。

XtraDB 中是否有加快速度的選項?也許在兩個主人之間在一個區塊中轉移多個交易?或者允許在第二個節點應用之前接受送出?

在給定的約 300 毫秒的高延遲下,是否有另一種主主解決方案可以更好地(可能是非同步地)工作?

PXC(和其他 Galera 解決方案)在 COMMIT 時需要一個網路躍點。如果您的應用程序可以將寫入合併到單個事務中,那將在某種程度上有所幫助。但是,每個 COMMIT 仍然需要 300 毫秒(或其他任何時間)。

正常 MySQL 可以做到 Master-Master 並且兩者都可寫。該複製是非同步的。但是,有一些警告。Auto_increments 應使用 auto_increment_offset 和 _increment 進行配置。UNIQUE 索引是有問題的;該應用程序必須弄清楚如何避免在兩個大陸上“同時”插入相同的 UNIQUE 值。請注意,複製只會停止,直到您手動執行某些操作。

另一種可能性是 NDB Cluster。但是,這在語法和功能上有很多差異。優點是“最終一致”。您設置了有關在插入重複鍵時該怎麼做的規則。

有句老話:你可以有 X 或 Y 或 Z 中的任何一個;選擇2。所以,我問,你想要多法師的兩個原因是什麼?你願意犧牲第三項。(聽起來延遲不是#3。)

引用自:https://dba.stackexchange.com/questions/93609