I didn't care about deployments when I started working on @ClickHamlet, it was an ugly bash script. Now that it's running for some users, it was time to add zero-downtime deploys:
- releases are immutable and prepared before the switch
- the controller leaves backends running when it exits, the next one adopts them
- a systemd socket unit keeps the ports open while it restarts, so connections queue instead of failing
- routers retry on a fresh connection if their pooled one breaks
- idle and drain timers live as annotations, so they survive the restart
Deployed with queries running, nobody noticed
Prototyping is cheaper than ever, so I tried to imagine the simplest possible ClickHouse service.
The result is a side project called ClickHamlet. You run:
clickhouse client --host cloud.clickhamlet.com --secure --user --password
And that's it. No sign-up form, real ClickHouse in the cloud.
spent the weekend making my side project's query path faster, measuring every step and re-running all of it on one machine:
443 → 2,209 queries/s through the router (5×)
2.39 → 0.31 ms of controller CPU per query (7.7× less)
no single big fix, just small changes that add up
458 Followers 2K Followingheavy user helping others at @tinybird Regret was the ham in the back of the deli that caused people to switch from turkey to roast beef.
2K Followers 367 FollowingRun affordable open source ClickHouse® anywhere with #AltinityCloud, Expert Support, BYOC, & real-time data lake integration to scale queries on cheap storage.
21K Followers 66 FollowingThe data platform powering the AI era.
Speed, scale, and cost-efficiency - without compromise.
Get started today: https://t.co/RpLdh0f8K3
8K Followers 313 FollowingTinybird is a managed ClickHouse® service for AI-native software teams. Get ClickHouse performance without ClickHouse complexity.