smallpalace's blog

鯖缶主婦の日々の記録です

MyNA会20150827に行ってきた

myna会に行ってきたのでその記録です。

MyNA(日本MySQLユーザ会)会 2015年8月 : ATND

kamipoさんoracleACEおめでとう会でした。おめでとうございました!

 

MyNA(日本MySQLユーザ会)会 2015年8月 - Togetterまとめ

他の方のブログ:

MyNA(日本MySQLユーザ会)会 2015年8月 ノート - Qiita

 

主催のyoku0825さんのブログ:

MyNA(日本MySQLユーザ会)会 2015年8月を開催しました | GMOメディア エンジニアブログ

 

ちょっと遅刻でとちゅうから。誤字とか資料とかあとでなんとかする予定です。

----

kamipoさんのおはなし

 近況報告

プログラマが使うmysqlツール側の困りごととかを撲滅しにいく的な。すごいっす。

濁点ちがいの問題とかぱぱははもんだい、ユニーク制約でぱぱ入ってるとはは入れられないみたいなの

ARのutf8_unicode_ci問題など

困っている人をtwitterで検索しまくっているようです。菩薩だ。

文字コード系ではほかに、すしビール問題があるそうで

補助文字、バグのチケットにしてあって直りそうなよかん

MySQL と寿司ビール問題 - かみぽわーる

MySQL Bugs: #76553: Sushi-Beer issue of MySQL with utf8mb4

日本語圏で顕在化する問題がけっこうあってなんとかしないとだけど理解されづらいことがおおい

case_incensitive がmysqlのデフォルトでプログラムからは逆なので罠っぽいと。

utf8_mb4使う時は、innodb_large_prefix=ONで拡張するとかbarracudaつかうのがいいそうです。

only_full_groupby以外はトラディショナルに含まれてるのでよりストリクトにこうするのがオススメ的な

これからmysqlつかうなら、
onlineDDLサポートしてる5.6以上をつかうのがいい

5.5からのupgrade環境だとonlineddlに引っ掛かるのがある
5.5以前につかう時関係のカラムをもってるとonlineでできない
show old temprals?みたいなコマンドがある。それがなくなればonlineでできるからいいかんじ
5.6はアルゴリズムとロックのALTER TABLEオプションが合って
mysql online mygrasionとかやるといいらしい
いまは外部のgemに頼る必要がある
pt-online-schema-changeとかつかうとか
activerecode用の同様のツールもあるもよう

------------------
いとうさん @i_rethi

dimSTATからみるベンチマーク

って何?

MyNA会でdimSTATについて話してきました - hiroi10の日記


Dimtriさんがつくったやつ。
パフォーマンススキーマからとってるグラフとかの話

waitI/Oとかなんとなくわかる
インストール方法がはてだに。

2015-05-23 - hiroi10の日記

値を収集すると色々でてくる
平たく言うとmysqlの中のパフォーマンス担当の人が自分の為に作ったモニタリングツールだそう。

I/Oそこそこいくとこならgenerallog有効にしてもそんなに性能がかわらないかも?という衝撃の情報が。

秘伝のたれが。

inndb_page_size=4kにすると結構1.5倍くらい性能かわるらしい、デバイスによって結構かわるらしくて選んでくださいと。
環境によっては16Kのが早いとかも。

5.6でextだと~batch_num_scanが増えたら負けとか
Waitedtimeが増えてるとクエリ操作が遅くなってる
io_capacityを見直すといいかも。redlogとか再起動があれで
5.6ならxfsを使うといいかも。extはperconaならはやいかも

5.7はwaittimeが減ってるので早いかも
sx-locksってなんだ?
5.6はio_capacityは増やし過ぎない方がいいらしい。writeの制御がだいぶ適当らしい

lru_scan_depth 増やし過ぎるとだめブロックデバイスの限界を超える値を指定してもあんまり意味が無い

baffur_pool_instance×innodb_lru_scan_depthがなんとかかんとか。。

とても便利そげなベンチマーク資料が。。

instanceが多いほうが、、

パフォーマンススキーマのグラフはジグザグになるよりはまっすぐなほうが性能安定してる印象

値がまるまらないのが便利。ブックマーク登録しておくと便利らしい
snapshotとっとくという機能もあるもよう

ext4が遅い理由を調べたらしい
flamegraphsってしってるか?と
fio+perf+FlameGraphs
実行コマンドなどが。
mutex_lock、writeオンリーだとext4は待ちが多くなるらしい
ワークロードに適したファイルシステムを選択しましょう、とのこと。

dimstat
mysqlのスラックチャンネルに登録してベンチネタを放り投げるとへんじがあるらしい

Join mysql-casual on Slack!

テコラスというデータセンタのエンジニアさんだそうです

---------------------
kazeburoさん

メルカリのデータベース戦略
PHPMYSQLの怖い話

MyNA(MySQLユーザ会)会 2015年8月 でメルカリのデータベース戦略とPHPについて喋って来た - blog.nomadscafe.jp

長野さん

メルカリのDBのはなし、WEB+DBに記事書いてるそうです

フリマアプリをやってるそう、日本最大規模

webアプリのスケール戦略
スマホ時代
ログデータが大量に集まってくる
JPとUSで別のインフラを使っている
USはAWS、JPはさくら。
JP専用サーバ+ioMemory
USはRDSになってる5.6系

DBをテーブル毎に分散していて
シャーディングまではいってない
適さないデータは別のにいれてる

データベース分割
対象となるテーブルをそのまま別サーバに移動
移動するのは、サイズが大きいとか商品購入に関係ない奴とかとか
スレーブが無いほうが遅延とか気にしなくていいのでmemcashedで頑張ったりなど

スケールアップ前提の運用
phpのコードに接続先の管理をかいてる
テーブル、機能ごとに接続先を管理、さらなる分割を視野に入れた仕組みをとりいれているそうです

データの一時的キャッシュ:memcached
新商品リスト:redis

ログデータ分析
・TresureData,BigQuery、Norikra、KPI:mysql5.7とか
fluetndでBigQueryとTresureDataにデータを送ってる
ログのStream処理
fluentdからnorikraに投げてる
それをさらにfluentdでMackerelになげたりしてる
200OKとったりリクエストやレスポンス速度とかだしたりもできる
マカレルはこのデータに対して閾値を設定してアラートを投げることができる
slackへの通知もできる
DBのエラー、phpの謎エラーなどをslackへ

分析でのMySQLの利用
・KPI集計
アドホックな分析、調査
・プロデューサーもSQL書いて利用している
 3つのクラスタを統合してつかいやすく
 個人情報のマスク
なんとマルチソースレプリケーションでトリガつかってマスクしてるらしい。衝撃!

実際設定するとちゃんと動くらしい
FOR CHANNELをつけるだけらしい
すごい簡単だったらしい。。マジで。

MD5でhashに変更してユニーク性はとれるようにマスクしてるらしい
秘密の文字列とくっつけてMD5で変換してるらしい

ISUCONの元関係者として宣伝中だそうです。
予選が9/26-27
10/31が本選

phpの怖い話
もともとperlを10年くらいでphpは半年くらい
1.commitが例外を出さない
commit()はエラーになっても例外を出さない、エラーを別途補足して例外に変換する必要がある

いくつかの条件が合わさるとつながってないエラーが出なかったりするようだ

phpのアップデート、mysqlndの利用、commit()の前にselect 1してつながってるかどうか確認
 perlにあるようなping()がほしい

2.EnptyBody
大量データに対してクエリを一気にバッファしないオプションをつかう
mysqlndに関しては読みとるバッファが小さくてタイムアウトに引っ掛かる
net_write_timeoutを伸ばすかunbufferd_queryをつかわないなどの対応が必要らしい

php怖くない、だそうで。perlソースコードを読むことは無かったけどphpソースコードはよく読んでるそうです。

-----
梶山さんのおはなし

5.7.8がまさかのRC2でGAじゃなかったけど、、、という長いタイトル

mysqlpump?
MySQL柱の会
人柱向け、
labs.mysql.comをどうぞ

7つのlab機能を解説

GroupReplication、複数台でのマルチマスタ型。擬似同期れぷりけーしょん 
それがれらででき。。ry
最近0.4.0がでたそうです。プラグイン化されてるそうです。追加機能は0.5.0まち。
MySQLJson、5.7.8に入ったのでlabsにあるのは削除しわすれだそうです
variable.jpにいろいろかいてあるらしい
JSON UDF、このころjson_*()、UDFではなくネイティブの関数になったらしい。jsn_*()になったそうです。
5..7.8ではjson_*()だからちゅうい。。
またデータをInnoDB化するプロジェクトが進行中。MySQLNewDataDictionaryほぼ一年塩漬け中
HTTPPlugin
MySQLCoonectorC6.2.0、一時行方不明になるという現象が、これもほぼ塩漬け、あと2カ月はたぶん塩漬け
HdoopAplierほぼ2年半しおづけ、次とからんでる
MySQLBinlogEvents、
libmysqlstream,libbinlogeventsストリームをもらってきてなんとかかんとか
もうすぐバージョンアップするらしい

GroupReplication、BinlogEvents、Proxy&Fablic
ビルド中らしい
proxyがfablicとくっついて新しいことになるかも
夏休みのせいで遅れてるっぽいけど10/25にむけていろいろ
オラクルオープンワールドがあるそうで。

8/11リリースに出たやつ、タイムゾーンファイルがリリースされてるらしい
winかhpux限定の機能らしいです

yoku0825さんお誕生日2日まえだったそうでおめでとうございました!
-----------------------

さかいさんから

ユーザ会副会長さん

15年目なのでなんかやろうぜと

飲み食いしながらの会をしたいとのこと
10/30金に15周年記念の会をするそうです、カジュアルも5周年なので一緒にやろうぜと。

振り返り系のイベントにしたいそうです

ML近いうちにながしたいとのこと

 

 

今回もためになって面白かったです。ありがとうございました。

 

ではみていただいてありがとうございました!