YahooオークションMySQL冗長化技術

こんなんなってるらしいです。

http://techblog.yahoo.co.jp/cat207/db/mysql_failover/

heartbeat + drbdは組んでみたことあるんですが、みんながここにたどりつくのはMySQL用のオープンソースのバランサ(レプリケータ)にめぼしいものがないせいだと思うんですよね。一方でpostgresqlならpgpoolがあるのでこの辺はpostgresqlの方が魅力的かなと思います。

pgpool(http://www2b.biglobe.ne.jp/~caco/pgpool/)

pgpoolも使ってみたことがありますがpgpool-2だと背後に3台以上置く事も可能ですし、INSERT文をいっぱい垂れ流してみたりしたこともありますが、ご機嫌に動いてくれてたので中々良いものだと思います。

一方、Yahooはバランサに独自のものを使ってるみたいですね。仮想のDNSとかこの前のエントリ(http://d.hatena.ne.jp/clmind/20090320/1237560404)で触れた話に近い話がでてます。また、更新用のDBが止まった時に参照用のDBを止めるためにnagiosを使っているみたいですね。ここは参照用DB側にmon(http://mon.wiki.kernel.org/index.php/Main_Page)を仕込む方がスマートなんじゃないかなと思いましたが、OSがLinuxかどうかもわからないし、なんらかの理由があるのかもしれません。

と色々言いましたが、この記事に注目したのは今後この様な更新用と参照用のDBを分けた構成が増えてくるだろうと個人的に考えてるからです。
それはなぜか? 理由はこれ

特徴を見ていただければわかると思いますがSSD書き込みに弱く読み出しに強いという特性を持ってます。更にSSDも大分価格が下がってきてそろそろ割にあいそうなものが出てきつつあります。

なので

  • 更新用DB -> HDD
  • 参照用DB -> SSD

という構成がそろそろ出てくるなと。まあそのうちSSDオンリーになる可能性も高いとは思いますが、まず試してみるなら参照系で更新の少ないとこでしょうねー。そういった意味ではそもそもDBサーバよりは他のとこに先に使われる可能性の方が高いとは思いますが。

ということで、俺のInspiron mini 9 マダァ(・∀・ )っ/凵⌒☆チンチン SSD乗ってるから早く触ってみたいけどまだ届きません。もう3週間たったぞ...。