fc2ブログ

makopi23のブログ

makopi23が日々の生活で感じたことを気ままに綴るブログです。

SQLアンチパターン読書会 「砂の城」に参加しました

2015/1/27(火) SQLアンチパターン読書会 「砂の城」に参加してきました。

DoorKeeper
http://sqlap.doorkeeper.jp/events/19944

以下の書籍をターゲットとした読書会なのです。

SQLアンチパターンSQLアンチパターン
(2013/01/26)
Bill Karwin

商品詳細を見る


場所は品川シーサイドの株式会社マーベラスさんです。
参加者は16名かな?

この読書会が始まって2年余り、遂に最終章ということで、この章を寄稿された奥野幹也さんが来てくださいました。


奥野さんの講演は、データベースリファクタリング読書会やCLUB DB2などで何度かお聞きしたことがあります。
毎度、熱くDBについて語られるので、データベースのことがホント好きなんだなぁ、とw

この日はまず奥野さんに25章「砂の城」について説明いただいたあと、いつもどおりディスカッション形式となりました。


■ 25章「砂の城」 By 奥野氏
人類は如何にして大切な データベースを守るべきか from Mikiya Okuno


「ベンチマークの測定結果なく性能を語るのは不毛!」というお言葉、グサッと来ました・・・。
奥野さんが25章に載せ忘れた「セキュリティ関係」、「キャパシティプランニング」、「論理的なデータ破壊」という3テーマについても資料で言及されていたりと、超有り難い内容に纏まっています。

あと、奥野さんの新著が出るそうな。

理論から学ぶデータベース実践入門 ~リレーショナルモデルによる効率的なSQL (WEB+DB PRESS plus)理論から学ぶデータベース実践入門 ~リレーショナルモデルによる効率的なSQL (WEB+DB PRESS plus)
(2015/02/27)
奥野 幹也

商品詳細を見る

目次とか紹介していただいたんですが、これは是非読んでみたいと思った次第。
読書会とかあるといいな~


■ ディスカッション
いつものように、ディスカッションしたい内容を付箋に書き出しました。
20150127_sqlap01.jpg

以下、個人メモ。

■ ベンチマーク
  • DBだけのベンチマークだけじゃなく、アプリに対するベンチマークも取らないと役に立たない。
  • 大事なのはアプリの性能なので、アプリ性能が落ちていないことを確認すること。
  • 実際の測定結果無しに性能問題を語るのは不毛。
  • 想定や予想で議論し合う前に、まず測定せよ。そしてその数字で議論せよ。

■ デカいテストデータをどうDBに突っ込むか?
  • でかいと、データをDBから取ってくるのも、DBに入れるのも大変・・・
  • MySQLだとレプリケーションでコピーしてこれば、デカいデータでもすごく楽にやりとりできる。
  • Cookpadは、プロダクション環境とステージング環境が、データのマスク込みで同期している。

■ テストデータの増幅
  • 自作ツールによる増幅だとデータに偏りが出たりして、正しく性能が取れないことがある。
  • テスト用のデータとして、本番環境などからデータを取得させてもらうことをお客さんとの契約に含んでおくべき。
  • データの扱い方について契約に盛り込んでおく。

■ テスト環境
  • テストが無いと、怖くてイジれない。テストが無いとリスクになり、踏み込んでいけなくなる。
  • 本番環境で性能測定などをするのはリスクがある。なら、本番環境と同等のテスト環境を用意すべし。
  • 性能は、CPUやメモリのスペックを換算比較しても意味が無い。性能劣化はそれでは気づけない。
  • 低スペックマシンでも、メモリを潤沢に積めば、低スペックながらも結構イケたりする。データがキャッシュに載ったりして

■ テスト環境としてのクラウド
  • 本番環境と同等のテスト環境を用意するのは難しいが、最近はクラウドベースのアーキテクチャが増えてだいぶ改善された。
  • ただ、クラウド環境はネットワークの向こう側にあるので、細かくいじれないことが多い。
  • チューニングでディスク分散、といった職人芸がまったく使えなくなることがある。
  • インターネット経由なので、ボトルネックが発生することがある。
  • クラウドはオートスケールとか自動バックアップを備えているので、それに助けられることが結構ある。

■ セキュリティ
  • なかなかセキュリティ対策の重要性を上に理解してもらえない・・・
  • IPAがセキュリティ事故事例の統計を出している。
    • セキュリティ事故でどのくらいの損害を出したかの概算金額も出ている。
    • それを用いて説明すると上を説得しやすいかも。数字で議論するの大事。
  • 最近話題になった徳丸さんネタも使えるかも。
  • JR北海道が、セキュリティ強化のために顧客データを全く持たない、という記事が日経コンピュータで紹介されていた。

■ バックアップ
  • バックアップは取るだけじゃなく、リストアのリハーサルのテストもちゃんとやっておかないといけない。
  • バックアップ取ってたのにリストアが出来ませんでした、という事例がよくある。
  • バックアップの取り方も工夫しないと、データ破壊した後のデータを上書きバックアップしてしまった、ということになりかねない。
  • 遅延レプリケーションという仕組みがあり、その場合は同期遅延された直前のデータは助かる。

■ データベース関連の書籍
  • 奥野さんの新しい書籍、読書会とかやりたいねー
  • データベース関連の書籍って、初心者向けかハードコア向けかの両極端だった。
  • 最近はミックさんの本とか、中間層向けの書籍が出てきた。

■ データベースのノウハウ
  • SQLチューニングはデータの内容によってやり方が変わるので、ノウハウを一般化することは難しい。
  • 昔のデータベース運用ノウハウが、「今は全然役に立たない」とか「むしろ逆効果」とかいうことがよくある。
  • 自分が獲得したノウハウのいくらかは、自分から積極的に捨てていく覚悟が必要。
  • 実装は変えられるので、実装のノウハウは寿命が短い。

■ 急激な高負荷に対する対処

■ 想定外な事象への対処
  • バックグラウンドが違うエンジニアが集まったチームだと、いろんな案が出て良かった。
  • 失敗事例を学ぶことが大事。SQLアンチパターンとか。
  • AWSは定期的に故意に障害を発生させ、動作確認をしている。Netflixとかは最先端を行っている。

★感想:
最後の章だけに話題は多岐に渡り、ディスカッションもいろんなネタが満載でした。

そして遂に、全25章を完走!
私、この勉強会が始まって2年あまり、実は皆勤なのです。
しかも私だけw

これもひとえに、参加者皆様一同のおかげです。
アットホームな雰囲気、濃いディスカッション、勉強会後の飲み会などなど、ほんとこの読書会はお気に入りなのでした。
主催の山本さん、和田さんをはじめ、皆様ありがとーございました。

幻の章として「論理削除」をテーマにあと1回読書会やる、という話もあるとかないとか・・・
そちらも楽しみです。

あと、奥野さんから25章のページにサイン戴きました。感謝!
20150127_sqlap02.jpg


■おまけ:過去の「SQLアンチパターン読書会」ブログ

1章:SQLアンチパターン読書会 「ジェイウォーク」に参加しました
 http://makopi23.blog.fc2.com/blog-entry-65.html

2章:SQLアンチパターン読書会 「ナイーブツリー」に参加しました
 http://makopi23.blog.fc2.com/blog-entry-70.html

3章:SQLアンチパターン読書会 「IDリクワイアド」に参加しました
 http://makopi23.blog.fc2.com/blog-entry-73.html

3章:SQLアンチパターン読書会 「続・IDリクワイアド」 に参加しました
 http://makopi23.blog.fc2.com/blog-entry-77.html

4章;SQLアンチパターン読書会 「キーレスエントリー」 に参加しました
 http://makopi23.blog.fc2.com/blog-entry-84.html

5章:SQLアンチパターン読書会 「EAV(エンティティ・アトリビュート・バリュー)」に参加しました
 http://makopi23.blog.fc2.com/blog-entry-90.html

6章:SQLアンチパターン読書会 「ポリモーフィック関連」 に参加しました
 http://makopi23.blog.fc2.com/blog-entry-94.html

7章:SQLアンチパターン読書会 「マルチカラムアトリビュート」に参加しました
 http://makopi23.blog.fc2.com/blog-entry-97.html

8章:SQLアンチパターン読書会 「メタデータトリブル」 に参加しました
 http://makopi23.blog.fc2.com/blog-entry-105.html

9章:SQLアンチパターン読書会 「ラウンディングエラー」 に参加しました
 http://makopi23.blog.fc2.com/blog-entry-109.html

10章:SQLアンチパターン読書会 「サーティーワンフレーバー」に参加しました
 http://makopi23.blog.fc2.com/blog-entry-115.html

11章:SQLアンチパターン読書会 「ファントムファイル」に参加しました
 http://makopi23.blog.fc2.com/blog-entry-118.html

12章:SQLアンチパターン読書会 「インデックスショットガン」に参加しました
 http://makopi23.blog.fc2.com/blog-entry-121.html

13章:SQLアンチパターン読書会 「フィア・オブ・ジ・アンノウン」に参加しました
 http://makopi23.blog.fc2.com/blog-entry-128.html

14章:SQLアンチパターン読書会 「アンビギュアスグループ」に参加しました
 http://makopi23.blog.fc2.com/blog-entry-130.html

15章:SQLアンチパターン読書会 「ランダムセレクション」に参加しました
 http://makopi23.blog.fc2.com/blog-entry-133.html

16章:SQLアンチパターン読書会 「プアマンズ・サーチエンジン」に参加しました
 http://makopi23.blog.fc2.com/blog-entry-134.html

17章:SQLアンチパターン読書会 「スパゲッティクエリ」に参加しました
 http://makopi23.blog.fc2.com/blog-entry-136.html

18章:SQLアンチパターン読書会 「インプリシットカラム」に参加しました
 http://makopi23.blog.fc2.com/blog-entry-138.html

19章:SQLアンチパターン読書会 「リーダブルパスワード」に参加しました
 http://makopi23.blog.fc2.com/blog-entry-140.html

20章:SQLアンチパターン読書会 「SQLインジェクション」に参加しました
 http://makopi23.blog.fc2.com/blog-entry-144.html

21章:SQLアンチパターン読書会 「シュードキー:ニートフリーク(疑似キー潔癖症)」に参加しました
 http://makopi23.blog.fc2.com/blog-entry-147.html

22章:SQLアンチパターン読書会 「シー・ノー・エビル(臭いものに蓋)」に参加しました
 http://makopi23.blog.fc2.com/blog-entry-151.html

23章:SQLアンチパターン読書会 「ディプロマティック・イミュニティ(外交特権)」に参加しました
 http://makopi23.blog.fc2.com/blog-entry-152.html

24章:SQLアンチパターン読書会 「マジックビーンズ(魔法の豆)」に参加しました
 http://makopi23.blog.fc2.com/blog-entry-153.html

関連記事

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://makopi23.blog.fc2.com/tb.php/160-fe8bca51
この記事にトラックバックする(FC2ブログユーザー)

-->