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

Какие ограничения характерны для чистой модели ключ-значение?

MiddleKey-value хранилища
Ещё спрашивают так:
  • Что нельзя сделать в хранилище ключ-значение?
Коротко

Доступ только по ключу: нет запросов по содержимому значения, нет соединений, схема — на совести приложения. Атомарность по одному ключу как раз есть.

  • Поиск по полю — вторичный индекс вручную или другое хранилище
  • Связи — в коде приложения
  • Диапазоны по ключу — не везде (в хеш-распределённых — нет)

А ещё Многие KV-хранилища расширяют модель: структуры Redis, вторичные индексы DynamoDB

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

Подробно

Всё это — обратная сторона простоты: именно отказ от произвольных запросов позволяет распределять данные по узлам и получать предсказуемую задержку. Практический вывод в том, что модель проектируется от известных заранее сценариев доступа: если запросы могут меняться, хранилище придётся перекраивать. Частичный обходной путь — вторичные индексы, которые предлагают некоторые системы, но они обычно согласованы лишь в конечном счёте и имеют свою цену. Операции над одним ключом при этом атомарны, и на этом строятся счётчики и приёмы вроде условной записи.

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

  • Ограничения модели.
  • Что атомарность по ключу сохраняется.
  • Как обходят ограничения.

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

  • Планировать аналитические запросы поверх key-value хранилища.
  • Считать, что вторичные индексы дают те же гарантии, что и в реляционной СУБД.

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

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

Показать варианты и ответ
  • ✓Нет запросов по содержимому значения — искать можно только по ключу
  • ✓Нет соединений между записями: связывание данных ложится на приложение
  • ✓Схема значения не контролируется хранилищем, и следить за её эволюцией должно приложение
  • ✗Невозможно обеспечить атомарность операции над одним ключом

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

  • Что такое условная запись и зачем она нужна?
  • Как организовать поиск по значению, если он всё-таки понадобился?

Разбор темы

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

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

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

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

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