関西オープンフォーラム 出席報告

1.はてなの中の人のセミナー

セミナー名:はてな流大規模データ処理
11/8 11:00〜 (50 min) [ 会場 : 9F-セミナールーム1 ]
講師:伊藤直也株式会社はてな

はてなが扱うデータ量は日々増加している。単一マシンで扱いきれない量のデータを現実的な時間で処理する類の要件も多い。大規模データを扱いながらウェブサービスを提供していくにあたって、どのようなアプローチを取るか、またどのようなアルゴリズムの知識が基礎として必要か、その詳細について解説する。


(1)運用中システムについて、DB性能がボトルネックになった場合の対処方法

実際に存在するシステム「はてなダイアリー」(ブログ)「はてなブックマーク」(ソーシャルブックマーク)をふまえての説明だったと思う。

  • メモリが安くなったので、メモリを増加すればするほど、ストレージのボトルネックから逃れることができる。(たとえばLinuxの場合OSがメモリ増加分だけ全部仮想メモリ(キャッシュ)に利用しようとする。初心者の場合、メモリ不足?と一瞬勘違い。)
  • だから極端な話、DBのデータが全部キャッシュにあれば、ストレージのボトルネックは発生しない
  • 現在、8G〜16Gのメモリを積むのは、非現実の話ではない。だからDBサーバに関しては、同じ金をかけるのであればストレージよりメモリに金をかけるべき。
  • 上記対策や、CPUの強化増設による「スケールアップ」では間に合わなくなって初めて、「スケールアウト」(複数DBサーバへの分散)をすることになるが、それは単純ではない。下記の「パーティショニング」等、考慮することは多い。
  • パーティショニング(テーブル分割)は昔から有る手法。よくあるのが、参照系と更新系のテーブルの分割。
  • 他に、検索のインデックスを元に辞書の途中で分割する手法も。たとえばユーザID範囲がA〜EのテーブルはサーバA、F〜JのテーブルはサーバBに置く。はてなのサービス停止のお知らせの時、特定ユーザID範囲のみ利用できない場合があるが、これは上記に起因。

(2)その他検索高速化の手法。

  • はてなでは、MySQL を利用。インデクスはとにかく重要。4000万件のデータを検索する場合、インデクスがないと、順番に見ていくので最悪4000万回探索しないといけないが、インデクスが有る場合、アルゴリズムにもよるが平均25回の探索で済む
  • MySQLの場合、JOINを使わないでwhere...in....を利用すると圧倒的に早いとのこと。(昔からの定石とは違う)なぜかは、いまのとこDB屋ではないので、よく理解できなかったが。

(3)質疑応答(一部?全部?忘れました。)

  • Q1:高速化のためにRDBMS自体をハックしようとかは考えなかった?
  • A1:そこまでは、今は考えていない。将来的には、わからないが。
  • Q2:設計の段階で、負荷も意識するといわれたが、サービス開始してからしかわからない部分もあるのでは?
  • A2:その通りで、実際は基本的には、ベータ版公開したりして、走りながら考えていくスタンス。ただ、はてブのような利用者が多く影響大のシステムの場合は、もう少し準備する。事前の識者の意見重視とか負荷テストの徹底とか。 でも基本は経験値がすべてと思っている。サイジングはモニタリングの問題に帰着する。

(3)感想

  • はてな」の中の人だし、技術的に高度でまったく話についていけないかと予想したが、途中まではなんとかついて行けて良かったし、参考になった。
  • 他の方の感想にも関連するが、今後「RDBMS」自体どうなるのかな?主流からははずれてしまうのかな?とも想像した。
  • あと自分はカメラ席の後ろの方で、ノートPCでメモを取りながら、プレゼンの一枚ごと写真をとってという、あわただしい作業をしてた。そんな変わった人、自分も含め数人いたかなあ。
  • ただしその後、id:naoya さんのページにpptファイルがアップされたり、SlideShare にもアップされたようなので、結果的には不要になった。
  • それにしてもnaoyaさんの作ったpptを直接入手できて開けるのってなんか感動。
                                                                                                                                                          • -

2.関西のコミュニティについて

 関西の勉強会について
11/8 12:35〜 (15 min)
講師:hashy、まっちゃだいふく(関西合同勉強会(KGB))
主催:KOF
関西圏で行われています、勉強会の紹介とIT勉強会カレンダーの紹介を行います。

(1)セミナーと勉強会の違い
セミナーは、基本的に講師のお話を聞くだけのもの(一方通行)。
勉強会は、積極的に参加できる(すべき)もの(インタラクティブ
講師へツッコんだり含め。講師も勉強しに来ている面あり。

(2)IT勉強会カレンダ について

管理者の一人、「まっちゃだいふく」さんからのお話。

勉強会は、全国でたくさん開催されていて、大阪だけで20以上の勉強会あり。
探すのが大変。
そこで、Googleカレンダーを利用して「はなずきん」さんが今年5月頃から登録していき、開始されたもの。
現在2000近くの勉強会が登録済み。勉強会の見える化に貢献。

(3)各種勉強会の紹介について

そのあと、関西を主とした各種勉強会の主催者による
勉強会に関するプレゼンあり。

そのなかには15歳!の中学生からのお話もあり驚き。
「京都PHP勉強会」のスタッフ。

中でも「わんくま同盟」という勉強会が抜き出ていて
月に3から4回!東京、大阪、福岡等いろんな場所で行なわれている。

上記の関係で特定の人に負荷が集中しているわけではなく
うまくルーチンが回っていると予想される。

運営のためのマニュアルもしっかりしている。
会場のとりかた、タイムテーブルの作成方法、
当日スタッフ側が準備すべきもののチェックリスト、等

(4)感想

関西のパワーには圧倒されます。
上記「まっちゃだいふく」さん「はなずきん」さんとは
いろいろありマイミクであります。
友達だし、尊敬する人だし、目標だし、アイドル(笑)だし。

勉強会といえば、広島にも「セキュリティもみじ」という勉強会があり
スタッフではないですが、時々参加しています。
絶対年齢は若くないですが、気持ちは若いので、(少なくとも5年前よりは若返っている気がする)出しゃばらない程度に、何らか貢献していきたいと思います。

以上