Official MongoDB company blog covering database features, durability, distributed consistency, and customer deployments.
HN commenters cite it for MongoDB's own statements on durability, 32-bit limits, and journaling, and for how-to material on mixing SQL and NoSQL.
This is a pretty epic troll on MongoDB, and some of their points are important -- particularly global write lock and uncompressed field names, both issues that needlessly afflict large MongoDB clusters and will likely be fixed eventually.
However, it's pretty clear from this post that they were not using MongoDB in the best way. For example, in a small part of their criticism of "safe off by default", they write:
"We lost a sizable amount of data at Kiip for some time before realizing what was happening and using safe saves where they made sense (user accounts, billing, etc.)."
You shouldn't be storing user accounts and billing information in MongoDB. Perhaps MongoDB's marketing made you believe you should store everything in MongoDB, but you should know better.
In addition to that data being highly relational, it also requires the transactional semantics present in mature relational databases. When I read "user accounts, billing" here, I cringed.
Things that it makes total sense to use MongoDB for:
- analytics systems: where server write thorughput, client-side async (unsafe) upserts/inserts, and the atomic $inc operator become very valuable tools.
http://blog.mongodb.org/post/171353301/using-mongodb-for-real-time-analytics
- content management systems: where schema-free design, avoidance of joins, its query language, and support for arbitrary metadata become an excellent set of tradeoffs vs. tabular storage in an…
> All the wrong places, as already stated. These are not the places where developers actually look.
If you're not reading READMEs, installation notes, and server logs and instead depend on marketing splash pages to highlight the limitations of the technologies you use, you're a bad developer. Sorry.
> Certainly not [in blog posts]
http://blog.mongodb.org/post/137788967/32-bit-limitations
> It simply wasn't in the locations where people actually look. You can easily verify that using the Wayback Machine (and in fact, this is still mostly the case today).
I first started using Mongo in 2010 according to my gitlogs (after it having been on my radar for some time before that), and I very distinctly remember reading about the 32-bit limitation well before I'd ever installed it, because we were also using Varnish at the time, which has similar issues on 32-bit systems because it too uses (or at least, at that time used) memory-mapped files.
The claim that the limitation was not documented well, or was hidden, or was generally unknown at that time is just simply false.
To kickstart a discussion:
Does anyone use the MEAN stack: mongoDB, ExpressJS, AngularJS and NodeJS?
http://blog.mongodb.org/post/49262866911/the-mean-stack-mongodb-expressjs-angularjs-and
I am starting a project and currently I am leaning towards NodeJS with Express and MongoDB on the server-side and RequireJS(or WireJS) and Knockout on the client side.
I intend to use QUnit for the client app's testing, but have no idea what should I use for Node testing (unit and load/stress).
Since it will be just me, I will probably setup Jenkins on my own machine for a build server.
I am currently using appfog for staging/testing.
That's pretty much it. (My project includes a mobile part as well, but I guess this is outside of the scope of this discussion, so I wont get into that.)
> caught acknowledging
instant classic.
Those that can, comment, those that have nothing to say, make fun of those who speak English as a third language.
http://blog.mongodb.org/post/381927266/what-about-durability
Feb, 2010
"We get lots of questions about why MongoDB doesn’t have full single server durability, ...there are some very practical reasons why we think single server durability is overvalued"
http://www.mongodb.org/pages/viewpage.action?pageId=2752708&navigatingVersions=true
May, 2010
"MongoDB does not publish any official benchmarks...."
EDIT: Added link to blogs, quoted parent, in case gets removed
I work for MongoDB. There we use go for all of our agents for our various services. Originally they were developed in java and python, but we spent far too much time supporting issues that arose from existing environments run times. A blog post was written that expands on this further. http://blog.mongodb.org/post/51643994762/go-agent-go
In my free time I develop a static site engine called Hugo which is hundreds of times faster than others written in python and ruby and is super easy to install as it is distributed as a single binary without any dependencies. You can learn more about it at http://hugo.spf13.com .
Mongo had better marketing. They sponsored hackathons, they had great out-of-the-box UX, they filled their homepage with logos of both 'big enterprise' and 'hip startup' companies using it, and were able to present their product in a way to capitalize on the rise of Node.js and the 'NoSQL' keyword hype.
In fact, the 'MEAN stack' was coined by a MongoDB developer on his blog [1], a post which is a perfect example of the kind of marketing, anecdotes, messaging, and strategies that Mongo employed to stay relevant.
[1] http://blog.mongodb.org/post/49262866911/the-mean-stack-mongodb-expressjs-angularjs-and