データ指向プログラミング 作者:Yehonathan Sharvit 翔泳社 Amazon データ指向アプリケーションデザイン ―信頼性、拡張性、保守性の高い分散システム設計の原理

本日読了?

大著。CPUよりもデータがボトルネックであり、データを基軸にアーキテクチャーを考える。

  • NoSQLはドキュメントDBとグラフDBに分化した。リレーショナルDBとあわせて3つの大きな分類になる。
  • データの取り出し方は、OLTPとデータウェアハウス。
  • エンコーディングJSONXMLCSVなどのテキスト、Thrift、Protocol Buffers、Avroなどのバイナリ。データフロー。RPCやREST API
  • レプリケーション。読み出し、書き込み。一貫性など。
  • パーティショニング。キー、ハッシュなど。
  • トランザクション。ダーティリード、ダーティライトの防止など。
  • 分散システム。部分障害が生じうる。
  • 一貫性と合意。アトミックなトランザクションのコミット、ユニーク制約など。
  • バッチ処理MapReduceなど。
  • ストリーム処理。メッセージブローカーなど。