Clickhouse for OLAP and ydb for OLTP are both in C++. Both are used at production scale in Yandex. Clickhouse has been around for a long time while ydb is pretty new.
(note that this doesn't filter on license -- I couldn't see a way to add a negative-filter on proprietary licensing -- so you may have to inspect a few of the results to confirm)
I personally wish people would not ask that question. Rarely is context required. The question is often very clear. And when one does provide context, the most common response is a value judgement on the question -- "why would you want that". It's honestly a waste of everyone's time.
Wish people would just move on if they see a question that they don't know the answer to.
The person asked an easily google-able question, so I assume they want an answer deeper than a simple list. The only way to give that answer is with more context.
I work there (300+ ppl). It's primarily open source. It makes money through support contracts and cloud hosting, but all core development is done in the open.
While distributed could mean a lot of different things, I'm guessing the OP wants either horizontal scalability, or bidirectional replication between multiple regions/datacenters. And while it's technically possible to do those with mysql or PostgreSQL, they definitely don't work out of the box, and require a lot of careful architecting, and it isn't really how they were originally designed to be used.
I don’t think you read that entire article (or even looked at the sidebar). SSPL is copyleft, but not FOSS.
From that article:
> In January 2021, following the re-licensing move by Elastic, OSI released a statement declaring that the SSPL does not comply with its Open Source Definition because it discriminates against specific fields of endeavor, describing it as a "fauxpen" source license.
It's not just OSI. Debian, FSF, etc. all don't see that as free software specifically because it restricts the ways that you can use the software - thereby defeating the point of having the source code in the first place.
That's no different than some EULA saying you can't do xyz with this software without purchasing a $xxx,xxx license from the vendor or whatever: it's the same effect. It's an artificial boundary put in place that restricts the user from doing something.
I don't find that particular view "esoteric" and I'm curious about why you do.
(Which is better for a server, Java does not crash and it can do atomic shared parallelism between cores with OO code something you would need to use arrays to achieve in C/C++ without VM + GC.)
Java does not crash and it can do atomic shared parallelism between cores with OO code something you would need to use arrays to achieve in C/C++ without VM + GC.)
There is no universe where any of this is true. It doesn't even make sense in any coherent way.
"While I'm on the topic of concurrency I should mention my far too brief chat with Doug Lea. He commented that multi-threaded Java these days far outperforms C, due to the memory management and a garbage collector. If I recall correctly he said "only 12 times faster than C means you haven't started optimizing"." - Martin Fowler https://martinfowler.com/bliki/OOPSLA2005.html
"Many lock-free structures offer atomic-free read paths, notably concurrent containers in garbage collected languages, such as ConcurrentHashMap in Java. Languages without garbage collection have fewer straightforward options, mostly because safe memory reclamation is a hard problem..." - Travis Downs https://travisdowns.github.io/blog/2020/07/06/concurrency-co...
"Inspired by the apparent success of Java's new memory model, many of the same people set out to define a similar memory model for C++, eventually adopted in C++11." - https://research.swtch.com/plmm
Copy and paste actual lines that can't be done in C++. Show me something that is 12 times faster in java or explain in detail the underlying mechanics of something that can't be done in C++.
You said C++ can't do atomics which is like starring at paint and saying it can't paint in the color that it is. What is it that you think the atomic C++ functions do?
This is all before even talking about whatever you were saying about "needing arrays in C++" or needing VMs, which is so bizarre I barely even know where to start.
Why do you say things like this if you can't actually explain them?
Because I have not written my own memory model, why are you refuting them when you cannot explain why they are wrong?
What I mean with C++ not being able to do atomic parallelism on OO is that you need a VM with GC to do that.
The best way to do atomic (and avoid cache misses in one go) is to use primitive arrays (char/int/float) so C++ has zero value, I'm going back to C.
The guy quoted in the first quote is the proffessor that rewrote the whole JVM with a new memory model to add concurrent package in 1.5, if you don't believe him you are on you own.
I'm still waiting for C++ guys to actually use Java on the server and still claim C++ is better. crickets
What does that even mean? A memory model isn't a library.
why are you refuting them when you cannot explain why they are wrong?
There is no evidence to refute. You keep making claims with no explanation, no reasoning and no evidence at all. This isn't how reality works. When you claim something the burden of proof is on you. Extraordinary claims (like java being 12 times faster than C or C++) require extraordinary evidence. You gave zero evidence.
The best way to do atomic (and avoid cache misses in one go) is to use primitive arrays (char/int/float)
This is you repeating the same thing (even though it makes no sense), this isn't evidence.
This isn't even how CPUs or their instructions work. Data types only matter in atomic math instructions on integers, but you lumped floats in there for some reason too. Arrays have nothing to do with it (atomic should have been a clue). Why do you believe this?
so C++ has zero value, I'm going back to C.
What is it that makes any difference here? Why can't you demonstrate anything with an actual program? Use godbolt.org and you can prove what you're saying.
The guy quoted in the first quote is the proffessor that rewrote the whole JVM with a new memory model to add concurrent package in 1.5, if you don't believe him you are on you own.
I believe actual evidence. You seem to have so little understanding of these things that if this person knows what they are talking about, you must not understand what they are saying. Show something instead of making insane claims.
I'm still waiting for C++ guys to actually use Java on the server and still claim C++ is better. crickets
I use C++ 'on the server' but it's bizarre that you think this has anything to do with the conversation. The things you keep saying are not just technically incorrect, they have no connection to how anything actually works.
The reason I'm preaching without proof is that I have run a service with 350.000 customers (1100 concurrent) that proved all this.
I don't need to prove anything to myself, when I know it is true because I witnessed it.
You have sunk cost so obviously you want tme to prove that I'm right, but I don't have the time. It's too complex and time will solve all proofs automatically.
Clickhouse - https://github.com/ClickHouse/ClickHouse
ydb - https://github.com/ydb-platform/ydb