MySQL Casual Talks 7 「N:1 レプリケーション ~進捗どうですか?~」

25
N:1 レプリケーション ~進捗どうですか?~ 2014/12/12 MySQL Casual Talks vol.7 do_aki

Transcript of MySQL Casual Talks 7 「N:1 レプリケーション ~進捗どうですか?~」

Page 1: MySQL Casual Talks 7 「N:1 レプリケーション ~進捗どうですか?~」

N:1 レプリケーション

~進捗どうですか?~

2014/12/12 MySQL Casual Talks vol.7

do_aki

Page 2: MySQL Casual Talks 7 「N:1 レプリケーション ~進捗どうですか?~」

@do_aki

@do_aki

http://do-aki.net/

Page 3: MySQL Casual Talks 7 「N:1 レプリケーション ~進捗どうですか?~」

IPHP

Page 4: MySQL Casual Talks 7 「N:1 レプリケーション ~進捗どうですか?~」

これまでのあらすじ

Page 5: MySQL Casual Talks 7 「N:1 レプリケーション ~進捗どうですか?~」

Master A

table hogetable fuga

SlaveA1

SlaveA2

SlaveB1

Master B

table piyotable hage

SlaveB2

Page 6: MySQL Casual Talks 7 「N:1 レプリケーション ~進捗どうですか?~」

MasterA

SlaveA1

SlaveA2

SlaveB1

MasterB

SlaveB2

Application

JOIN できない!

Page 7: MySQL Casual Talks 7 「N:1 レプリケーション ~進捗どうですか?~」

MasterA

SlaveA1

SlaveA2

SlaveB1

MasterB

SlaveB2

SlaveA+B

N:1 レプリケーション

Page 8: MySQL Casual Talks 7 「N:1 レプリケーション ~進捗どうですか?~」

N:1 レプリケーション (1)

• 複数台のマスタにあるテーブルを一つのスレーブに集約する仕組み

• https://github.com/do-aki/N1Repl

• 詳しくは過去のスライドを– http://www.slideshare.net/do_aki/20110809-my-sql-casual-

talks-vol2

– http://www.slideshare.net/do_aki/n1-replication-meets-mha

Page 9: MySQL Casual Talks 7 「N:1 レプリケーション ~進捗どうですか?~」

N:1 レプリケーション (2)

• 結構昔から挑んでいる人はちらほら

• MariaDB では マルチソースレプリケーションという名前で実装された

• MySQL labs にもあった (今もある?)

– MySQL Optimizer/InnoDB/Replication ?

Page 10: MySQL Casual Talks 7 「N:1 レプリケーション ~進捗どうですか?~」

前回

• N:1 レプリケーションのプログラム刷新したよ-

• テスト書いたよー

• レプリケーション対象のマスタを動的に入れ替えることが出来るようにしたよ-

Page 11: MySQL Casual Talks 7 「N:1 レプリケーション ~進捗どうですか?~」

MHA 対応?

レプリケーション対象のマスタが切り替わったら自動で追随とか

できたら幸せダヨネー

Page 12: MySQL Casual Talks 7 「N:1 レプリケーション ~進捗どうですか?~」

進捗ダメです

Page 13: MySQL Casual Talks 7 「N:1 レプリケーション ~進捗どうですか?~」

以上

Page 14: MySQL Casual Talks 7 「N:1 レプリケーション ~進捗どうですか?~」
Page 15: MySQL Casual Talks 7 「N:1 レプリケーション ~進捗どうですか?~」

Raspberry Piと

MySQL2014/12/12

MySQL Casual Talks vol.7

do_aki

Page 16: MySQL Casual Talks 7 「N:1 レプリケーション ~進捗どうですか?~」

Raspberry Pi Model B+

RELEASE: 2014/06

CPU: ARM11(v6) / 700 MHz

MEMORY: 512MB

NETWORK: 10/100 Mbps Ethernet

USB: 2.0 * 4

POWER ratings: 600 mA (3.0 W)

Page 17: MySQL Casual Talks 7 「N:1 レプリケーション ~進捗どうですか?~」
Page 18: MySQL Casual Talks 7 「N:1 レプリケーション ~進捗どうですか?~」
Page 19: MySQL Casual Talks 7 「N:1 レプリケーション ~進捗どうですか?~」
Page 20: MySQL Casual Talks 7 「N:1 レプリケーション ~進捗どうですか?~」
Page 21: MySQL Casual Talks 7 「N:1 レプリケーション ~進捗どうですか?~」

MySQL 動く!

• apt-get install mysql-server

• Respbian は Debian ベースだし

Page 22: MySQL Casual Talks 7 「N:1 レプリケーション ~進捗どうですか?~」

N:1 レプリケーションとか

• 当然動く

$ sudo apt-get install \

git libdbd-mysql-perl libyaml-tiny-perl

$ git clone \

https://github.com/do-aki/N1Repl.git n1repl

$ cd n1repl

$ perl n1repl_manager.pl \

--conf=data/config.yaml

Page 23: MySQL Casual Talks 7 「N:1 レプリケーション ~進捗どうですか?~」

そうだ、コンパイルしてみよう

$ apt-get install cmake libncurses5-dev

$ time mysql-build -v 5.6.22 ~/opt/mysql/5.6.22

(出力略)

real 509m36.082s

user 483m31.200s

sys 14m38.120s

Page 24: MySQL Casual Talks 7 「N:1 レプリケーション ~進捗どうですか?~」

Raspberry Pi で何が出来るか

• Cluster とかもうやってるひとが居る

• なんかアイディアあれば

Page 25: MySQL Casual Talks 7 「N:1 レプリケーション ~進捗どうですか?~」

まとめ

• N:1 レプリケーション進捗ない

• Raspberry Pi 面白いYo

• Raspberry Pi x MySQL で面白いことできないかなー?