Какие ограничения характерны для чистой модели ключ-значение?
- Что нельзя сделать в хранилище ключ-значение?
Доступ только по ключу: нет запросов по содержимому значения, нет соединений, схема — на совести приложения. Атомарность по одному ключу как раз есть.
- Поиск по полю — вторичный индекс вручную или другое хранилище
- Связи — в коде приложения
- Диапазоны по ключу — не везде (в хеш-распределённых — нет)
А ещё Многие KV-хранилища расширяют модель: структуры Redis, вторичные индексы DynamoDB
Подробно
Всё это — обратная сторона простоты: именно отказ от произвольных запросов позволяет распределять данные по узлам и получать предсказуемую задержку. Практический вывод в том, что модель проектируется от известных заранее сценариев доступа: если запросы могут меняться, хранилище придётся перекраивать. Частичный обходной путь — вторичные индексы, которые предлагают некоторые системы, но они обычно согласованы лишь в конечном счёте и имеют свою цену. Операции над одним ключом при этом атомарны, и на этом строятся счётчики и приёмы вроде условной записи.
Что хотят услышать
- Ограничения модели.
- Что атомарность по ключу сохраняется.
- Как обходят ограничения.
Частые ошибки
- Планировать аналитические запросы поверх key-value хранилища.
- Считать, что вторичные индексы дают те же гарантии, что и в реляционной СУБД.
Проверьте себя
Несколько верных вариантов. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✓Нет запросов по содержимому значения — только по ключу
- ✗Невозможно обеспечить атомарность даже операции над одним отдельно взятым ключом
- ✓Нет соединений между записями: связывание ложится на приложение
- ✓Схему значения хранилище не контролирует — это забота приложения
Что спросят дальше
- Что такое условная запись и зачем она нужна?
- Как организовать поиск по значению, если он всё-таки понадобился?
Разбор темы
- Key-value хранилища
Простейшая модель доступа по ключу, типичные применения, Redis против DynamoDB, партиционирование и ограничения.
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.