db tech showcase OSS 2017 に行ってきた
MySQLのいろんな話題が聞きたいなって思ったので、db tech showcase OSS 2017の初日に行ってきました。
ハッシュタグは「#dbts2017 #dbtsOSS」こちら
諸般の事情で後半2セッションしか視聴できませんでしたが、僕にとっては、以下の情報が得られたので非常に有意義でした。
- Spiderによるシャーディング
- そもそもシャーディングをよくわかっていなかった
- MySQL5.7のトラブルシューティング
- 書籍・ブログ以外で誰かに習ったことがなかったので、基礎を確認したかった
視聴したセッション
Spiderストレージエンジンの使い方と利用事例 他ストレージエンジンの紹介
正直、僕のスキルでは話についていくのがやっとだったので、Tweetを貼るだけにしておきます。 実務で使う場面を想像できないけど、「こういうもんだよ」ということはわかった気がします。
Spiderを使う場面。何かしらの理由でデータベースが分けられている場合で、あたかも1つのデータベースとして使いたい場合。2つ以上のサービスのデータベースを扱う、任意のルールでシャーディングされている・一貫性が必要な場合など #dbts2017 #dbtsOSS
— まみー (@mamy1326) 2017年6月16日
Spider内部で2フェーズコミットで一貫性を保つ。コミット中に障害が起きても一貫性が崩れないようになっている #dbts2017 #dbtsOSS
— まみー (@mamy1326) 2017年6月16日
Spiderテーブルの接続情報はコメントに書く。なるほど。カラム定義の省略も可能。パーティションの定義はコメントに続けて書くのかー #dbts2017 #dbtsOSS
— まみー (@mamy1326) 2017年6月16日
VP(Vartical Partitioning)ストレージエンジンがクエリを判断して、取得先のパーティションへの接続を分ける、でいいのかな? #dbts2017 #dbtsOSS
— まみー (@mamy1326) 2017年6月16日
Spider新機能、複数ノードの統計情報を保持しておいて、初期化の高速化をしている #dbts2017 #dbtsOSS
— まみー (@mamy1326) 2017年6月16日
秋の予定、再起動時の自動XA recovery & commit/rollback #dbts2017 #dbtsOSS
— まみー (@mamy1326) 2017年6月16日
Spiderストレージエンジンのリポジトリはこちらとのこと。 https://t.co/B68dZUXHG8 #dbts2017 #dbtsOSS
— まみー (@mamy1326) 2017年6月16日
MySQL 5.7トラブルシューティング 性能解析入門編
言うまでもない漢のコンピューター道の人、奥野さん。 ここ半年やってたトラブルシューティングは手探りだったので、基礎をきちんと聞いておきたかったのです。 視聴した内容は全部録画して見直したいくらいですが、自分の理解を振り返るためにも、これまたTweetをメモ代わりに貼るだけにします。 時間見つけて調べた結果を形にしたいとは思いますが・・・未定です。
www.slideshare.net
パフォーマンスとスループットの違いや・・・
パフォーマンス。どんだけ早く欲しいのか(レスポンス)、決まった時間にどんだけ処理実行できるのか(スループット)、で別ですよっと。
— まみー (@mamy1326) 2017年6月16日
基準値と限界値をしる。
#dbts2017 #dbtsOSS
それぞれの基礎・・・
レスポンスは実行計画の理解が第一。スループットはボトルネックを探し出す、全体的なキャパを引き上げる地道な活動が必要。 #dbts2017 #dbtsOSS
— まみー (@mamy1326) 2017年6月16日
工夫や計画大事だよ、と
ボトルネックの要因。まずはなんの工夫もなしにパフォーマンス言っちゃいけないよなあ。 #dbts2017 #dbtsOSS
— まみー (@mamy1326) 2017年6月16日
動作を知って仮説を立てる
アーキテクチャの理解を元に、統計情報や内部の動作を知った上で、仮説を立てる。 #dbts2017 #dbtsOSS
— まみー (@mamy1326) 2017年6月16日
統計情報は前後が大事、単発では意味ないよ、と
統計情報単発では意味はない。累積値なので、前後の変化を含める。
— まみー (@mamy1326) 2017年6月16日
継続的に一定間隔で収集し、見比べることが大切。
情報は保存しておいて視覚化。
どんな操作後に起きたか、なども知ることができる。
#dbts2017 #dbtsOSS
ビジュアルでEXPLAINが見れることを初めて知る
ビジュアルEXPLAIN…だと…(歓喜https://t.co/k26Bd4j6I1
— まみー (@mamy1326) 2017年6月16日
#dbts2017 #dbtsOSS
5.5では調べてなかったパラメーターを知る
innodb_flush_method, innodb_io_capacity, innodb_purge_threads, innodb_write_io_thread これ知らなかった。調べて試してみよう。 #dbts2017 #dbtsOSS
— まみー (@mamy1326) 2017年6月16日
セッション関連は下手にいじらない方が良いとのこと
read_buffer_size, read_rnd_buffer_size, sort_buffer_size, join_buffer_size, tmp_table_size など
— まみー (@mamy1326) 2017年6月16日
パフォーマンススキーマの基礎の話や・・・
パフォーマンススキーマ。主にパフォーマンス情報を取得する仕組み。
— まみー (@mamy1326) 2017年6月16日
MySQL独自で、ストレージエンジンとして実装。
採取できる情報が膨大なので使い方は難しい。内部構造を知る必要があるよ、と。
面白そうだなーと思ってたらすごい数の矢印w
#dbts2017 #dbtsOSS
ダイジェストサマリテーブルの話
パフォーマンススキーマの中の、ダイジェスト・サマリーテーブルの話。
— まみー (@mamy1326) 2017年6月16日
まだスロークエリログで消耗してるの?人向け(ただし高知発信ではない)
これは便利だ。
#dbts2017 #dbtsOSS
sysスキーマの話
sysスキーマは5.7から標準。パフォーマンスと情報スキーマを横断的にアクセスするビューのコレクション。 #dbts2017 #dbtsOSS
— まみー (@mamy1326) 2017年6月16日
オプティマイザトレースの話で本の紹介!
オプティマイザトレース。詳しいことはこの本を!
— まみー (@mamy1326) 2017年6月16日
これなら買った! https://t.co/JvulypWxva
#dbts2017 #dbtsOSS
5.5から5.7に変えない理由はないと呟いたら、@i_rethi さんからご指摘を頂く!
5.5でperformance_schema=ONにするとオーバーヘッドがでかすぎて涙目になるのでご注意ください。あと、5.5だとそんなに取れる情報まだ多くなかったはず
— ITOH Hiroyuki (@i_rethi) 2017年6月16日
理解を深めるためにも、1つずつ検証する必要がありますね。
本がまだ届いてないので、来たら資料にまとめたいと思います。
懇親会
なんと1000円。 まさかの🍣🍺
なんと🍣🍺
— まみー (@mamy1326) 2017年6月16日
#dbts2017 pic.twitter.com/QPYsbgy6bM
前回、MySQLユーザー会会@長野でお会いした方々にもお会いでき、明治さんとお腹を触りあったり、奥野さんと会話させて頂いたり、データベース界隈の有名な方々と交流できてよかったです!
家族でお出かけのため、二日目は参加できませんが、DB界隈は引き続き注視して行きたいと思います!