分散システム
定義
A collection of computers that appears to its users as one computer. - Andrew Tannenbaum
複数の平行して動作するコンピュータであって、ユーザからは1つのコンピュータであるかのように見えるもの
性質
グローバルクロックが存在しない
独立にfailする
並行して動作する
5つのトピック
Storage
Computing
Synchronizing
Consensus
Messaging
Why They Exist?
Distributed system is HARD
Single-Master Storage
Business doesn't expand, less awesome
Read Replication
お気に入りコーヒーのメモを他のバリスタにコピーして渡す
リーダーになるDBからフォロワーになるDBに値の追加と更新を伝搬させるという方法のことをRead Replicationと呼んでいると思われる
コピーの伝搬に時間差がある
Complexity
Consistensy の問題が難しいけどEventual consistensyで良しとする
Strong consistensyはあきらめる?
Read >>> Writeの状況にしか対応していない、Read ReplicationはRead heavyな状況には合っているけどWrite Heavyな状況には合っていない