Согласованность данных означает, что одни и те же данные выглядят одинаково везде. Адрес клиента в платежной системе совпадает с адресом в системе доставки. Количество товаров на складе совпадает с количеством на веб-сайте. Когда системы расходятся во мнениях, принимаются неверные решения. Заказы отправляются по старым адресам. Клиенты покупают товары, которых нет в наличии. Согласованность данных необходима для систем, которые зависят друг от друга.
Распределенные системы затрудняют обеспечение согласованности. Данные, реплицированные на нескольких серверах, могут рассинхронизироваться. Разделение сети изолирует один регион от другого. Оба региона принимают операции записи. Когда разделение восстанавливается, данные начинают конфликтовать. Теорема CAP гласит, что можно обеспечить согласованность, доступность и устойчивость к разделению, но не все три одновременно. Большинство распределенных баз данных выбирают доступность и в конечном итоге согласованность. Это означает, что данные со временем сходятся, но существует временной промежуток, в течение которого разные узлы видят разные значения. Строгая согласованность требует координации, что приводит к задержкам. Выбор зависит от приложения. Банковской реестр требует строгой согласованности. Лента социальных сетей может допускать в конечном итоге согласованность. Правильный ответ не является универсальным. Он зависит от того, что именно выходит из строя, когда данные расходятся.
Модели согласованности
- Надежная защита — все узлы мгновенно видят одни и те же данные.
- В конечном итоге — узлы сходятся со временем.
- Причинно-следственные — связанные операции рассматриваются в порядке
- Вы можете читать то, что пишете сами — вы сразу видите свои обновления.
Последовательность — это спектр. Вопрос в том, какой уровень непоследовательности может выдержать приложение, прежде чем оно выйдет из строя.
Comments
No comments yet. Be the first to share a thought.
Leave a comment