Многоуровневое хранение Pinter... Заметка

Многоуровневое хранение Pinterest для Apache Kafka®️: подход, разъединяющий брокер

Apache Kafka стал повсеместным решением PubSub, обрабатывая петабайты данных в Pinterest. Чтобы справиться с растущими требованиями к хранению, появился дизайн-шаблон Tiered Storage, который выгружает данные из дорогих дисков брокеров в более дешевое удаленное хранение.Родной Tiered Storage в Kafka 3.6.0+ тесно связывает эту функцию с процессом брокера, ограничивая гибкость.Реализация Tiered Storage от Pinterest, отделенная от брокера, отделяет хранение от вычислений, предоставляя преимущества, такие как сокращение затрат, оптимизация ресурсов и упрощение внедрения.Отделенный подход использует Segment Uploader, который загружает финализированные сегменты журнала в удаленное хранение, Tiered Storage Consumer для потребления данных и удаленную систему хранения с более низкими затратами на хранение за единицу.Segment Uploader мониторит файловые системы брокеров для финализированных сегментов, обнаруживает изменения лидерства через ZooKeeper (или KRaft в более новых версиях Kafka), и обеспечивает устойчивость к сбоям, чтобы обеспечить непрерывность данных.Tiered Storage Consumer читает данные как из локального диска брокера, так и из удаленного хранения, сокращая затраты на обслуживание.Это отделенная реализация позволяет выгрузить примерно 200 ТБ данных из дисков брокеров в более дешевое объектное хранение ежедневно с мая 2024 года.Она обеспечивает гибкость внедрения Tiered Storage и обновления функций, не влияя на производительность брокера.Открытая реализация отделенного Tiered Storage от Pinterest для Apache Kafka теперь доступна.