2014年3月号のソフトウェアデザインの記事は「Riakはなぜデータをなくさないか」という観点から、Riakの設計とその思想を解説する。レプリケーションを行うデータベースの一般論からはいって、書き込み競合が起きたらどうなるか、ネットワーク切断が起きたらどうなるか、整合性とは何なのか、永続化とは一体何なのか?について語る。
Software Design (ソフトウェア デザイン) 2014年 03月号 [雑誌]
- 出版社/メーカー: 技術評論社
- 発売日: 2014/02/18
- メディア: 雑誌
- この商品を含むブログを見る
ACID的なデータベースではDurabilityはあって当たり前であるが、それではDurabilityとは何なのか?という議論もあるのだが、とりあえず、CAP定理的にはレプリカのConsistencyとAvailabilityとPartition Toleranceは矛盾する。昨今のデータベースは基本的にはConsistencyだけにフォーカスしていて、Consistencyを守るためにAvailabilityとPartition Toleranceを犠牲にしている場合が多い。RiakはConsistencyの定義を変えることでAvailabilityとPartition Toleranceを同時に実現しているのだけども、その中でもAvailabilityと、Durabilityの話が中心に進んでいく…というとなんだかカッコイイですね!
これを執筆した後に筑波大学での講演があったのだが、この講演の直前にこの原稿を書いたのが非常にラッキーで、知識の復習になってとてもよかった。
本当はこの中でJepsenの解説もしたかったのだが、他社製品をDisることになってしまうので自重。そしてこれの続編を書いているのだが、ハードコアすぎて終わりが見えない。3月号のつぎの4月号ではスピリチュアルな話ではなく、実際に手を動かしてRiakの整合性がどのように設計されているかについて解説する予定なので、3月号も4月号も買うとよいよ!!