星期三, 9月 09, 2015

MySQL Galera Cluster vs Percona XtraDB Cluster vs Mariadb Galera Cluster之比較

各種高可用方案比較(MySQL Galera Cluster vs Percona XtraDB Cluster vs Mariadb Galera Cluster之比較)

ü   MySQL NDB Cluster + MySQL Fabirc
--需要較多的節點 : SQL node/ Data node/ Management node
--需要較多的記憶體來支撐, 例如資料量有100GB , 由於replica 兩份, 保守在x 1.25 , 故總計會需要250GB的總記憶體空間
--table block replication 是自動的, 需指定複製份數
--使用NDB engine, 對於記憶體的要求較高
--MySQL cluster支持線上添加data node,但修改記憶體參數設定後一定要先backup資料;然後重啟cluster(別忘了ndbd --initial),恢復資料;
--至於備份和恢復的方法,有很多種。
--首先是MySQL官方手冊裡面的方法ndb_restore
--第二種是使用mysqldump
--第三種是使用"select * into outfile '/backup/backupfile.txt' from database.table""load data infile '/backup/backupfile.txt' into database.table"這樣的SQL語法

Galera Cluster + HAProxy
ü   MySQL Galera Cluster : MySQL單機版安裝Galera wsrep的同步plugin    P.S. Galera wsrep簡寫為-Write Set REPlication
ü   Percona XtraDB Cluster : MariaDB單機版安裝Galera wsrep的同步plugin
ü   Mariadb Galera Cluster : Percona Server單機版資料庫安裝Galera wsrep的同步plugin
這三種擁有以下共同點
--同步複製
--在每個節點都可以讀取/ 寫入(資料的consistency)
--至少三個節點
--需要表格有primary key
--對於auto increments的欄位的寫入順序  : node1 - 1,4,7… ; node2 - 2,5,8.. ; node3 - 3,6,9..
--MySQL DB 單機版的table locking 會不可用(disabled for lock table/ unlock tables)
--不支援distributed transaction processing (XA Transaction)
--replication 的原理遵循以下兩個原則
1. transaction在所有節點上要不都commit,要不都rollback/abort
2. transaction在所有節點的執行順序一致

其他說明:
ü   Percona XtraDB Cluster的一個缺點是他們自己管理source code,不接受外部開發人員的貢獻(雖然也是開源),以這種方式確保他們對產品中所包含功能的版本控制。
ü   淘寶目前使用的是Percona 5.5.18,而Google\Wikipedia則站在了MariaDB這邊。
ü   MariaDB Galera Cluster預設storage engine 雖然已經換成XtraDB engine,  但名稱仍維持InnoDB
ü   Percona XtraDB Cluster使用改良過的Storage engine XtraDB
ü   有了Galera wsrep plugin的加持, Master DB掛掉, Slave DB也可以繼續接受服務(MySQL replication 半同步semi-sync需要等apply完所有relay log)。
ü   MySQL Galera Cluster or Percona XtraDB Cluster or Mariadb Galera Cluster 皆可以搭配HAProxy 達成服務高可用。

Benchmarking:
以下效能測試可以看到MySQL Galera Cluster vs PXC vs MariaDB Galera Cluster Benchmark :
大致上在確保資料commit的一致性, 需設定innodb_flush_log_at_trx_commit=1sync_binlog=1 的情況下,
MariaDB Galera Cluster的效能是最好的。
Ref link :



其他連結
http://www.sobstel.org/blog/mysql-like-databases-comparison/

沒有留言:

LinkWithin-相關文件

Related Posts Plugin for WordPress, Blogger...