「大規模サービス技術入門」を読んだ感想

公開日時:

こんばんは。

この本ははてなの研修の内容を書籍に起こしたもので、はてなが数多くの障害を実際に乗り越えてきた知見がふんだんに詰まっていてとても良い本でした。

読みながらこのツイートのスレッドに感想やメモを書き込んでいたので、それを簡単にまとめる形にします。

なお、インフラ構成の話などもありますが、この本の出版時(2010年)はまだクラウドが主流ではなかった(話題になってはいたがはてなはAmazon CloudFront以外は使用していなかった)のでその点だけ留意して読む方が良いです。

書籍のリンクはこちらに。
https://gihyo.jp/book/2010/978-4-7741-4307-1

章立ては下記の通りです。
第1回 大規模Webサービスの開発オリエンテーション―全体像を把握する
第2回 大規模データ処理入門 ―メモリとディスク,Webアプリケーションと負荷
第3回 OSのキャッシュと分散 ―大きなデータを効率良く扱うしくみ
第4回 DBのスケールアウト戦略 ―分散を考慮したMySQLの運用
第5回 大規模データ処理[実践]入門 ―アプリケーション開発の勘所
第6回 [課題]圧縮プログラミング ―データサイズ,I/O高速化との関係を意識する
第7回 アルゴリズムの実用化 ―身近な例で見る理論・研究の実践投入
第8回 [課題]はてなキーワードリンクの実装 ―応用への道筋を知る
第9回 全文検索技術に挑戦 ―大規模データ処理のノウハウ満載
第10回 [課題]全文検索エンジンの作成 ―基本部分,作り込み,速度と精度の追求
第11回 大規模データ処理を支えるサーバ/インフラ入門 ―Webサービスのバックエンド
第12回 スケーラビリティの確保に必要な考え方 ―規模の増大とシステムの拡張
第13回 冗長性の確保,システムの安定化 ―ほぼ100%の稼動率を実現するしくみ
第14回 効率向上作戦 ―ハードウェアのリソースの使用率を上げる
第15回 Webサービスとネットワーク ―ネットワークで見えてくるサービスの成長
特別編 いまどきのWebサービス構築に求められる実践技術 ―大規模サービスに対応するために

以降面白かったところをいくつか拾っていきます。

第2回

第3回
Linuxはページキャッシュでファイルの情報をメモリにも保持するという話。

第4回
MySQLのB木インデックスはOSの挙動と同調させることでさらにチューニングさせることができるという話。

第6回
大規模データを扱う際のデータを圧縮して処理する手法。

第7回
正規表現で処理していたがデータ量が多くなり問題が発生したので別のデータ構造を使うようにした話。

余談
ChatGPT4まじで便利すぎる

第7回
AC法の仕組み

第9回
全文検索エンジンの内部構造

第11~15回, 特別編