Tag Archives: replication

MySQL 5.6 到 5.7 改變的預設值

Percona 整理了一份 MySQL 5.6 到 5.7 改變的預設值,對於評估與轉移的人都很有用:「MySQL Default Configuration Changes between 5.6 and 5.7」。 sync_binlog 居然從 0 改成 1 了,這對效能的影響應該不少。 performance_schema_* 有不少改成自動調整了,可以省下不少功夫。 innodb_buffer_pool_dump_at_shutdown 與 innodb_buffer_pool_load_at_startup 都打開了,這避免了正常重啟時的 warm up 問題,不過在存在有效的手段可以手動 warm up 的時,應該還是會關掉吧。(參考 2013 的文章「熱 MySQL InnoDB 的方式...」) 另外介紹了 InnoDB 預設格式的改變,這點到是因為使用 … Continue reading

Posted in Computer, Database, Murmuring, MySQL, Software | Tagged , , , , , , , , , , , , , , , , | Leave a comment

Amazon Aurora 支援 Reader Endpoint

Amazon Aurora 支援 Reader Endpoint,讓讀的部份可以打散掉:「New Reader Endpoint for Amazon Aurora – Load Balancing & Higher Availability」。 讀的部份比較容易 scale (常見的方式是透過 replication 做到),而現在很多 database framework (包括各類的 ORM framework) 都支援讀寫分離,這個支援對於系統的 scale 來說幫忙頗大。 不過不知道會不會有 replication lag 的問題,我猜是會有...

Posted in AWS, Cloud, Computer, Database, Murmuring, MySQL, Network, Software | Tagged , , , , , , , , , , , , , , , , , | Leave a comment

Yelp 對 MySQL 更新的資料送到 Kafka 的作法

Apache Kafka 是個 pub-sub 系統: Apache Kafka is publish-subscribe messaging rethought as a distributed commit log. 而 Yelp 的人想要將 MySQL 的更新資訊送一份到 Kafka 就可以做很多應用。文章前面介紹了很多原理以及理論,像是講 MySQL 的 replication: 但讀這篇文章發現重點在於他介紹了 GitHub 上的「noplay/python-mysql-replication」這個專案: Our stream reader is an abstraction over the BinLogStreamReader from the … Continue reading

Posted in Computer, Database, Murmuring, MySQL, Programming, Software | Tagged , , , , , , | Leave a comment

GitHub 發展出來的 ALTER TABLE 方式

GitHub 解釋了他們在 MySQL 上 ALTER TABLE 的方式:「gh-ost: GitHub's online schema migration tool for MySQL」。 GitHub 的舊方式是使用 pt-online-schema-change,會遇到的問題有幾個,其中看起來只有 Non pausability 這個是真正的痛點: Non pausability: when load on the master turns high, you wish to throttle or suspend your pending migration. However a … Continue reading

Posted in Computer, Database, Murmuring, MySQL, Software | Tagged , , , , , , , | 2 Comments

最近討論 Uber 的 MySQL 換 PostgreSQL 後又換回 MySQL 的文章...

先把兩份連結丟出來,一份是 PyPgDay 2013 時由 Uber 的 Evan Klitzke 給的「Migrating Uber from MySQL to PostgreSQL」,原 PDF 連結已經失效 (看起來已經被刪除),但這個網路年代什麼都可以找到備份... 可以在「Migrating Uber from MySQL to PostgreSQL」取得,但這個網站怪怪的,我另外丟了一份到 Google Docs 上。 另外一份則是同一個人 Evan Klitzke 在 2016 年發表於公司的官方網站上:「Why Uber Engineering Switched from Postgres to MySQL」。 2013 … Continue reading

Posted in Computer, Database, Murmuring, MySQL, Network, Political, PostgreSQL, Software | Tagged , , , , , , , , , , | 3 Comments

DynamoDB Streams...

去年 (2014) 十一月時 AWS 推出了 DynamoDB Streams,像是 RDBMS 裡 trigger 的東西,不過當時還沒這麼方便,而且也是 preview 階段:「Sneak Preview – DynamoDB Streams」。 Once you enable it for a DynamoDB table, all changes (puts, updates, and deletes) made to the table are tracked on a rolling … Continue reading

Posted in AWS, Cloud, Computer, Database, Murmuring, Network, Software | Tagged , , , , , , , , , , , , , , , , , , , | Leave a comment

Amazon S3 的 Cross-Region Replication

AWS 宣佈的新功能,自動 replicate 到其他區域的 Amazon S3 上:「New – Cross-Region Replication for Amazon S3」。 需要打開 Versioning 的功能,然後就可以設定了: 新上傳的 object 才會被 replicate,原先的 object 是不會有改變的。

Posted in AWS, Cloud, Computer, Murmuring, Network | Tagged , , , , , | Leave a comment

Percona XtraDB Cluster 5.6 與 GTIDs 的結合

Percona 的 Fernando Laudares 在「How to setup a PXC cluster with GTIDs (and have async slaves replicating from it!)」這篇裡提到了 Percona XtraDB Cluster 5.6 與 GTIDs 的配合方式。 傳統的 replication 的 binlog 的表示方式是 filename + position,這個是大家已經很熟悉的方式。 digraph { M1 [label="Master 1"]; M2 … Continue reading

Posted in Computer, Database, Murmuring, MySQL, Network, Software | Tagged , , , , , , , , , , , | Leave a comment

MySQL 的 Parallel Replication

「Multithreaded Replication to the Rescue」這篇提到了 Replication 的 Parallel Worker 機制。 作者給了平行的數量對 replication lag 的影響: 可以看得出來 Parallel Worker 機制對 Replication Lag 改善頗大,不過作者在 comment 提到中雷了:「MTS breaks in after restart」。 對於還在使用 traditional master-slave 架構的人可以參考看看。

Posted in Computer, Database, Murmuring, MySQL, Software | Tagged , , , , , | Leave a comment

利用 pt-online-schema-change 同步 master 與 slave 的資料

在「Syncing MySQL slave table with pt-online-schema-change」這篇看到 master 與 slave 的資料不同步時,強制性同步的方法: pt-online-schema-change --alter 'ENGINE=INNODB' D=dbname,t=tblname 由於 pt-online-schema-change 的作法是建一個新的表格,然後把舊表格的資料寫過去,而這些行為會被 replicate 到新機器上,於是就同步了... 這招有趣 XDDD

Posted in Computer, Database, Murmuring, MySQL, Software | Tagged , , , , , , , , , , , | Leave a comment