Keeper vs ZooKeeper: как ClickHouse избавился от Java
ClickHouse всегда нуждался в строгой координации для репликации и распределённых DDL. ZooKeeper справлялся с этой задачей, но требовал отдельного Java-процесса, что усложняло эксплуатацию. Keeper, реализованный на C++ с использованием Raft, позволил убрать JVM из стека, сохранив совместимость с ZooKeeper API.
Как развивался Keeper
• повтор ZooKeeper API поверх Raft без изменений в логике ClickHouse
• оптимизация производительности: batched apply, улучшенный snapshot, работа с диском
• ClickHouse-специфичные улучшения: tighter интеграция с метриками, упрощённая настройка
• однопроцессная модель C++ без сборки мусора и с предсказуемым потреблением памяти
Keeper не просто заменил ZooKeeper — он упростил эксплуатацию и снизил операционные издержки.
Читать статью
#ClickHouse #Keeper #ZooKeeper #DataEngineering #DWH
Post #1303
230

- ❤ 1
- 👍 1