Войти Регистрация
Data base

178. 5 000 get подряд вместо одного скана

Средняя

HBase · Apache HBase 2.6

Календарь цен отеля хранится в HBase: rowkey = hotel_id + дата, одна строка — цены всех типов номеров на дату. Страница отеля показывает год вперёд.

Сервис делает 365 get подряд по одному, страница открывается за 1,8 с. В пике 400 открытий в секунду.

В работе: Чтение диапазона соседних строк в HBase: календари, временные ряды, страницы.

Как проверяем Движка HBase в браузере пока нет, поэтому здесь не запрос, а выбор решения. Выберите один вариант. После ответа — почему каждый вариант верный или нет. Ответ один на подход: после него показываем разбор.
scan против getcachingblock cache

Источник: на данных сервиса бронирования: цены отеля по датам. Условие пересказано своими словами.

Давали на собеседовании? Ответов пока мало — ваш поможет.

Как читать календарь?

  • Один scan от hotel_id + сегодня до hotel_id + сегодня + 365 дней с setCaching(365)
  • Scan с caching по умолчанию
  • Scan по всей таблице с фильтром по hotel_id
  • Хранить год цен одной ячейкой JSON