Live data from Hacker News

Our take on RethinkDB vs. MongoDB

rethinkdb.com

41–50 of 85 posts

Re: Our take on RethinkDB vs. MongoDB

#41
this is marketing cloaked in a developer portal. I think it's great that rethinkdb is trying to distinguish themselves from Mongo, but what's the real marginal utility of a rethinkdb over Mongo?

Mongo has been around for years, and it still has problems.

Rethinkdb is just launching a new product that essentially does the same thing as Mongo, but is maybe just a little easier to use.

I think the Yet Another Database (YAD) question still hasn't been answered by this post.

Re: Our take on RethinkDB vs. MongoDB

#42
post #37

How's the general performance and memory consumption on smaller machines, e.g. entry-level VPS's or the lower spectrum of AWS VMs? Don't have any big projects in the pipeline that immediately required sharding etc, but would like to play with it on a few weekend-scale items.

We did some testing and it should be great, especially once https://github.com/rethinkdb/rethinkdb/issues/97 makes it in.

Re: Our take on RethinkDB vs. MongoDB

#43
post #33

Earlier quoted context omitted.

http://www.rethinkdb.com/docs/faq/#when-is-rethinkdb-not-a-g... http://www.rethinkdb.com/docs/advanced-faq/#is-rethinkdb-imm...

You mention comparing against Hadoop for computationally-intensive data analysis. Would Rethink be suitable for a several-terabyte dataset with non-computationally-intensive analytics? Currently we're using Hive and Python over streaming Hadoop. There's no significant ongoing data accumulation; we're just analyzing the data we have.

We haven't tested on workloads like that, but I can't think of anything that would prevent this workload from working well. The idea behind Rethink's architecture is to eventually allow people to run full analytics on the same cluster as their live app. Currently we're optimizing for online-type queries, but you can run analytics queries too, it's just that we haven't given the optimizer enough love on that front yet.

Re: Our take on RethinkDB vs. MongoDB

#44

Earlier quoted context omitted.

Rethink has durability, MVCC, joins, logical sharding, excellent admin tools, etc. All things that serious databases tend to have and Mongo doesn't.

MongoDB IS durable now by default, has a third party MVCC implementation (MongoMVCC) and has pretty decent admin tools. And this idea that joins is a requirement for a "serious" database makes absolutely no sense. Database level joins are toxic for scalability and IMHO should always be done in the application layer.

MongoDB has been durable for a while with journalling. They're only just enabled safe mode (i.e. synchronous) for the clients by default, but this is something different to being durable.

If you want a durable write; you should not disable journalling and use safe mode / getlasterror with the desired writeconcern setting - http://docs.mongodb.org/manual/reference/command/getLastErro...

Re: Our take on RethinkDB vs. MongoDB

#45
post #37

How's the general performance and memory consumption on smaller machines, e.g. entry-level VPS's or the lower spectrum of AWS VMs? Don't have any big projects in the pipeline that immediately required sharding etc, but would like to play with it on a few weekend-scale items.

We did some testing and it should be great, especially once https://github.com/rethinkdb/rethinkdb/issues/97 makes it in.

When I last tested I maxed out at about 700 inserts / sec with nothing else happening (MBP Retina, SSD, etc) - it's not bad, but not as fast as Mongo.

I'm going to benchmark it when I get some time!

Re: Our take on RethinkDB vs. MongoDB

#46

My company uses MongoDB. Our biggest pain points are: 1. MongoDB has massive storage overhead per field due to the BSON format. Even if you use single character field names, you're still looking at space wasted on null terminators. 32bit fixed length int32s also bloat your storage use. We solve this by serializing our objects as binary blobs into the DB, and only using extra fields when we need an index. 2. In Mongo,…

#1 - you might find it's not just the per field overhead, but the per document one. Check out the powerOf2Sizes settings;

http://docs.mongodb.org/manual/reference/command/collMod/#us...

10gen have been thinking about compression but nothing specific has happened yet (https://jira.mongodb.org/browse/SERVER-164). ZFS + compression is interesting, but not 'production' quality if you're using linux, and last time I tried to get MongoDB running on Solaris I gave up...

Re: Our take on RethinkDB vs. MongoDB

#47

    «An asynchronous, event-driven architecture based on 
     highly optimized coroutine code scales across multiple
     cores and processors, network cards, and storage systems.»
It may be a dumb question, but isn't this statement a bit contradictory? As far as I understand, event-driven design and coroutines (i.e. cooperative multitasking, lighweight threads, etc.) are the techniques usually chosen to AVOID concurrency.

How does such a design imply multicore scalability? Obviously, coroutines and event loops don't prevent you from running in multiple cores. I just fail to see the correlation.

Re: Our take on RethinkDB vs. MongoDB

#48
Looks very interesting, but this statement in their FAQ is a red flag for me:

How can I understand the performance of slow queries? Understanding query performance currently requires a pretty deep understanding of the system. For the moment, the easiest way to get an idea of why your query isn't performing well is to ask us.

Wish RethinkDB was a little further along because it seems like it might be a good fit for a new service I'm building.

Re: Our take on RethinkDB vs. MongoDB

#49
post #44

Earlier quoted context omitted.

MongoDB IS durable now by default, has a third party MVCC implementation (MongoMVCC) and has pretty decent admin tools. And this idea that joins is a requirement for a "serious" database makes absolutely no sense. Database level joins are toxic for scalability and IMHO should always be done in the application layer.

MongoDB has been durable for a while with journalling. They're only just enabled safe mode (i.e. synchronous) for the clients by default, but this is something different to being durable. If you want a durable write; you should not disable journalling and use safe mode / getlasterror with the desired writeconcern setting - http://docs.mongodb.org/manual/reference/command/getLastErro...

> If you want a durable write; you should not disable journalling and use safe mode / getlasterror with the desired writeconcern setting

Sure. Which is the default approach of almost all of the drivers.

Re: Our take on RethinkDB vs. MongoDB

#50
post #48

Looks very interesting, but this statement in their FAQ is a red flag for me: How can I understand the performance of slow queries? Understanding query performance currently requires a pretty deep understanding of the system. For the moment, the easiest way to get an idea of why your query isn't performing well is to ask us. Wish RethinkDB was a little further along because it seems like it might be a good fit for a…

Michel @ RethinkDB

We are building a tool to explain in a nice way how the query is executed, what are the bottlenecks etc. It should make it for 1.5.

You can track progress here https://github.com/rethinkdb/rethinkdb/issues/175 (it's kind of empty for now)

Post reply on HN