Facebook's Zookeeper Implementation on Delos
engineering.fb.comCurious when the folks at ClickHouse are going to decide to spin its custom rewrite of ZooKeeper in C++ (ClickHouse-Keeper [1]) out into its own separate project.
[1] https://clickhouse.com/docs/en/operations/clickhouse-keeper/
Funny, the committers were at an Amsterdam meetup last night and we were talking about ClickHouse Keeper. I don't think that's very high up the list of priorities for them right now. The focus is more on ensuring it is bombproof--we're in the "long tail" part of the deployment where you stamp out obscure edge cases in increasingly large deployments.
(I'm not a committer but have a lively interest in the topic as my company supports a couple hundred customers running on ClickHouse.)
Off-topic, but does Zookeeper have features that etcd doesn't provide? etcd seems to be simpler to operate at a glance.
Running ZK was pretty easy with Exhibitor (not that I’d recommend it over etcd) but it’s defunct now.
Otherwise manually managing it is crufty and ancient feeling. The API for “dynamic reconfiguration” is like something I’d expect from Oracle software in the 90s. It sucks.
My understanding is that they have different consistency models and different APIs. I think etcd might be better suited for more use-cases, but I don't think migration of existing systems is straightforward.
Some previous discussion here: https://news.ycombinator.com/item?id=18687516
I also enjoyed this lecture about zookeeper: https://www.youtube.com/watch?v=pbmyrNjzdDk
Not much they have pretty compatible feature overlap. Zookeeper pushes pretty heavily on a smart client rather than handling a lot of stuff server side. If I were to pick I'd go with etcd in a heartbeat. Every con they list on their comparison website is stuff I've personally dealt with in ZK.
Actually I was asking the question looking at the etcd doc you linked. The etcd doc explains like it is just better than Zookeeper.
Then why there are so many projects still rely on Zookeeper and spend so much time on re-writing its features instead of switching to etcd like what OP, ClickHouse (in the discussion), and Kafka (KRaft) are doing? It there something that etcd won't fit?
ClickHouse chose an API compatible rewrite because it allowed the project to banish issues like Zookeeper transaction ID rollover and eliminate an external dependency while allowing a gentle migration to the new "ClickHouse Keeper" implemention. Existing prod deployments of ClickHouse are mostly still on Zookeeper, though new deployments are beginning to use ClickHouse Keeper from the start.
There's a good talk by ClickHouse committer Alexander Sapin that explains the design considerations: https://www.youtube.com/watch?v=abhcCRW09Ac
Very few new projects use Zookeeper now. For older projects, most of them have no issue using Zookeeper, so it's simply not worth the time to rewrite them for etcd.
Where is the github repo?
It isn't open source
anyone loose their history to go back after opening the article page? I had to double check I didn't open in external tab. browsing on firefox.
Firefox quarantines Facebook sites in a separate container (with its own cookies and browsing history, etc.), losing back button is an unfortunate side effect.
Thanks, I clearly forgot about this given how little I visit it.