第八回 中国地方DB勉強会 in 福山
久々に勉強会に参加させてもらいました。
第8回 中国地方DB勉強会 in 福山 - Togetterまとめ
翌日情報処理試験だけど、まぁ一夜漬けしてもねwって感じだし。
はてなの中の方の監視の仕組みMackerelに関するお話やら、大規模なシステムでのPostgreSQLによる運用・監視のお話やら、普段まわりからは聞けないお話でした。
- Mackerelを支えるデータストア - PostgreSQL, Redis, Graphite
それぞれで性格の異なるPostgreSQL, Redis, Graphiteをデータストアとして使って、それぞれの役割に適した使いかたという感じ。
通常の業務アプリだと、複数のデータストアにデータが分散したり、それぞれの実装に沿った技術スキルが必要だったり、とあまり採用したくない場面が多いけど、データの性格が違うとすんなり受け入れられ、かつそれぞれに求められる要件を実現するいい例だった。
redis:モニタ、Graphite:ログ、PostgreSQL:定義 #chugokudb
— さく%モートレ(エアなし)仮運用中 (@S_a_k_U) 2015年4月18日
redisは直近のデータをキャッシュ的に扱うイメージ #chugokudb
— さく%モートレ(エアなし)仮運用中 (@S_a_k_U) 2015年4月18日
メトリック収集(Carbon)+時系列DB(Whisper)+グラフ描画(Graphite-web)=Graphite
— さく%モートレ(エアなし)仮運用中 (@S_a_k_U) 2015年4月18日
3つの機能で構成 #chugokudb
- PostgreSQLの運用・監視にまつわるエトセトラ
自分が主に使ってたのが8.xが多くて、9.xになっていろいろ便利になってるイメージだった。
賢くなってて、VACUUME FULLしなくていいみたいな。
その辺り、おさらい的な話やら、VM(Visibility Map)、テーブル再編成(pg_reorg、pg_repack)、プロファイラ他(perf、sar、iostat)による性能評価、とか。
更新がないからVACUUMしてない→VMが最新化されていない→インデックス参照時の恩恵に与れない場合がある #chugokudb
— さく%モートレ(エアなし)仮運用中 (@S_a_k_U) 2015年4月18日
REINDEXでシステムカタログを捕まえてロックされる #chugokudb
— さく%モートレ(エアなし)仮運用中 (@S_a_k_U) 2015年4月18日
pg_reorgでテーブル再編成(断片化の解消)
— さく%モートレ(エアなし)仮運用中 (@S_a_k_U) 2015年4月18日
将来はpg_repackに統合される?なのでpg_repack使っとけ。 #chugokudb
PostgreSQLで取れない性能指標。プロファイラはperfを使いましょう。IO/メモリ情報はsarやiostatを使いましょう(テーブルスペースとパーティションの組み合わせで)。 #chugokudb
— さく%モートレ(エアなし)仮運用中 (@S_a_k_U) 2015年4月18日
- データベース設計や実務で困ったことなどの意見交換会
Oracleの闇な部分はいいとして、MySQLのギャップロック(ネスクトロック)の話は「そんなことあるんか!?」的な話だった。
MySQLのギャップロック(ネスクトロック)。次のレコードロックする仕組みのせいで、最後のIDへのレコードロック時に次のレコードInsert時にデッドロックになったりする。 #chugokudb
— さく%モートレ(エアなし)仮運用中 (@S_a_k_U) 2015年4月18日