最近読んだもの 29
記事
- Does a Container Image Have an OS Inside
- コンテナの仕組みの基礎
- コンテナは cgroups とか namespaces とかで分離されたプロセスだよという説明書
- scratch という空のベースイメージがあるのは知らなかった
- このシリーズおもしろそうなので他の記事も読んでみる
- Designing WhatsApp - High Scalability
- WhatsApp のアーキテクチャを調査してまとめたもの(たぶん)。過不足なく網羅的で面白い
- チャットメッセージをサーバサイドのデータストアに全件保存するのではなく、クライアントだけが持っているという構成なのがユニークなポイントと思われた(たぶん LINE も同じ設計思想?)
- 大きくはオンラインのユーザーへのメッセージ配信を行うチャットサービスと、オフラインのユーザーようにメッセージを溜めておくトランジットサービスという二つのサービスが主な登場人物になる
- またチャットサービスはユーザーごとにシャーディングすることでスケールできる設計になっている
- 同じシリーズの Netflix の記事もあるようなので読んでみよう
- Designing Netflix - High Scalability
- 上記と同じシリーズの Netflix 版
- Netflix の場合このレベルのアーキテクチャデザインよりも、より実装、運用に近い部分の知見の方が面白いのかもと思った
- 有名なカオスエンジニアリングをはじめとするマイクロサービスの設計運用とか、CDN、動画エンコーディングまわりとか
- そのへんの資料へのポインタも記事にはあるので掘ることはできそう
- MySQL Query Optimization: Top 3 Tips
- MySQL のオプティマイザの tips
- 全く同じクエリが過去にあっても毎回オプティマイザの全ての処理が行われる
- Oracle などはそうではないらしい
- MySQL の 8 系からExplain の tree format というものが追加された
- 例えば index からカラムを取り出した後の絞り込み (Extra にかいてある内容) がツリーでわかりやすく表現されている
- hash join の情報はこのフォーマットでしか見れないらしい
- How to deal with MySQL deadlocks
- show engine innodb status の LATEST DETECTED DEADLOCK の読み方と対処方法
- トランザクションを小さくする、直列になるようにする、分離レベルを変えるなど
- Five things you did not know about Rails transactions
- rails のトランザクションに関する小ネタ集
- ネストしたトランザクションへの対応 (checkpoint) とか、トランザクションの状態 (
fully_committed
) など知らないことが多かった - ドキュメント・実装も確認したい
本
- 面白くて一気に読んでしまった
- 火星の人 (オデッセイ) の作者の新作
- 火星のワトニーと同じく、絶望的な状況でも科学とユーモアで一歩ずつ進む爽やかな前向きさは顕在で、かつ今回はエンタメ度がパワーアップしていてよかった
- 個人的には三体 (まだ 1 巻しか読んでいない) 並に良かった