mysql spiderを実務で使ってみた

とあるプロジェクトで2カ月半程度使ってみた感想


最新版で改善されている問題や、環境依存の問題もあると思うので
参考程度の情報と思ってください。


構成は、IDCFのNOAHセルフタイプのS2(1CPU、メモリ2G)を10台
Webサーバ4台(spiderノード)
DBサーバが6台(データノードが3パーティションのそれぞれ中身2台ずつの6台)


■色々困った問題点


・spiderノードのmysqlが異常終了


spiderノードメモリ使用率が増えていって、100%近くになるとspiderが落ちる
メモリが2Gと少ない影響も考えられますが、my.cnfでかなり余裕のある設定にしても回避できなかった。
それ以外にも、mysqld stopで正常に終了しない、毎回tc.logが出来て
消さないと起動できない等色々


・複数spiderノードから更新を行うとauto_incrementがかぶる

0:通常モード。(リモートサーバにロック付き問い合わせで取得した最新付番を利用して、付番を行う。) 遅い。テーブルパーティショニングを利用しており、auto incrementカラムが indexの第一カラムである場合は、簡易モードで動作する。

必ずデータノードに問い合わせてくれればいいけど、簡易モードで動作する条件が正確に理解できず。。。
結局は、auto_increment_incrementとauto_increment_offsetを調整して
サーバ毎にかぶらないように対応
spiderノード再起動した再度auto_incrementを振り直す必要があった
更新を1ノードにすれば問題はないんだけど、そのサーバが落ちることを考えると。。。


・index mergeが使われるSQL文で結果が引けない


optimizer_switchでOFFにした


・alter文が異常に遅い


データ数が数百件でも、1クエリに付き10〜20秒程度かかっていた、複数連続で流すとHAステータス確認クエリがあふれて接続数オーバーになる


というように、使ってみるのはちょっと早かったと思うのが正直な感想、今後に期待