пятница, 6 июля 2018 г.

Гай о согласованности

Еще одна статья о согласованности в конечном счете - в блоге Гая Харрисона (кто это - мне неведомо).

Здесь интересно то, что сausal consistency, read your own writes, monotonic consistency рассматриваются как дополнительные опции, которые может предложить согласованность в конечном счете.

Много сказано об обозначении NRW (N копий данных, при чтении читаем с R реплик, при записи необходимо чтоб записалось как минимум на W реплик). 

Соотношение N=W означает, что пишем сразу на все реплики - это подход традиционных СУБД. Если делаем W=1 - получаем высокую производительность при записи. В этом случае стоит поставить R=N - тогда при чтении мы сможем понять, какая из копий данных верная (наиболее свежая).

В NoSQL обычно делают N>W>1. Т.е. должна произойти запись более чем на одну реплику, но не обязательно сразу писать на все. Поышение уровня согласованности в три этапа:
1. при R=1 получим, что БД считаем верной первую считанную копию данных;
2. при R>1 происходит чтение более одной копии, их можно сравнить и взять самую свежую;
3. при R+W>N у нас есть гарантия, что мы считаем хотя бы одну самую свежую копию данных (quorum assembly).  


Комментариев нет: