Что произойдет, если вы попытаетесь прочитать данные сразу после записи в строго согласованную космическую БД? - PullRequest
0 голосов
/ 30 марта 2020

Недавно я немного начал читать на Cosmos DB и обнаружил, что у них есть 5 настроек согласованности от строго согласованных до окончательно согласованных и всего между ними.

Предположим, я выбрал строго согласованные настройки. Теперь, если я обновлю адрес для кого-то с номером социального страхования 123-45-6789, а затем сразу попробую его прочитать, заблокирует ли он меня, пока не обновит большинство копий? Или он просто выдаст мне старые данные до тех пор, пока не будет обновлено все необходимое количество копий?

В качестве дополнительного вопроса, если он не блокирует меня, что делает задержку go для строго согласованной базы данных?

1 Ответ

1 голос
/ 30 марта 2020

Будет ли он просто давать мне старые данные до тех пор, пока не будет обновлено все необходимое количество копий?

На основании разъяснений в документе о согласованности в cosmos db :

Строгая согласованность обеспечивает линеаризуемую гарантию. Чтения гарантированно возвращают самую последнюю зафиксированную версию элемента. Клиент никогда не видит неполную или частичную запись. Пользователям всегда гарантируется чтение последней подтвержденной записи.

Итак, я думаю, что задержка предсказуема в соответствии с теоремой CAP. В конце концов, сильная согласованность происходит за счет задержки, обеспечивая высокую степень согласованности данных.

Если ваш сценарий приемлем, уровень согласованности сеанса предлагается по вышеуказанной ссылке, которая является более сбалансированной. Она обеспечивает задержку записи, доступность и пропускную способность чтения, сопоставимую с возможной согласованностью, но также обеспечивает гарантии согласованности, которые удовлетворяют потребности приложений, написанных для работы в контексте пользователя.

...