0
 
добавлено 21.05.2019 в 14:14, источник Хабрахабр

Как ускорить разжатие LZ4 в ClickHouse


При выполнении запросов в ClickHouse можно обратить внимание, что в профайлере на одном из первых мест часто видна функция LZ_decompress_fast. Почему так происходит? Этот вопрос стал поводом для целого исследования по выбору лучшего алгоритма разжатия. Здесь я публикую исследование целиком, а короткую версию можно узнать из моего доклада на HighLoad++ Siberia.

Данные в ClickHouse хранятся в сжатом виде. А во время выполнения запросов ClickHouse старается почти ничего не делать — использовать минимум ресурсов CPU. Бывает, что все вычисления, на которые могло тратиться время, уже хорошо оптимизированы, да и запрос хорошо написан пользователем. Тогда остается выполнить разжатие.



Вопрос — почему разжатие LZ4 может быть узким местом? Казалось бы, LZ4 — очень легкий алгоритм: скорость разжатия, в зависимости от данных, обычно составляет от 1 до 3 ГБ/с на одно процессорное ядро. Это уже существенно больше скорости работы дисковой подсистемы. Более того, мы используем все доступные ядра, а разжатие линейно масштабируется по всем физическим ядрам.

Читать дальше →


Читать новость целиком


ФИО:
Пожалуйста, заполните поле. Не менее 3-х символов.
E-mail:
Пожалуйста, заполните поле. Не менее 3-х символов.
Компания:
Пожалуйста, заполните поле. Не менее 3-х символов.
Текст:
Пожалуйста, заполните поле. Не менее 3-х символов.
Отправить







Добавить комментарий
Вы не можете комментировать, пока не авторизуетесь вКонтакте, воспользовавшись кнопкой ниже.


Похожие новости
26.05.2019
Как нетрудно догадаться, я знаю ответ на этот вопрос, но, поскольку моя статья с описанием алгоритма сортировки "воронкой" была здесь встречена, мягко говоря, нервозно, я решил провести-таки тестиро...
27.05.2019
Как работать с изображениями на клиенте, сохраняя плавность UI? Разработчик интерфейсов Павел Смирнов рассказал об этом на основе опыта разработки поиска по фотографиям на Маркете. Из доклада можно ...
02.06.2019
В большом проекте может возникнуть задача идентификации изменений для конечного пользователя по отличиям в коде фронтенда приложения. Разработчик из Яндекс. Маркета Никита Сидоров рассказал, как мы р...
27.05.2019
Приветствую всех читателей нашего блога! Меня зовут Эдуард, в РДТЕХ я руковожу Центром решений для промышленности, но сегодня мой пост не об этом. Я хочу поделиться опытом тестирования беспило...
03.06.2019
Сегодня открылся новый набор в Школу разработки интерфейсов Яндекса в Москве. С 7 сентября по 25 октября пройдет первый этап обучения. Студенты из других городов смогут в нем поучаствовать д...