RethinkDB appears to have captured the "MongoDB done right" mindshare
Mindshare is irrelevant. MongoDB is killing it in the enterprise right now. They have integration with Oracle, Teradata, Hadoop and countless partnerships with other vendors. You can guarantee MongoDB will still be around in 20 years the way it is positioning itself. Can't say the same about RethinkDB (as great as it is).
PostgreSQL has gained JSON and is gaining better replication in order to cover the same niches
The PostgreSQL replication story is pretty pathetic given how old/mature it is. And I've seen nothing to suggest that anything is really improving in this area. There are a range of addons none of which are supported or built in. Basic replication is confusing, the documentation non existent in parts and good luck getting any support.
You compare it to MongoDB (or really any of the newer NoSQL databases) and it's like night and day. It takes minutes to setup a replica set and there is plenty of documentation and official support for any issues.
You compare it to MongoDB (or really any of the newer NoSQL databases) and it's like night and day. It takes minutes to setup a replica set and there is plenty of documentation and official support for any issues.
It really is killing it in the Enterprise, and I'm trying to do my part to remove it. I'm at a client that wants to use MongoDB. It's on the approved product list. They have little to no experience with it.
Every chance I get, I advocate ArangoDB. It also is Mongo Done Right. You get joins, graphs and a thoughtful future plan from ArangoDB team. To help bridge the gap I've written an ArangoDB Hadoop connector [1]. Unlike the MongoDB one, you can read and write.
I've also added better Clojure support to it: from a driver to a Ragtime migrator.
Sadly as it stands Mongo has a better Ops story than ArangoDB. Until that improves, I don't think that ArangoDB will make it into many Fortune 1000's outside of some small prototype style applications. Maybe micro-services in the enterprise will change this, but I don't think a large insurance company wants to support multiple database standards in general, and definitely not within a family.
You should give RethinkDB a look... it has a great ops interface, and now that it has automatic failover, is probably my first pick... I wanted to like Arango, but they tend to lag behind in node support.
I happen to like MongoDB, warts and all.. that said, I would choose other options over it, depending on the need.
I did. At the time (haven't looked lately) RethinkDB didn't have GEO support while ArangoDB. Turns out that I don't really need it right now (different project). I stay because it's a great community. The Devs watch StackOverflow for questions. They are respectful and helpful in the user group.
I know that RethinkDB has a good rep in those areas too. It's just that ArangoDB is a good general fit for what I need even now. I guess you could say I came for the GEO, I stayed for the warm hearted underdogs that are the ArangoDB community.
That's funny, my first production use of MongoDB was because their geo support was better than ElasticSearch, which at the time, I couldn't get working correctly... I'm toying around with RethinkDB today for a hobby projuct, liking it so far.
Distributed databases are hard. If you're suggesting UnknownDB as a solution you haven't learnt the lessons of Mongo. I really do hope CAP isn't going to bite you or the otherDB cheerleaders in the arse.
Today's mindshare is tomorrow's market share. It's not assured, but there's a strong correlation. Conversely, lack of mindshare doesn't really hurt sales, but it does hurt growth.
PostgreSQL 9.4, 9.5 and 9.6 all introduce foundational changes to make eventually enable replication, but none of it is really exposed to the end user. They are working on it, but they are being very conservative.
Even if so, you're overestimating RethinkDB's mindshare outside of the HN echo chamber (and I say that even though I'd prefer RethinkDB myself).
If mindshare equals to developers knowing "this product exists", thinking "this product is good, I should use it", or deploying it, then Mongo wins by a factor of 4 or 5.
There's also the mindshare that Mongo has in companies building integrations for it, third party products etc.
And of course millions of CS/IT students today know about Mongo and will use it in this project or another, whereas very few know about RethinkDB. Those will be "tomorrow's market share".
This is just nonsense. There are plenty of hyped startups/products who went nowhere. Unless you understand how to market and execute you're going nowhere. MongoDB has demonstrated they are seriously good at it and given how well 3.0 has been received (write lock gone, extremely fast performance, Call Me Maybe test fixed) they have a lot of momentum.
They are working on it, but they are being very conservative
Conservative being the operative word. You would think sometime in the last 20 years they would've tackled it.
I think you're missing the massive technical issues that are impeding postgresql from doing efficient sharding. SQL was not designed with distributed systems in mind, it has numerous features that can't be done efficiently in a distributed system, and even doing them inefficiently is insanely complicated. The language that Postgresql supports is Huge!
The reason nosql databases exist is in recognition of this fact. They jettison features like transactions that can't be done efficiently in a distributed system. If postgresql can implement a fraction of their current functionality in a distributed way, it will be an amazing engineering effort.
Comments
Mindshare is irrelevant. MongoDB is killing it in the enterprise right now. They have integration with Oracle, Teradata, Hadoop and countless partnerships with other vendors. You can guarantee MongoDB will still be around in 20 years the way it is positioning itself. Can't say the same about RethinkDB (as great as it is).
The PostgreSQL replication story is pretty pathetic given how old/mature it is. And I've seen nothing to suggest that anything is really improving in this area. There are a range of addons none of which are supported or built in. Basic replication is confusing, the documentation non existent in parts and good luck getting any support.
You compare it to MongoDB (or really any of the newer NoSQL databases) and it's like night and day. It takes minutes to setup a replica set and there is plenty of documentation and official support for any issues.
MongoDB makes the operational side of replication easy, but handwaves a safe, functioning implementation: https://aphyr.com/posts/322-call-me-maybe-mongodb-stale-read...
It really is killing it in the Enterprise, and I'm trying to do my part to remove it. I'm at a client that wants to use MongoDB. It's on the approved product list. They have little to no experience with it.
Every chance I get, I advocate ArangoDB. It also is Mongo Done Right. You get joins, graphs and a thoughtful future plan from ArangoDB team. To help bridge the gap I've written an ArangoDB Hadoop connector [1]. Unlike the MongoDB one, you can read and write.
I've also added better Clojure support to it: from a driver to a Ragtime migrator.
Sadly as it stands Mongo has a better Ops story than ArangoDB. Until that improves, I don't think that ArangoDB will make it into many Fortune 1000's outside of some small prototype style applications. Maybe micro-services in the enterprise will change this, but I don't think a large insurance company wants to support multiple database standards in general, and definitely not within a family.
1 - https://github.com/deusdat/guacaphant
You should give RethinkDB a look... it has a great ops interface, and now that it has automatic failover, is probably my first pick... I wanted to like Arango, but they tend to lag behind in node support.
I happen to like MongoDB, warts and all.. that said, I would choose other options over it, depending on the need.
I did. At the time (haven't looked lately) RethinkDB didn't have GEO support while ArangoDB. Turns out that I don't really need it right now (different project). I stay because it's a great community. The Devs watch StackOverflow for questions. They are respectful and helpful in the user group.
I know that RethinkDB has a good rep in those areas too. It's just that ArangoDB is a good general fit for what I need even now. I guess you could say I came for the GEO, I stayed for the warm hearted underdogs that are the ArangoDB community.
That's funny, my first production use of MongoDB was because their geo support was better than ElasticSearch, which at the time, I couldn't get working correctly... I'm toying around with RethinkDB today for a hobby projuct, liking it so far.
Distributed databases are hard. If you're suggesting UnknownDB as a solution you haven't learnt the lessons of Mongo. I really do hope CAP isn't going to bite you or the otherDB cheerleaders in the arse.
Today's mindshare is tomorrow's market share. It's not assured, but there's a strong correlation. Conversely, lack of mindshare doesn't really hurt sales, but it does hurt growth.
PostgreSQL 9.4, 9.5 and 9.6 all introduce foundational changes to make eventually enable replication, but none of it is really exposed to the end user. They are working on it, but they are being very conservative.
Even if so, you're overestimating RethinkDB's mindshare outside of the HN echo chamber (and I say that even though I'd prefer RethinkDB myself).
If mindshare equals to developers knowing "this product exists", thinking "this product is good, I should use it", or deploying it, then Mongo wins by a factor of 4 or 5.
There's also the mindshare that Mongo has in companies building integrations for it, third party products etc.
And of course millions of CS/IT students today know about Mongo and will use it in this project or another, whereas very few know about RethinkDB. Those will be "tomorrow's market share".
This is just nonsense. There are plenty of hyped startups/products who went nowhere. Unless you understand how to market and execute you're going nowhere. MongoDB has demonstrated they are seriously good at it and given how well 3.0 has been received (write lock gone, extremely fast performance, Call Me Maybe test fixed) they have a lot of momentum.
Conservative being the operative word. You would think sometime in the last 20 years they would've tackled it.
I think you're missing the massive technical issues that are impeding postgresql from doing efficient sharding. SQL was not designed with distributed systems in mind, it has numerous features that can't be done efficiently in a distributed system, and even doing them inefficiently is insanely complicated. The language that Postgresql supports is Huge!
The reason nosql databases exist is in recognition of this fact. They jettison features like transactions that can't be done efficiently in a distributed system. If postgresql can implement a fraction of their current functionality in a distributed way, it will be an amazing engineering effort.