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の上のテストサーバにでもいれてみるかも。
で、今のところソースも小さいので、暇があったらみてみるかも。