MySQL Proxyがおもしろそう


http://forge.mysql.com/wiki/MySQL_Proxy


ほー・・・なかなかおもしろそう。

mod_proxy_balancer and mod_rewrite for MySQLみたいなかんじかなぁ。
といっても、tritonn みたいに MySQL に組み込むんじゃなくって、別プロダクトのサーバ。

  • load balancing
  • fail over

あたりが mod_proxy_balancer っぽくて

  • Query interception
  • Query rewriting
  • Injecting queries

あたりが mod_rewrite っぽい。


mod_rewrite みたいに挙動を選ぶ(PとかRとかPTとか)んじゃなくて、コアの挙動はなくて、全部 RewriteMap prg:/path/to/script みたいなイメージっぽい。

「--proxy-lua-script=/path/to/hogehoge」でLuaで書かれたコードが実行されると。


サンプルをちょっとみてみたけど、http://forge.mysql.com/snippets/view.php?id=76 みたいなかんじでおもしろそう。

例えばログ系のテーブルで、INSERTはマスタの年月つきのテーブルにアクセスさせて、SELECTはSLAVEのMERGEテーブルにアクセスさせたりとか、WHERE句をみてサーバ振り分けるマネージャみたいにしたりとかおもしろいのかも(できるのかわからないけど)。


あとは、MySQL Proxy 自体がスケールするようになってるとすばらしいなぁ。
これを2台並べて前にLVSとかで作ったL4ロードバランサ置くとか本末転倒だし(それならLVS+keepalivedでいいわけで)、この辺は今後に期待。



気が向いたらXenの上のテストサーバにでもいれてみるかも。

で、今のところソースも小さいので、暇があったらみてみるかも。