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ステータス確認クエリがあふれて接続数オーバーになる
というように、使ってみるのはちょっと早かったと思うのが正直な感想、今後に期待