yumulog

北海道の大学教員/情報科学研究者の日記

大規模サービス技術入門



WEB+DB PRESS plus シリーズの本。はてなの伊藤直也さん(現グリー)と田中慎司さんが著者で、内容ははてなのインターンシップの内容をそのまま本にしたもの。そのため、説明も前提知識なしでも進められるよう分かりやすく書かれている。


はてなのサービスを実際に作ってきた中で出た課題をどのように解決してきたのか、工夫や試行錯誤してきたことが沢山紹介されている。実際にはてなのサービスで扱っているデータ量がどの程度なのかが具体的に書かれているので、イメージもしやすい。


例えば、サーバへのアクセス過多など CPU 負荷が問題の場合はサーバを増やして分散処理させれば解決できるが、SQL のレコードが増えた場合などストレージの I/O 負荷が問題の場合は単に分散処理させても解決できない。で、どうするかと言うと、SQL のテーブルを分割・分散保持することでテーブルのレコードを減らし、ストレージのI/Oを減らして性能向上させる。


ある程度のシステムを構築したことがあれば当たり前の話なのかもしれないが、少なくとも自分にとっては非常に興味深い内容であった。世の中にどういうツールやオープンソース実装があるのかも把握できるのも良い。大規模かどうかに関わらず、システム構築をする人は読んでおいて損はないと思う。