HBase · Apache HBase 2.6
В Облаке Данных Сбера из HBase читают профили по ключу: один Get — одно значение около 100 байт. Таблица в 10 раз больше BlockCache, поэтому большая часть запросов идёт на диск. Диски — HDD.
HFile читается блоками, по умолчанию по 64 КБ. Чтобы отдать 100 байт, регион-сервер поднимает с диска весь блок — в 640 раз больше нужного, а с упреждающим чтением HDFS и ОС, по замерам Сбера, около 2600 раз.
В работе: Настройка семейства колонок под точечное чтение по ключу.
Как проверяем
Движка HBase в браузере пока нет, поэтому здесь не запрос, а выбор решения. Выберите один вариант. После ответа — почему каждый вариант верный или нет. Ответ один на подход: после него показываем разбор.
Источник: блог Сбера на Хабре: как ускоряли случайное чтение из HBase и HDFS. Условие пересказано своими словами.
Давали на собеседовании?
Какое изменение схемы сильнее всего сократит объём чтения с диска на один Get?
- Уменьшить BLOCKSIZE семейства до 8–16 КБ и включить BLOOMFILTER => 'ROW'
- Увеличить BLOCKSIZE до 256 КБ, чтобы реже ходить на диск
- Отключить BlockCache, раз таблица в него всё равно не помещается
- Разбить таблицу на вдвое большее число регионов