7 ms·
Ask HN: Free and open source distributed database written in C++ or C
Any recommendation for a free and open source distributed database that is written in C++ or C?
- dewmal 4y agoWhat are the other aspects?
- righttoolforjob 4y agoDoesn't exist.
- jka 4y agoHere's a query on Carnegie Mellon's "Database of Databases" that might help you find some answers: https://dbdb.io/browse?programming=c&programming=cplusplus&system-architecture=shared-nothing&q= https://dbdb.io/browse?programming=c&programming=cplusplus&s... (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)
- apavlo 4y agoYes, I need to fix the search. It's quite primitive right now.
- pbronez 4y agoYou could post it on DoltHub… that would give you a web interface with SQL support, version tracking and a way to receive community edits. https://www.dolthub.com/ https://www.dolthub.com/
- vimwizard 4y agoWent searching for https://redpanda.com/ https://redpanda.com/ and couldn't find it in the DB, fyi :) Not affiliated, just saw the Jepsen report posted here a few weeks ago.
- jimbob45 4y agoDoes PostgreSQL not fit your needs?
- wmichelin 4y agoNever used it before but check out https://github.com/scylladb/scylla https://github.com/scylladb/scylla I have a lot of experience with Cassandra though.
- sitkack 4y agoScylla's main competitor in replacing C* with native code. https://github.com/aerospike/aerospike-server https://github.com/aerospike/aerospike-server
- e19293001 4y agoHow about dqlite? https://github.com/canonical/dqlite https://github.com/canonical/dqlite
- Maro 4y agohttps://github.com/scalien/scaliendb https://github.com/scalien/scaliendb
- winrid 4y agoLooks abandoned. The site with the documentation is down. Here's the docs on archive.org, last up in 2012...: https://web.archive.org/web/20210109022446/https://github.com/scalien/scaliendb/wiki https://web.archive.org/web/20210109022446/https://github.co...
- sagarm 4y agoWhat are you trying to do, and why the C++ requirement?
- dboreham 4y agoIsn't a requirement. OP stated C is acceptable.
- hiyer 4y agoClickhouse 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. Clickhouse - https://github.com/ClickHouse/ClickHouse https://github.com/ClickHouse/ClickHouse ydb - https://github.com/ydb-platform/ydb https://github.com/ydb-platform/ydb
- rurban 4y agonow this looks much better than mysql/postgres cluster solutions. do you know comparisons to the two bad ones?
- raz32dust 4y agoMySql/Postgres? What am I missing?
- virtue3 4y agoAlso technically redis?(distributed might not be the authors version of distributed)
- maxk42 4y agoredis has clustering capabilities right out of tge box. So do mysql and mariadb. Postgres needs an extension like citus, however.
- colinmhayes 4y agoI don’t think they’re distributed without third party extensions?
- thayne 4y agoThe "distributed" part. 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.
- karanbhangui 4y agoFoundationDB https://www.foundationdb.org/ https://www.foundationdb.org/
- bhangi 4y agoYugabyte is an open source distributed database that has a Postgres compatible query layer as well as a Cassandra compatible one. https://www.yugabyte.com/ https://www.yugabyte.com/
- ketanip 4y agoIt is like cloud spanner and open source.
- deleted 4y ago[deleted]
- UmbertoNoEco 4y agoDont most of them match your specs?
- shric 4y agoPostgreSQL with Patroni and Citus
- secwang 4y agoydb yhttps://github.com/ydb-platform/ydb https://github.com/ydb-platform/ydb
- toast0 4y agoErlang's Mnesia has parts in C; well the underlying databases ets and dets are in C, the distributed part is in Erlang.
- nix23 4y agoWhatsup used, still uses? Mnesia.
- deleted 4y ago[deleted]
- jedberg 4y agoHN would probably come up with better answers if you told us the problem you're trying to solve instead of the solution you seek.
- ihateolives 4y agoHow about assuming that op is asking exactly the thing they want instead of thinking they have asked the wrong question.
- jedberg 4y agoI never said they asked the wrong question. I just said we could give them better answers if we had the context of what problem they are solving.
- kasajian 4y agoI 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.
- jedberg 4y agoThe 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.
- 1MachineElf 4y agoSurprised MongoDB hasn't been mentioned yet. It's C++
- maxloh 4y agoIt is not FOSS.
- warrenm 4y agoYes it is
- cweagans 4y agoIt is not. See https://opensource.org/node/1099 https://opensource.org/node/1099
- warrenm 4y agoIt is: https://en.wikipedia.org/wiki/Server_Side_Public_License https://en.wikipedia.org/wiki/Server_Side_Public_License
- cweagans 4y agoI 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. > Debian FSG compatible No > OSI approved No > GPL compatible No
- warrenm 4y agoI read it I don't hold to the extremes OSI does as to whether something fits their esoteric view of "open source", however
- bullen 4y agoI have one in Java: https://github.com/tinspin/rupy https://github.com/tinspin/rupy (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.) Here is the 2000 lines of code of the entire database: http://root.rupy.se/code?path=/Root.java&space http://root.rupy.se/code?path=/Root.java&space Darkmode: http://edit.rupy.se/?path=/Root.java&space http://edit.rupy.se/?path=/Root.java&space And here you can try it out: http://root.rupy.se http://root.rupy.se
- uthinter 4y agoThanks. I was looking for something written in Java. I'll check it out.
- CyberDildonics 4y agoJava 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. https://en.cppreference.com/w/cpp/atomic/atomic https://en.cppreference.com/w/cpp/atomic/atomic
- bullen 4y agoHave you even used Java? "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 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-costs.html 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 https://research.swtch.com/plmm
- tlhunter 4y agoRedis?
- SwSwinger 4y agohttps://www.yugabyte.com https://www.yugabyte.com - Postgres fronted distributed OLTP database 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.
- th3sly 4y agoMySQL Innodb Cluster? https://dev.mysql.com/doc/refman/8.0/en/mysql-innodb-cluster-introduction.html https://dev.mysql.com/doc/refman/8.0/en/mysql-innodb-cluster... targets C++17 nowadays
- th3sly 4y agohttps://github.com/mysql/mysql-server https://github.com/mysql/mysql-server
- MatthewDaniel69 4y ago[dead]
- joshxyz 4y agoCheck lut cmu database group on youtube, ghe feature a lor of databases