Получить доступ

Какие промежуточные гарантии находятся между строгой и итоговой согласованностью?

MiddleCAP и согласованность
Ещё спрашивают так:
  • Что такое read-your-writes?
  • Что такое причинная согласованность?
Коротко

Согласованность — спектр: между линеаризуемостью и итоговой лежат read-your-writes, монотонные чтения, причинная согласованность.

  • Read-your-writes — автор сразу видит своё
  • Монотонные чтения — обновление страницы не «откатывает» данные назад
  • Причинная — ответ не появляется раньше вопроса

А ещё Чаще всего достаточно промежуточной гарантии, а не строгой согласованности везде

Так подсказку видит пользователь sotto на живом собеседовании — за пару секунд, пока вы думаете вслух.

Подробно

Главная практическая мысль в том, что строгая согласованность нужна далеко не везде, а полностью итоговая часто неприемлема с точки зрения пользовательского опыта. Чаще всего достаточно промежуточной гарантии: человек должен немедленно увидеть собственный комментарий, тогда как чужие могут появиться с задержкой — это ровно read-your-writes, и реализуется она направлением чтений этого пользователя на узел записи или чтением из модели записи. Монотонные чтения защищают от эффекта, когда обновление страницы показывает более старое состояние из-за попадания на отставшую реплику. Одномоментного обновления всех узлов не бывает — распространение изменений всегда занимает время, поэтому такой гарантии не существует.

Что хотят услышать

  • Названия и смысл промежуточных гарантий.
  • Как реализуется каждая (лидер для своих данных, привязка к реплике, версии).
  • Выбор гарантии по требованиям продукта.

Частые ошибки

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

Проверьте себя

Несколько верных вариантов. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✓Read-your-writes: пользователь всегда видит собственные изменения
  • ✓Monotonic reads: состояние не «откатывается назад» при последовательных чтениях
  • ✓Причинная согласованность: причинно связанные операции видны в правильном порядке
  • ✗Атомарная согласованность: все узлы обновляются в одно и то же мгновение

Что спросят дальше

  • Как технически обеспечить read-your-writes?
  • Почему пользователь может увидеть более старые данные при обновлении страницы?

Разбор темы

Связанные вопросы

Закрытая бета

Подсказки на собеседовании — в реальном времени

sotto слышит вопрос интервьюера и показывает короткий ответ и план, как в блоке «Коротко». Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем