Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
Mongodb "Shortcomings"
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  9 messages - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
sol  
View profile  
 More options Sep 27 2012, 4:50 am
From: sol <s...@tachium.org>
Date: Thu, 27 Sep 2012 01:50:31 -0700 (PDT)
Local: Thurs, Sep 27 2012 4:50 am
Subject: Mongodb "Shortcomings"

Hi there,

I'm using MongoDB quite a lot and we're also using it in our company.
Recently someone at the company came across these articles:

http://blog.engineering.kiip.me/post/20988881092/a-year-with-mongodb
http://longtermlaziness.wordpress.com/2012/08/

While I know some of the points, I don't know others, and there is also not
too much context especially in the first post.
I would like to ask if these articles, or the particular (stated) problems
in them, are discussed somewhere, if there are responses or anything.

*I do not want to start a flame war or anything like that, nor put MongoDB
into bad light, I use it myself a lot.*
*I am asking solely out of curiosity because I need to evaluate these
things in context of our company.*
*
*
Thanks in advance


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Sam Millman  
View profile  
 More options Sep 27 2012, 6:39 am
From: Sam Millman <sam.mill...@gmail.com>
Date: Thu, 27 Sep 2012 11:39:43 +0100
Local: Thurs, Sep 27 2012 6:39 am
Subject: Re: [mongodb-user] Mongodb "Shortcomings"

Infact if you look about 8 posts down you will see a thread entitled "Some
Serious Accusations". If you look at that you will get an idea.

I will add one thing. A lot of these posts punch MongoDB for being young
and new and expect it to be a MySQL product in a stupid timeframe.

On 27 September 2012 09:50, sol <s...@tachium.org> wrote:


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
David Mytton  
View profile  
 More options Sep 27 2012, 6:42 am
From: David Mytton <da...@mytton.net>
Date: Thu, 27 Sep 2012 03:42:24 -0700 (PDT)
Local: Thurs, Sep 27 2012 6:42 am
Subject: Re: Mongodb "Shortcomings"

I posted up a blog a few days ago addressing some of the recent criticism
posts which might be helpful:
http://blog.serverdensity.com/does-everyone-hate-mongodb/


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
harrym  
View profile  
 More options Sep 27 2012, 4:04 pm
From: harrym <harry.m...@gmail.com>
Date: Thu, 27 Sep 2012 13:04:37 -0700 (PDT)
Local: Thurs, Sep 27 2012 4:04 pm
Subject: Re: Mongodb "Shortcomings"

Many of the issues brought up in posts like these stem from the user trying
to use MongoDB as a direct replacement for an RDBMS, without properly
understanding how MongoDB works. Some of the complaints are certainly
valid, such as the issues caused by the write lock, but 10gen seem be be
making great progress on these with every release. For example, Mongo 2.2
replaces the global write lock with a database-level write lock, and I hear
they're planning on doing far more granular locking in future releases.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
David K Storrs  
View profile  
 More options Sep 27 2012, 4:40 pm
From: David K Storrs <da...@channelmeter.com>
Date: Thu, 27 Sep 2012 13:40:44 -0700 (PDT)
Local: Thurs, Sep 27 2012 4:40 pm
Subject: Re: Mongodb "Shortcomings"

To address their points specifically:

http://blog.engineering.kiip.me/post/20988881092/a-year-with-mongodb

- Non-Counting B-trees => Legitimate issue.  No indication that it is being
worked on, AFAIK.

- Uncompressed field names => Definitely an annoyance and should be fixed,
but not an issue for small data sets.  Can be a very significant issue (in
terms of storage costs) as you get into the >10M+ row range.  Their
proposed solution would be ideal.  No indication that it is being worked
on, AFAIK.

- Global write lock => A valid concern, but the impact of this was
overstated even before 2.0 came out.  Once 2.0 was here, lock-release on
page fault behavior was significantly improved.  With 2.2 this has been
improved yet again and the locking level has been moved to a per-database
model.  In 2.4, this will likely be moved to a per-collection level, but
that's not official yet.

- Safe off by default => Very much a matter of opinion; personally, I like
having the flexibility to do it either way (unlike with a traditional
RDBMS).  For a financial application, yes this is nuts.  For a rapid
logging application, it makes perfect sense.  The most I would say is that
perhaps it could be more clearly labeled, but even then I think it's fine
if you read the docs.  The docs are pretty clear that inserts are optimized
for speed in a "fire and forget" mode, and that if what you're looking for
is total durability, you should use getLastError or 'safe => 1'.

- Offline table compaction => A bit of a quibble with this:  if you delete
data from the table, new inserts will be written into the resulting free
blocks, meaning your data size shouldn't grow.  But, in general, yes, this
is accurate, and is an enormous problem.  In my opinion, possibly Mongo's
biggest failing.

- Secondaries do not keep hot data in RAM => I think their example is a bit
of a strawman.  Running your multi-gig-in-the-working-set database off of
EBS (which is notoriously slow and inappropriate for DB usage) would make
no sense.  Also, failures happen infrequently enough (in my experience)
that this is not a huge issue.  As to the stated issue, I don't have
personal knowledge of whether it's accurate or not.

http://longtermlaziness.wordpress.com/2012/08/

This article is less clearly organized and harder to dig the specific
objections out of; also, some of them are redundant with the above, so I'm
probably not going to respond to everything.  Here are the ones I see:

- Schema-free sign causes maintenance headaches => Ok.  So don't use NoSQL.
 This isn't a MongoDB issue.

- No joins => Ok.  So don't use NoSQL.  This isn't a MongoDB issue.

- Can't use dots in object keys => Use URL encoding.  RDMS's also have
reserved words.

- Javascript not up to modern standards => There is a legitimate concern
here, but not the one he raises; I've had no problems writing any JS
function I needed.  The issue I HAVE had is that there is only one JS
thread to run (e.g.) all map-reduce jobs.

Speaking of map-reduce, one issue that neither of them raised:  when you do
a map-reduce, temporary collections are created.  These collections are not
removed until the connection that did the MR job ends.  If you are MRing
over a large collection and emiting a lot of records, this can impact disk
usage significantly.

That said, the aggregation framework in 2.2 drastically reduces the
occasions when you need MR.

Hope this helps,

Dave


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Sam Millman  
View profile  
 More options Sep 27 2012, 5:26 pm
From: Sam Millman <sam.mill...@gmail.com>
Date: Thu, 27 Sep 2012 22:26:44 +0100
Local: Thurs, Sep 27 2012 5:26 pm
Subject: Re: [mongodb-user] Re: Mongodb "Shortcomings"

We should really make a page somewhere that we can just link to with all
the info on so whenever someone posts this type of question we can just
link it.

On 27 September 2012 21:40, David K Storrs <da...@channelmeter.com> wrote:


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Sylvain Zimmer  
View profile  
 More options Sep 27 2012, 6:41 pm
From: Sylvain Zimmer <sylvi...@gmail.com>
Date: Thu, 27 Sep 2012 15:41:47 -0700 (PDT)
Local: Thurs, Sep 27 2012 6:41 pm
Subject: Re: [mongodb-user] Re: Mongodb "Shortcomings"

To me it's definitely a matter of aligning people's expectations with the
current state of mongodb.

These articles seem to blame mongodb for some shortcomings but all those
should already be known and understood when you're choosing a database for
your project.

I would blame mongodb (or any product that I choose willingly) for
*surprising* behaviour, like unexpected performance issues, bugs, or
promises that it fails to keep. So far I've not had any reason to.

It boils down to picking the right tool for the right job! And I feel that
with all the new features of the 2.x branches there are more and more jobs
that mongo can be perfect for. BUT, that shouldn't be a reason for choosing
it without understanding its feature set and architecture!

--
Sylvain Zimmer
CTO, www.joshfire.com


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Roman Alexis Anastasini  
View profile  
 More options Sep 27 2012, 9:03 pm
From: Roman Alexis Anastasini <roman.anastas...@gmail.com>
Date: Thu, 27 Sep 2012 18:03:10 -0700 (PDT)
Local: Thurs, Sep 27 2012 9:03 pm
Subject: Re: Mongodb "Shortcomings"

Hi there,

like someone mentioned before, it reads as they tried to use a NoSQL
Database (in this case MongoDB) as a direct substitute for a RDBMS without
giving nough thought, what the differences are. Every NoSQL solution has
its use cases and when you need use joins and such stuff, normally NoSQL
just isn't the proper tool for your needs.

Let me come to some of their points in detail:

Only 400 writes per second due to global lock?
Well, don't know what they did there, but even on my first test machine
(MBP with only 8GB RAM ^^ ) I had a small DB with just 2.5m log entries and
I used those to filter some data using a small MR and wrote them back into
a second MonoDB collection. Having 3.5k writes per second on this machine
wasn't that bad, heh? I could improve this performance with two proper
servers using a sharded system and ended up with about 8k inserts per
second.
So, if you know about the write lock issue, which I have to admit is an
issue, but it is being worked on (v2.2 ->  database model, etc) and you
know about MongoDBs concept of using sharded systems for optimized writes
performance, why not using it? It was mentioned in the article, that they
didn't want to scale in this way. Well, why choosing a technology and than
not using it in the way it should be used? It's like developing in Java and
than complaining about the idea of objects.

No counting B-Trees:
Ok, that's definitely a valid point here. But giving in mind, that you
should know that before you start using a technology, you should be able to
learn how to navigate your way around this issue. Personally I was lucky so
far, not to get into any big troubles regarding this.

Uncompressed field names:
Well, giving the first thought this seems to be super annoying, but frankly
it's noting that you should bothered by, because you shouldn't write
directly to the database, but always use an abstraction level.

Set safe off:
Hmm, personally I think this is a matter of opinion and comes to the point
for which use case you choose MongoDB. Yes, it can be painful, but they
tell you about this in every talk and it can be read in the docs. Again it
seems that they used MongoDB without enough R&D to learn, how MongoDB works
and more important, why it does things like it does.

There are more points on both articles, which in my opinion all come to the
same things:
Do proper evaluation work!
Understand how and why things are done in their way!
Use the proper tool for the right problem!
Don't use any NoSQL solution, just because it's hip!
Train your staff properly!

Lately I have seen so many companies shifting to NoSQL solutions and when
you ask the responsible person why they did that, most times it's because
it's new and fast. Giving no thought, that it works differently, you have
to start thinking in a different way as when using traditional RDBMS. there
is no use to move to a complete new technology and no one of your high
skilled MySQL gurus is able to work with the new stuff, because you did not
train them.

MongoDB as well as several other NoSQL solutions have their pros and cons
and their special use cases.
Personally I choose MongoDB for being my favorite for the following reasons:
It covers more use cases than most of the other NoSQL databases I looked at.
The community is getting bigger and bigger and always it super helpful
(10Gen is doing a great job with their community management here).
The payed support by 10Gen is amazing! (Even non payed support by the
developers when meeting them at conferences or twitter was super helpful!)

For your initial question:
Davids post covers even more detailed points of the articles and I can
second them completely. This should give you enough material for your
evaluation I think.
When it comes to the point of using MongoDB in your company, try to have
the five points in mind I mentioned earlier.
A good tip is: give one of the MongoDB sales persons a call. They hooked me
up with one of their developers and we had an hourly talk about what our
plans are, why I would like to start using MongoDB and for which problem.
This call was more than helpful. I over thought some of my ideas after that
and in the end it was the outcome of this call what convinced my boss using
MongoDB for SOME of our stuff.

Hope that help.
Cheers


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
sol  
View profile  
 More options Sep 28 2012, 5:05 pm
From: sol <s...@tachium.org>
Date: Fri, 28 Sep 2012 14:05:18 -0700 (PDT)
Local: Fri, Sep 28 2012 5:05 pm
Subject: Re: Mongodb "Shortcomings"

Thanks A LOT for all your input! I really appreciate it
Will dig through it one by one and read up on the information

Thanks to all of you!


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »