データ指向アプリケーションデザイン ―信頼性、拡張性、保守性の高い分散システム設計の原理
を読んだ
マスタカといえばVPoE。
当然BEがスキルの中心のエンジニア力が必要になるわけだ!
そんなわけで本書を読んでみた
1章 信頼性、スケーラビリティ、メンテナンス性に優れたアプリケーション
2章 データモデルとクエリ言語
3章 ストレージと抽出
・本書の内容
概要は小難しいことを書いてありますが
システムのDBを中心としてアーキテクトの人が読むべき本です
・負荷についての考え方
ツイッターを例にしているが
書き込みを楽にすると読み込みが面倒で
読み込みを楽にすると書き込みが大変
これをサービスの特性に合わせてバランスを取る必要がある
・データ構造
・ハッシュッマップ
キーとオフセットを作って値を読みに行く
・コンパクション
同じキーに対して書き込みが多数走る時はとりあえず追記するだけにしておく
最終的には最新の値だけ残すようにファイルをマージして古いのを消す
これがコンパクション
・SSTable
セグメントされたファイルをキーでソートする
これによりマージ処理が楽、キーを探すのが楽、キーを圧縮できる
・Btree
キーでソートし、それを分割する
数が増えたらさらに分割する形で効率的に探せるようにする
・列指向ストレージ
列の値の順序は変更不可
列は圧縮できる
ベクトル化処理に持ち込みやすい
冒頭から非常に面白いと思いました
アーキテクトならおすすめしたい1冊です
関連記事:
- [書評]エンジニア組織を強くする 開発生産性の教科書を読んでVPoEのレベルが上がった
- エンジニアリング統括責任者の手引きの第13章〜第25章のまとめ
- エンジニアリング統括責任者の手引きの第5章〜第12章のまとめ