BASE特性
1. Basically Available
システムの一部が落ちても、全体が動き続ける
2. Soft State
システムのデータが常に変化する
3. Eventual Consistency (
結果整合性)
強い
一貫性が求められる場合(
ACID特性とか)は、 = writeをされた瞬間以降のreadは絶対更新されている
Eventual Consisencyだと、そうはならない
writeのあとにreadの値が更新されるまでにラグがあってもOK
Write-Write
競合(片方が潰される)や、Read-Write競合(間違ったデータが読まれる)を回避したい
複数の
レプリカを同時にread/writeしてあげれば、安全になりやすい
具体的には
Write-Write競合回避: w > n/2
Read-Write競合回避: r> n-2
(n: 全体のレプリカ数, w:同時にwriteするレプリカ数, r: 同時にreadするレプリカ数)
などの条件がある