When RecordLayer launched, I tested it out by building a catalog system that we could evolve and add new services with a single repository of protobuf schemas.
The only real downside is that the onramp for running FoundationDB at scale is quite a bit higher than a traditional distributed database.
Other reasons include their wide range of input formats, special table functions (e.g. query a URL).
- Stability. It OOMS, your CTO mentioned that last week.
- It is not correct. I believe your team is aware of cases in which your very own benchmarks revealed Clickhouse to be incorrect.
- Scale. The distributed plan is broken and I'm not sure Clickhouse even has shuffle.
- SQL. It is very non-standard.
- Knobs. Lots of knobs that are poorly documented. It's unclear which are mandatory. You have to restart for most.
Don't get me wrong, I love open source, and I love what Clickhouse has done. I am not a fan of overselling. There are problems with Clickhouse. Trying to sell it as a superset of the modern CDW is not doing users any favors.
> Stability. It OOMS, your CTO mentioned that last week.
I ran ClickHouse clusters for years with zero stability issues (even as a beginner at the time) at an extremely large volume video game studio with real-time needs. Using online materialized views, I was able to construct rollups of vital KPIs at millisecond level while maintaining multi-thousand QPS. Stability was never a concern of ours, and quite frankly, we were kind of blown away.
> Scale. The distributed plan is broken and I'm not sure Clickhouse even has shuffle.
First, I hate the word "broken" with zero explanation what you mean by this. Based on your language, I'm assuming you're just suggesting the distributed plans aren't as efficient as possible, a limitation that the engineers are not shy to admit.
> SQL. It is very non-standard.
I would argue the language is more a superset than "non-standard". Most everything for us just worked, and often I found areas of SQL that I could reduce significantly due to the "non-standard" extras they've added. For example: Did you know they have built-in aggregate functions for computing retention?!
> Knobs. Lots of knobs that are poorly documented. It's unclear which are mandatory. You have to restart for most.
Yes, there are a lot of knobs. ClickHouse works wonderfully out of the box with the default knobs, but you're free to tinker because that's how flexible the technology is.
You worked at Google for over a decade? You should know. Google's tech is notorious for having a TON of knobs for their internal technology (e.g. BigTable). Just because the knobs are there doesn't mean they must be tuned, it just means the engineers thought ahead. Also, the vast majority of configuration changes I've made never required a restart...I'm not even sure why you pointed this out.
(Disclaimer: I have been using ClickHouse successfully for several years)
Have anyone migrated from InfluxDB to ClickHouse?
At a previous company, I wrote a simple TCP server to receive LineProtocol, parse it and write to ClickHouse. I was absolutely blown away by how fast I could chart data in Grafana [1]. The compression was stellar, as well...I was able to store and chart years of history data. We basically just stopped sending data to Influx and migrated everything over to the ClickHouse backend.
[1] https://grafana.com/grafana/plugins/grafana-clickhouse-datas...
It's basically trouble free unless you run below 10% free space on any instance, where things go bad.
That is very interesting and simple and valuable insight that seems to be missing from the wiki page. But also from the wiki page <https://en.wikipedia.org/wiki/FoundationDB>, this:
--
The design of FoundationDB results in several limitations:
Long transactions- FoundationDB does not support transactions running over five seconds.
Large transactions - Transaction size cannot exceed 10 MB of total written keys and values.
Large keys and values - Keys cannot exceed 10 kB in size. Values cannot exceed 100 kB in size.
--
Those (unless worked around) would be absolute blockers to several systems I've worked on.