N:1 レプリケーション
~進捗どうですか?~
2014/12/12
MySQL Casual Talks vol.7
do_aki
@do_aki
@do_aki
http://do-aki.net/
I
PHP
これまでの
あらすじ
Master A
table hoge
table fuga
Slave
A1
Slave
A2
Slave
B1
Master B
table piyo
table hage
Slave
B2
Master
A
Slave
A1
Slave
A2
Slave
B1
Master
B
Slave
B2
Application
JOIN
できない!
Master
A
Slave
A1
Slave
A2
Slave
B1
Master
B
Slave
B2
Slave
A+B
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
N:1 レプリケーション (2)
• 結構昔から挑んでいる人はちらほら
• MariaDB では マルチソースレプリケー
ションという名前で実装された
• MySQL labs にもあった (今もある?)
– MySQL Optimizer/InnoDB/Replication ?
前回
• N:1 レプリケーションのプログラム刷新
したよ-
• テスト書いたよー
• レプリケーション対象のマスタを動的に
入れ替えることが出来るようにしたよ-
MHA 対応?
レプリケーション対象のマスタが
切り替わったら自動で追随とか
できたら幸せダヨネー
進捗ダメです
以上
Raspberry Pi
と
MySQL
2014/12/12
MySQL Casual Talks vol.7
do_aki
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)
MySQL 動く!
• apt-get install mysql-server
• Respbian は Debian ベースだし
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
そうだ、コンパイルしてみよう
$ 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
Raspberry Pi で何が出来るか
• Cluster とかもうやってるひとが居る
• なんかアイディアあれば
まとめ
• N:1 レプリケーション進捗ない
• Raspberry Pi 面白いYo
• Raspberry Pi x MySQL で面白いことで
きないかなー?

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

Editor's Notes

  • #4 PHP を愛するしがないぺちぱー
  • #6 むかしむかしあるところにカジュアルに垂直分割してしまった2台のマスタがいました
  • #7 この2台のマスタは、アプリケーションからは論理的に結合できるのですが、 JOIN 句を利用した SQL を発行できないという欠点がありました
  • #8 JOIN ができないなら、スレーブに集約すればいいじゃない という
  • #13 オフィス移転とか、サーバ移設とか、 PHP 5.2 -> 5.5
  • #24 8時間以上!