MySQL Casual Talks Vol.2に行って来た

http://partake.in/events/83788d9d-5e2a-4464-8638-5b899d1a2737
前回に引き続き今回も参加。やはりCasualっぽい内容ではないかんじで懇親会も濃い人たちが集まっていて楽しくてすごい会でした。
懇親会では@kamipoさんと@matsunobuさんの会話をひたすら聴いてました。
@さん、日本オラクル様、ありがとうございました。
以下は自分用メモ。

@oinumeさん
MySQLでNoSQL アメーバピグでの例
Fusion-IOの話はしません Javaの話
RDBMSとしては使っていない
独自KVSが安定しない -> MySQLに一本化
IndexPersister アノテーションでJava classとMySQL tableをマッピング
client側でもslow queryを出力
app stack traceも出す
MySQLサーバのcontext switchが激しい
- 誰得なの?
 KVSとして使うことで Indexのないクエリは投げなくなる
 スキーマ変更のためにサービス停止しない
 他のKVSへ以降しやすい
 デメリット: キー以外のcolumnでの絞り込みができない など


グニャラくん @tasukuchanさん
Senna, groonga作ってた
もっとカジュアルに
MongoDBの例 お疲れさまでした。。。
運用ノウハウ少ないものは大変
こんなカジュアル
 カジュアルスキーマ
  natural_key, created, updated
  スキーマ不定のデータをRDBに永続化する方法の比較
  http://dev.ariel-networks.com/Members/inoue/schemaless/
  動的カラム追加は遅いので困る
   -> (1) openarkkit: 
    ork-online-alter-table 別の一時テーブル作成、コピー、差分補正、リネーム
   -> (2) OnlineSchemaChange.php by Facebook:
    http://www.facebook.com/notes/mysql-at-facebook/online-schema-change-for-mysql/430801045932
  MessagePack+Snappyでデータ圧縮
 こんなかんじでなんとかなるよ
 運用担当者を大事に


@nippondanjiさん
Performance Schema活用法
5.5から搭載 状況を知りたい!というときに
人体に例える 非破壊検査は難しい
- プロセス監視 動いてるかどうか、だけ
- STATUSコマンド 基本的な統計情報
- SHOWコマンド 各種情報
- INFORMATION_SCHEMA SELECTで情報にアクセス可
- SHOW PROFILE 5.1から
- log, GDBなど
- Dtrace/SystemTap
- DBUGトレース デバッグ版で利用できるトレース機能
まだ足りない、、ということで
PERFORMANCE_SCHEMA!
- DTraceのSDTに似ている
- ストレージエンジンとして実装、プラットフォームフリー
- オーバーヘッド CPU: 若干あり、 メモリ: 数百MB~
- スレーブのうち一台に使う、などもアリ?
I_S v.s. P_S について
5.5以上で、mysql_install_db, 設定書く。起動中には変更不可
カジュアルに使うには? -> そんな方法はない!
- 各種テーブル
- 数値を見るポイント ピコ秒単位 Viewを作っておくと便利かも


LT

Event Scheduler機能 @myfinderさん
中の人「使ってる人いたんだ…」
cronのようなもの 5.1以上、デフォルトでは無効
CREATE EVENT文で登録
マニュアル見てググれ
cronにscriptでSQL書く必要なくなる
master/slaveともにONに、マスタでのみENABLEにする
設定項目への監視 nagiosなどで 操作対象なども
loggingする
障害復旧時にちゃんと見直す
別にcronでも良いかもしれないけど、どちらにしても適切な監視は必要

4.0 Casual @kazeburoさん
source code not available
incollect innodb_buffer_ppl_size
mysql 4.0 can't connect 5.5.57

5.0->5.5について @oranieさん
InnoDBまわり性能アップ! デメリットも
実サービスじゃないならガンガン上げよう
5.0.7->5.1を踏み台として経由してバックアップ、コピーして

@do_akiさん
#isucon参加します
レプリケーションについて
n:1 レプリケーション シャーディングによる横断分割したものでJOINするため
CHANGE MASTER TO
MASTER_POS_WAIT関数
STOP SLAVE IO_THREAD
3秒ごとの切り替え
遅延は必ず発生するけど使いどころはある

@matsunobuさん
MHA
マスター障害対応の課題
マスタ昇格
5.0以降で動作
Managerがmasterを監視、障害時に
master, slave間の各差分を埋める
ほかの方法との比較 いろいろ
任意のslaveを新masterにできる
Mobageで全面的に使っています
DeNAに入社すれば中の様子いろいろ見られるよ!

MySQLでNoSQL @RKajiyamaさん
labs.mysql.com
MySQL 5.6, MySQL Cluster 7.2
2種類のmemcached連携
5.6 -> サーバにPluginとしてmemcachedインタフェースを追加
Cluster 7.2 -> 元々NoSQLだった 5.6とはまったく違う方法