3 ms·
> I have yet to see a real use case for Mongo unless you are building a Facebook clone People seem to keep making the mistake of building a social network in m
by phpnode 12y ago
> I have yet to see a real use case for Mongo unless you are building a Facebook clone
People seem to keep making the mistake of building a social network in mongo. It's entirely unsuitable for that.
Source: I've helped 3 companies move their social networks from MongoDB to OrientDB when they figured out that MongoDB prevents them from shipping features that users expect, e.g. friend-of-a-friend style queries
- filearts 12y agoWhat has your experience been like in deploying and working with OrientDB? This is a bit of really cool tech that I've been keeping an eye on for some time but haven't gotten around to really playing with it. What server language were you using and where were you deploying?
- phpnode 12y agoOrientDB is very cool software, I find it pretty hard to go back to traditional databases now that I've seen how powerful graphs are, but the cool thing about it is that it's still a document store at heart, so you get all the same advantages of mongo, but with the graph awesomeness on top. It's a fantastic tool, but there are a few quirks that can catch beginners out and the documentation is not stellar. It also requires some configuration tweaking to get the best performance for your workload. I've been using node.js (I develop the official driver - https://github.com/codemix/oriento https://github.com/codemix/oriento), but there's pretty good libraries emerging for other languages too. Most people I've worked with are deploying to AWS, one company was running on the bare metal.
- filearts 12y agoI actually JUST discovered oriento and was absolutely delighted to see a bluebird promise-based api. API looks fantastic. Thanks a ton for creating the lib. Do you have any advise for someone thinking of deploying on GCE? My use-case would be for an online code editor (Plunker, if you've heard of it) with users, projects, packages, collections (of projects), comments and project versions (stored as content-addressable git-compatible objects). I'm also interested in understanding if there is any built-in compression mechanism because I will be storing a large volume of very similar text files. Any hints? Have you used the lucene indexes much? If so, can you do any of the crazy faceting delivered by ElasticSearch?
- phpnode 12y ago> Do you have any advise for someone thinking of deploying on GCE? No, sorry, I've never used that. However, generally - like all dbs, Orient is happiest when it has access to a lot of RAM. Also the Write Ahead Log can take up a significant amount of disk space, those are two things to be immediately aware of. > I'm also interested in understanding if there is any built-in compression mechanism because I will be storing a large volume of very similar text files. Any hints? Sadly it doesn't yet do leveldb style document compression, and I've seen no hints that it's on the horizon, but the OrientDB guys are pretty responsive and would probably be open to the suggestion. > Have you used the lucene indexes much? If so, can you do any of the crazy faceting delivered by ElasticSearch? I'm just starting to use the lucene indexes now so I can't give much feedback on those yet. It should be possible to do faceting using SQL to a limited degree, but I don't think there's native support for it yet. I think that will get improved in the next few versions because people are crying out for it.
- filearts 12y agoThanks a lot for your contributions to the node module and your answers.
- proveanegative 12y agoDid they choose OrientDB instead of Neo4j for the license or for technical reasons?
- phpnode 12y agoactually both in many cases, Neo4j does have quite a hostile license, but its biggest downside is that it is graph only, whereas OrientDB (and ArangoDB which is also worth looking at) are "multi-model" - you can use them as pure document (or even key / value) stores, and the graph is just another way of viewing / representing that data. This is really powerful and means that you don't have the problem of duplicating data between different database systems or needing to do cross-data-store joins in your application.