CRDTs
CRDT, Conflict-free Replicated Data Types
日本語解説 https://qiita.com/everpeace/items/bb73ec64d3e682279d26
資料まとめ https://github.com/ipfs/research-CRDT
ユースケース https://github.com/ipfs/research-CRDT/issues/1
気になる
ユースケース
Redis, Riak, Roshi,
Google Docs みたいなやつ
カウンタに対するリトライ
実はインクリメントされてるのにリトライした場合
CRDT は merge() の冪等性はあるけど、操作 (increment() とか) の冪等性はない、はず
CRDT よりも前のレイヤで冪等になるようにするとか?
どのくらいの頻度でマージすればいいか
頻度が多いと性能がやばそう
動的な構成変更がある場合
G-Counter とか、固定長の配列として持っているけど大丈夫なのか
node 名 => count の map とかだといいのかも
ずっと運用してノードが参加・離脱を繰り返すと計算量がだんだん増えていきそう
離脱したらどっかにマージして消すとかしないといけなさそう
離脱したノードのカウントを別途用意しておくとか
離脱の判断基準は?
数台くらいしかスケールしなさそう
ブロードキャストの頻度によるかも
Strong Eventual Consistency ってなに
亜種
たくさんありそう
δ-CRDT
https://github.com/ipfs/research-CRDT/issues/31
資料
https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/replDataTypesPOPL13-complete.pdf
POPL'14
CRDT みたいなやつまとめ?