Cloudflare удалось оптимизировать производительность ClickHouse, устранив скрытую пробку в системе, которая замедляла обработку данных. Это особенно важно для компании, обрабатывающей более 100 ПБ информации и выставляющей счета для множества клиентов.
Контекст проблемы
ClickHouse является популярной аналитической базой данных в открытом доступе, используемой Cloudflare с момента её создания. Сервис использует ClickHouse для хранения больших объемов данных и для анализа информации для сотен внутренних команд. Однако после последнего обновления, которое добавило новый ключ для партиционирования данных, начались проблемы с производительностью, что ставило под угрозу сроки выставления счетов.
Расследование причин
После внедрения новых изменений в ClickHouse, Cloudflare столкнулся с проблемой замедления работы на уровне планирования запросов, что стало неожиданным для инженеров. Анализ показал, что все стандартные показатели (I/O, память, количество прочитанных строк) были в норме. В итоге была выявлена проблема блокировок в процессе планирования запросов.
Для улучшения работы ClickHouse Cloudflare разработал новую схему партиционирования, которая обеспечивает более гибкое управление данными. Теперь система позволяет указывать различные политики удержания данных для каждой внутренней команды, обеспечивая соответствие правовым требованиям и сокращая сложность обработки данных — количество хранимых данных увеличилось до 2 ПБ.
Практическое значение
Пересмотр политики удержания данных является очень актуальным для российских организаций, работающих с большими объемами информации. Возможность настраивать retention policy позволит не только соответствовать законодательным требованиям, но и значительно упростит процессы обработки данных, особенно для команд с различными сроками хранения информации.
Cloudflare планирует продолжать оптимизацию ClickHouse, что позволит повысить эффективность обработки запросов в будущем и устранить потенциальные узкие места в системе.